Эксперимент Маячок


Для дополнительного задания



бет6/45
Дата13.02.2023
өлшемі1,82 Mb.
#67503
түріЗакон
1   2   3   4   5   6   7   8   9   ...   45

Для дополнительного задания


  • еще 1 светодиод

  • еще 1 резистор номиналом 220 Ом

  • еще 2 провода

Принципиальная схема



Схема на макетке



Обратите внимание


  • Мы подключили «землю» светодиода и переменного резистора (потенциометра) к длинной рельсе «-» макетной платы, и уже ее соединили с входом GND микроконтроллера. Таким образом мы использовали меньше входов и от макетки к контроллеру тянется меньше проводов.

  • Подписи «+» и «-» на макетке не обязывают вас использовать их строго для питания, просто чаще всего они используются именно так и маркировка нам помогает

  • Не важно, какая из крайних ножек потенциометра будет подключена к 5 В, а какая к GND, поменяется только направление, в котором нужно крутить ручку для увеличения напряжения. Запомните, что сигнал мы считываем со средней ножки

  • Для считывания аналогового сигнала, принимающего широкий спектр значений, а не просто 0 или 1, как цифровой, подходят только порты, помеченные на плате как «ANALOG IN» и пронумерованные с префиксом A. Для Arduino Uno — это A0-A5.

Скетч


p030_pot_light.ino
// даём разумные имена для пинов со светодиодом
// и потенциометром (англ potentiometer или просто «pot»)
#define LED_PIN 9
#define POT_PIN A0
void setup()
{
// пин со светодиодом — выход, как и раньше...
pinMode(LED_PIN, OUTPUT);
// ...а вот пин с потенциометром должен быть входом
// (англ. «input»): мы хотим считывать напряжение,
// выдаваемое им
pinMode(POT_PIN, INPUT);
}
void loop()
{
// заявляем, что далее мы будем использовать 2 переменные с
// именами rotation и brightness, и что хранить в них будем
// целые числа (англ. «integer», сокращённо просто «int»)
int rotation, brightness;
// считываем в rotation напряжение с потенциометра:
// микроконтроллер выдаст число от 0 до 1023
// пропорциональное углу поворота ручки
rotation = analogRead(POT_PIN);
// в brightness записываем полученное ранее значение rotation
// делённое на 4. Поскольку в переменных мы пожелали хранить
// целые значения, дробная часть от деления будет отброшена.
// В итоге мы получим целое число от 0 до 255
brightness = rotation / 4;
// выдаём результат на светодиод
analogWrite(LED_PIN, brightness);
}


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   45




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет