С простым управлением кнопкой мы разобрались ранее, теперь попробуем управлять светодиодом при помощи микроконтроллера Arduino.
С простым управлением кнопкой мы разобрались ранее, теперь попробуем управлять светодиодом при помощи микроконтроллера Arduino.
Необходимые компоненты:
Набор компонентов похож на набор из предыдущего проекта, кроме кнопки. Тактовая кнопка больше не понадобиться.
Приступаем к сборке схемы. Здесь для управления светодиодом мы будем использовать цифровой вывод микроконтроллера D13.
Когда на этом выводе будет высокий уровень напряжения HIGH (5 В), то светодиод будет светиться и гаснуть, когда на нём будет уровень LOW (0 В).
Нажатие кнопки «Reset» на микроконтроллере приведёт к прерыванию выполнения программы и её перезапуску. Такой же эффект получается при отключении и включении питания микроконтроллера.
Arduino программа состоит из двух основных функций: setup() и loop(). Сначала (один раз) выполняется функция setup(). Затем циклически выполняться функция loop(). Функция setup() используется для задания режимов работы аппаратной части платы, назначения функций портов инициализация интерфейсов и т. п. Внутри функции loop() операторы выполняются последовательно.
Чтобы заставить светодиод мигать, нужно попеременно устанавливать на цифровом выводе D13 сначала высокий уровень HIGH, а затем низкий LOW.
// Функция setup() выполняется только один раз void setup() { pinMode(13, OUTPUT); // задаем вывод D13 как выход } // Функция loop() выполняется постоянно (циклически) void loop() { digitalWrite(13, HIGH); // включить светодиод delay(1000); // подождать 1 секунду digitalWrite(13, LOW); // выключить светодиод delay(1000); // подождать 1 секунду }
Давайте подробнее разберем программу мигания светодиодом. В функции setup() мы задаем режим работы для цифрового вывода D13 как выход (OUTPUT). После этого мы сможем переводить его в высокий (HIGH) или низкий уровень (LOW).
pinMode(13, OUTPUT);
После этого, в теле функции loop() мы изменяем состояние цифрового выхода D13. Сначала устанавливаем на выходе высокий уровень HIGH (5 В).
digitalWrite(13, HIGH); // светодиод включается
Ждем 1 секунду. Функция delay() останавливает все действия микроконтроллера, а параметр функции 1000 (миллисекунд) соответствует задержке в 1 секунду.
delay(1000); // ожидание 1 секунду
Потом на выходе D13 устанавливается низкий уровень. После ещё одной 1 секунды ожидания функция loop() начинает выполняться сначала, с первой строчки тела функции.
digitalWrite(13, LOW); // светодиод гаснет delay(1000); // ожидание 1 секунду
Таким образом, меняя состояние цифрового вывода D13 мы можем мигать светодиодом. Функции, описанные выше, являются стандартными для Arduino IDE, поэтому их можно вызывать напрямую, без дополнительного объявления.
Выполните компиляцию и проверьте скетч на наличие ошибок. Зачем загрузите скетч в микроконтроллер. Через некоторое время светодиод начнёт мигать.