logo
+7 (495) 997-37-74
Москва, ул.Международная, 15
26.05.2019

Светодиод. Управление с помощью Arduino

Светодиод. Управление с помощью Arduino

С простым управлением кнопкой мы разобрались ранее, теперь попробуем управлять светодиодом при помощи микроконтроллера Arduino.

Необходимые компоненты:

  • Плата Arduino (Elemik Uno)
  • Макетная плата
  • USB кабель
  • Светодиод
  • Резистор 220 Ом
  • Провода «папа-папа»

Набор компонентов похож на набор из предыдущего проекта, кроме кнопки. Тактовая кнопка больше не понадобиться.

Схема

Приступаем к сборке схемы. Здесь для управления светодиодом мы будем использовать цифровой вывод микроконтроллера D13.

Когда на этом выводе будет высокий уровень напряжения HIGH (5 В), то светодиод будет светиться и гаснуть, когда на нём будет уровень LOW (0 В).

Сброс/Reset

Нажатие кнопки «Reset» на микроконтроллере приведёт к прерыванию выполнения программы и её перезапуску. Такой же эффект получается при отключении и включении питания микроконтроллера.

setup() и loop()

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, поэтому их можно вызывать напрямую, без дополнительного объявления.

Выполните компиляцию и проверьте скетч на наличие ошибок. Зачем загрузите скетч в микроконтроллер. Через некоторое время светодиод начнёт мигать.