Это третий урок из цикла «Знакомство с Arduino». В этом уроке Вы научитесь управлять как установленным на плате Arduino светодиодом, так и внешним светодиодом.

Для урока Вам понадобится следующие детали:

  • Arduino Nano;
  • беспаечная макетная плата (она же breadboard);
  • провода типа папа-папа;
  • светодиод;
  • резистор номиналом 220 Ом.

Если на компьютере не установлена среда Arduino IDE, то необходимо её скачать и установить. Урок по основам работы с IDE можно прочитать здесь.

Первым проектом на Arduino у большинства людей является обычное мигание установленным на плату светодиодом. Пожалуй и мы начнём с этого. Кроме модуля Arduino и кабеля для его подключения к компьютеру Вам больше ничего не понадобится.

Итак, подключите модуль Arduino к компьютеру. Далее откройте среду разработки Arduino IDE и при помощи неё загрузите следующую программу в Arduino.  Если забыли или не знаете как это делается, то прочтите предыдущий урок.

Текст программы:

Пояснение программы »

LED_BUILTIN — константа, которая заранее определена в языке программирования модулей Arduino и она равна 13 (LED_BUILTIN = 13). Функция setup() запускается однократно при запуске программы. В ней устанавливается режим работы вывода № 13 (к нему подключён установленный на плату светодиод) Arduino — как выходной порт.  Функция loop() вызывается после функции setup(). Функция представляет собой бесконечный цикл, в котором выполняется пользовательская программа. В ней при помощи функции digitalWrite (LED_BUILTIN , HIGH) на порт № 13 подаётся высокий уровень напряжения (5 В), тем самым мы зажигаем светодиод. Функция delay (1000) устанавливает задержку при выполнении программы на 1000 мс, т.е. светодиод продолжает гореть 1 секунду. Далее при помощи функции digitalWrite (LED_BUILTIN , LOW) мы гасим светодиод (подаём на вывод № 13 низкий уровень напряжения (0 В)) и также ждём 1 секунду, т.е. наш светодиод погашен в течении 1 секунды. Таким образом, мы поочерёдно зажигаем и гасим  светодиод с периодом в 1 секунду.

После загрузки программы, установленный на плате Arduino Nano светодиод начнёт мигать с периодом в 1 секунду.

Ну что ж, мигать светодиодом на плате Arduino мы научились. Скажете совсем просто? Давайте усложним задачу. Подключим к Arduino внешний светодиод.

Когда все необходимые детали находятся под рукой можно начинать собирать наш пример. Для этого необходимо воспользоваться следующими схемами:

Электрическая принципиальная схема:

Схема подключения на макетной плате:

Обратите внимание на полярность светодиода! Если его неправильно подключить, то он запросто сгорит.

Светодиод имеет два вывода, один из которых катод («минус», короткая нога), а другой — анод («плюс», более длинная нога).

Также не забудьте подключить токоограничивающий резистор 220 Ом. Можно взять резистор и большего сопротивления, но в таком случае светодиод будет гореть чуть тусклее.

Когда схемка собрана можно записывать в Arduino следующую программу:

Текст программы:

Пояснение программы »

В строчке const byte led_pin = 7 мы задаём номер и имя (led_pin) вывода, к которому подключён наш светодиод (№ 7 на модуле Arduino). В функции setup(), также как и в предыдущем примере, устанавливается режим работы вывода № 7 Arduino — как выходной порт. В функции  loop() мы аналогично предыдущему примеру, поочерёдно зажигаем и гасим  светодиод. Однако период мигания светодиода изменяется от 100 мс до 1 секунды с шагом 100 мс. Это реализовано при помощи цикла for (строчка  for (int i = 100; i <= 1000; i = i + 100)).

Когда программа успешно записана в Arduino, светодиод, подключённый к выводу № 7 Arduino Nano начнёт мигать с разной задержкой (от 0.1 с до 1 с).

Для проверки, насколько хорошо Вы усвоили урок, выполните следующие задания.

Чтобы проверить себя, дорогой читатель, воспользуйтесь подсказками после вопросов.

Задания:

  1. Для установленного на плате Arduino светодиода:
    • Измените период мигания светодиода с 1 секунды на полсекунды;

      Показать ответ »

      Задержка меняется путём изменения параметра в функции delay() с 1000 мс на 500 мс.
      Текст программы: 

  1. Для примера с внешним светодиодом:
    • Подключите светодиод к другому цифровому выводу Arduino и в соответствии с этим измените программу;

      Показать ответ »

      Электрическая принципиальная схема:
      Схема подключения на макетной плате: Номер вывода, к которому подключён внешний светодиод меняется в строчке const byte led_pin = 4. Мы изменили номер цифрового вывода с 7 на 4.
      Текст программы: 

    •  Измените максимальный период мигания светодиода с 1 секунды на 2 секунды; 

      Показать ответ »

      Здесь необходимо изменить параметр, задающий максимальное количество итераций в цикле for. Для этого в строчке  for (int i = 100; i <= 1000; i = i + 100) нужно изменить 1000 на 2000. Таким образом, максимальный период мигания светодиода станет 2 секунды.
      Текст программы:

    • Измените программу так, чтобы вместо цикла for в ней использовался цикл while

      Показать ответ »

      В цикле for явно задаётся счётчик и количество итераций. Вместо этого мы заранее определяем счётчик итераций (повторений) в строчке int cnt = 100, где cnt — имя счётчика, а 100 — минимальный период мигания светодиода (100 мс). Далее в функции loop() мы переинициализируем наш счётчик (cnt = 100). Строчка  while (cnt <= 1000)  задаёт количество повторений команд в цикле. Аналогично предыдущим примерам мы мигаем светодиодом. В строчке cnt = cnt + 100; мы обновляем значение нашего счётчика, т.е. каждый раз увеличиваем его значение на 100. Когда значение счётчика будет больше 1000 мы выходим из цикла. Спросите, зачем была нужна переинициализация счётчика в самом начале функции loop()? Ответ прост. Когда мы выйдем из цикла  while при повторном выполнении программы значение счётчика cnt будет больше 1000 и обратно цикл while просто не запустится и наш светодиод мигать больше не будет. Поэтому необходимо заново устанавливать значение нашего счётчика.
      Текст программы: 

 

Уважаемый читатель, мы предлагаем Вам обратиться к разделу «Программирование» на нашем сайте. Там Вы найдёте описание и примеры работы с различными функциями программирования модулей Arduino.

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

Верьте в себя, учитесь и у Вас всё обязательно получится!

Удачи в дальнейших проектах!