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

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

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

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

В предыдущем уроке мы уже научились управлять светодиодом. Управление чем-либо при помощи кнопки неоднократно пригодится Вам в проектах. Так давайте научимся управлять тем же светодиодом, но уже при помощи обычной кнопки.

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

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

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

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

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

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

button — константа, которая задаёт номер вывода (№ 2), к которому подключается кнопка, а константа led задаёт номер вывода (№ 4), к которому подключается светодиод. Функция setup() запускается однократно при запуске программы. В ней устанавливаются режимы работы выводов № 2 (кнопка) и № 4 (светодиод) Arduino — как входной порт и выходной порт соответственно. Функция loop() вызывается после функции setup(). Функция представляет собой бесконечный цикл, в котором выполняется пользовательская программа. В ней при помощи команды (digitalRead(button) == HIGH) проверяется, нажата ли кнопка (есть ли высокий уровень напряжения (5 В) на выводе № 2. Если да, то на вывод № 4 (светодиод) подаётся высокий уровень напряжения (5 В), тем самым мы зажигаем светодиод (команда digitalWrite(led, HIGH)). Если же кнопка НЕ нажата, то при помощи команды digitalWrite(led, LOW) мы гасим светодиод (подаём на вывод № 4 низкий уровень напряжения (0 В)). Таким образом, при нажатии на кнопку светодиод загорается и гаснет, если кнопка НЕ нажата.

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

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

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

Задания:

  1. Измените программу таким образом, чтобы светодиод горел постоянно и гас при нажатии на кнопку;

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

    Для этого нужно при проверке на нажатие кнопки (условие if (digitalRead(button) == HIGH)) подать на вывод № 4 (светодиод) низкий уровень напряжения (команда digitalWrite(led, LOW)), а если кнопка не нажата, то постоянно подавать на светодиод высокий уровень напряжения (команда digitalWrite(led, HIGH)).
    Текст программы: 

  2. Измените программу так, чтобы вместе с внешним светодиодом, по нажатию кнопки загорался и установленный на модуль Arduino светодиод.

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

    Нужно вспомнить предыдущий урок. В функции setup() необходимо сконфигурировать вывод № 13 Arduino как выход (к нему подключён установленный на плату светодиод) при помощи команды pinMode(LED_BUILTIN, OUTPUT). При проверке на нажатие кнопки (условие if (digitalRead(button) == HIGH)) подать на выводы № 4 (внешний светодиод) и № 13 (встроенный на плате светодиод) высокий уровень напряжения (команда digitalWrite(led, HIGH) и digitalWrite(LED_BUILTIN, HIGH)), а если кнопка не нажата, то постоянно подавать на оба светодиода низкий уровень напряжения (команды digitalWrite(led, LOW) и digitalWrite(LED_BUILTIN, LOW)).
    Текст программы: 

 

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

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

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

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