Программа для светодиода на ардуино: Arduino для начинающих. Урок 1. Мигающий светодиод: подключение и управление

Уроки по робототехнике — Урок №1. Знакомство с Arduino. Мигаем светодиодом

Для занятия необходима установленная на компьютерах среда программирования miniBloq и драйвера для Arduino.

Макетные провода папа-папа

от 5 шт 

 

Контроллер Arduino UNO + провод

1 шт

Светодиод

1 шт

Беспаечная макетная плата

1 шт

 

 

Резистор 220 Ом

1 шт

 

Добрый день, ребята.  

Ребята, на прошлом занятии мы с вами закончили курс «Схемотехника».

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

 

При разработке разных устройств бывают такие ситуации, когда реализовать требуемый функционал с помощью микросхем и базовых компонентов бывает очень сложно или даже практически невозможно.

Представьте, что перед нами стоит задача — заставить мигать светодиод.

В этом случае мы можем собрать мультивибратор на транзисторах или на микросхеме таймера NE555.

 

Теперь усложним задачу.

Нам нужно сделать гирлянду из 5 светодиодов и реализовать 3 разных варианта их мигания (изменяя скорость и порядок).

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

 

Микроконтроллеры

Вот тут нам на помощь приходят микроконтроллеры.

Микроконтроллер — это специальная микросхема, предназначенная для управления различными электронными устройствами.

Разработчики микроконтроллеров придумали остроумную идею – объединить все, что нужно для работы внутри одного корпуса, внешне похожего на обычную микросхему.

Рис.1 Микроконтроллеры

В отличии от микросхем, с которыми мы имели дело, микроконтроллер можно запрограммировать на выполнение необходимых нам действий.

Чтобы микроконтроллер понимал, что мы от него хотим, в него нужно загрузить прошивку — последовательность действий, которую ему необходимо выполнить.

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

Например, мы пишем «включи светодиод», а компилятор уже сам преобразовывает команду в понятную для микроконтроллера последовательность единиц и нулей.

 

Arduino

Чтобы было удобнее работать с микроконтроллерами, некоторые производители придумали специальные устройства — контроллеры.

Например, контроллер Arduino (Рис.2). Этот контроллер содержит сам микроконтроллер, программатор, стабилизатор питания и всю необходимую обвязку.

Рис.2 Контроллер Arduino

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

 

Задание: Мигаем светодиодом

Звучит задание просто: помигать светодиодом. Но как к нему подступиться?

 

Для начала давайте поймем, куда мы можем подключить светодиод, чтобы им «помигать».

 

На вашей макетной плате нет блока питания, но в этом нет ничего страшного.

Питать схему мы будем от Arduino. На контроллере есть выводы питания. +5В, +3.3В, и GND (это минус). (Рис.3)

Рис.3 Выводы питания на контроллере Arduino

 

Давайте подключим выводы питания +5В и GND к шине макетной платы. Это позволит нам больше не думать о том, откуда брать питание для элементов в схемах. (Рис. 4)

Рис.4 Вариант подключения выводов питания к шине макетной платы

 

 

Контроллер может задавать «включать» (задавать 5 вольт) или «выключать» (задавать 0 вольт) некоторые свои выводы, их так же называют ПИНы (Pin).

 

Обычно, для того, чтобы просто  «включать» или «выключать» используют цифровые пины. Цифровые пины на Arduino UNO это пины с 2 по 13. (Рис. 5)

Рис.5 Цифровые пины на контроллере Arduino

 

Для нашего мигающего светодиода я выбрал пин номер 5, вы же можете выбрать любой другой цифровой пин.

Подключение светодиода будет выглядить следующим образом. (Рис.7) Обратите внимание, что светодиод подключен через ограничивающий резистор на 220 Ом. Без него он может просто-напросто сгореть.

Рис.7 Вариант подключения светодиода к цифровому пину 5

 

Подключили? Отлично. Следующим этапом нам нужно научить контроллер «включать» и «выключать» наш цифровой пин. Для этого нам нужно запрограммировать Arduino.

Для программирования Arduino можно пользоваться многими языками программирования и средами разработки.

Мы же будем пользоваться графической средой разработки miniBloq (но никто не мешает вам попробовать другие mBlock, S4A или Arduino IDE). (Рис.8)

Рис.8 Среда графического программирования miniBloq

 

Важно:

После запуска выберите вашу плату, напомню это Arduino UNO, подключите плату к компьютеру

и выберите порт.

Порт Arduino, обычно с самым большим числом из доступных. Например: если доступны COM1 и COM8, то порт Arduino скорее всего COM8, но бывают исключения.

 

Для программирования мы будем использовать блоки из панели инструментов справа. Например, для «включения» или «выключения» цифрового пина мы будем использовать следующий блок. (Рис. 9)

Рис.9 Блок для работы с цифровыми пинами в miniBloq

 

Чтобы поставить блок в нашу программу достаточно кликнуть по нему. (Рис. 10)

Рис. 10.

 

После этого необходимо выбрать пин, с которым мы хотим работать — тот, к которому мы подключили светодиод. Напомню, у меня он с номером 5 (Рис. 11)

 

Рис.11 Выбор пина

 

Теперь, чтобы включить светодиод, нужно задать нашему пину «галочку», а чтобы выключить — «крестик». (Рис. 12)

Рис.12 «Включение» или «выключение» пина задается галочкой и крестиком

 

Хочу вас познакомить еще с одним блоком — задержка. Этот блок нужен чтобы «заставить» наш контроллер немного подождать (Рис. 13).

Рис.13 Блок «задержка» в miniBloq

 

Время задержки в нем измеряется в миллисекундах (всего их 1000 в 1 секунде), чтобы задать колечество милисекунд необходимо выбрать значок #

и прописать необходимое количество миллисекунд используя клавиатуру (Рис. 14).

Рис.14 Задание задержки в миллисекундах в miniBloq

 

 

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

Будьте внимательны:

Если мы напишем программу без задержек, например, включитьвыключитьвключитьвыключить, то мы получим совсем не то, что хотели. Ведь включение и выключение будет происходить очень быстро, настолько быстро, что мы ничего не заметим.

Именно поэтому мы ставим задержки:

включитьподожди 1000 милисекунд

выключитьподожди 2000 милисекунд и тд.

в данном случае пин будет включен 1 секунду и выключен 2 секунды.

 

У меня получилась такая программа. (Рис.15)

Рис.15 Мигание светодиода в miniBloq

 

Теперь запишем нашу программу а Arduino нажав на зеленую стрелочку (Рис 16)

 

Рис. 16. Запись программы в Arduino.

 

Отлично, наш светодиод мигает, но обидно, что он мигает ровно столько раз, сколько мы ему написали.

Замечательно бы было написать 1 цикл мигания (вкл-подождать-выкл-подождать) и зациклить его, чтобы он работал бесконечно.

С помощью нашего языка программирования это сделать можно, для этого существует блок

цикл.

Всего их 2. Но нас интересует условный цикл.

Этот цикл можно превратить в бесконечный (Рис.17), если явно задать на нем галочку.

Рис. 17. Бесконечный цикл.

 

Теперь, все блоки помещенные между этими блоками цикла будут повторяться бесконечно.

Перепишем нашу программу, чтобы светодиод мигал постоянно. (Рис.18).

Рис. 18. Бесконечное мигание светодиода в miniBloq.

 

Надеюсь, вы все поняли. Если да, то переходим к следующему уроку «Знакомство с Arduino. Светофор».

Схемы и скетчи — ДНТЦ «Юный техник»

В этом разделе представлены схемы и скетчи для работ с Arduino, которые мы рассматривали на занятиях. Все схемы выполнены с помощью программы Fritzing. Скетчи созданы и проверены в Arduino IDE 1.6.5. Видеоуроки по основам работы с Arduino от Джереми Блюма (перевод: Амперка)

Список деталей и модулей для работы с Arduino (со ссылками и примерными ценами) здесь.

Раздел будет дополняться по мере изучения новых схем и программ!

  1. Подключение светодиода
    • Схема
    • Мигаем SOS азбукой Морзе
    • Мигаем SOS азбукой Морзе с помощью функций
    • Мигаем азбукой Морзе свою фразу (пример от «Амперка»)
    • Управление яркостью светодиода (бестолковый вариант)
  2. Подключение нескольких светодиодов. Подключение светодиодной панели аналогично подключению 10 отдельных светодиодов. Обязательно подключение токоограничивающих резисторов (как для обычных светодиодов)!!!
    • Схема
    • Зажигаем и гасим от первого светодиода к последнему
    • «Бегущий огонь» / для светодиодной панели
    • Управление 5-ю светодиодами с помощью двух функций
  3. Кнопка и светодиоды. Подключение светодиодной панели аналогично подключению 10 отдельных светодиодов. Обязательно подключение токоограничивающих резисторов (как для обычных светодиодов)!!!
    • Схема с 1 светодиодом
    • Схема с 5 светодиодами
    • Кнопка нажата — светодиод горит
    • Первое нажатие кнопки включает светодиод, второе нажатие — выключает
    • Кнопкой ВСЕ светодиоды на 1000 мс включаются, после чего ВСЕ гаснут
    • «Бегущий огонь» по кнопке
    • Кнопкой зажигаем и гасим светодиоды последовательно
    • Нажатие кнопки зажигает/гасит светодиоды от первого до последнего каждые 500 мс
    • Светофор 1 (только для авто)
    • Светофор 2 (авто + пешеходный)
    • Светофор 3 (полный вариант, с кнопкой)
  4. Потенциометр и светодиоды. Подключение светодиодной панели аналогично подключению 10 отдельных светодиодов. Обязательно подключение токоограничивающих резисторов (как для обычных светодиодов)!!!
    • Схема с 1 светодиодом
    • Схема с 5 светодиодами
    • Два варианта управления яркостью светодиода с помощью потенциометра
    • «Уровень сигнала» / для светодиодной панели
    • Изменяем скорость «бегущего огня»
  5. Фоторезистор и светодиоды
    • Схема подключения аналогична схеме подключения потенциометра при использовании модуля фоторезистора (с дополнительной обвязкой и 4-мя контактами: + / GND / A0 / D0). Пример подключения отдельного фоторезистора (не модулем) и работы с ним можно посмотреть на сайте «Амперки».
    • Два варианта управления яркостью светодиода с помощью фоторезистора (аналоговое подключение фоторезистора)
    • Включение/отключение светодиода фоторезистором (цифровое подключение фоторезистора)
    • «Уровень сигнала»
    • Изменяем скорость «бегущего огня»
  6. Пьезоэлемент
    • Схема подключения с кнопкой
    • Схема подключения совместно с потенциометром и фоторезистором аналогична подключениям в пунктах 4 и 5, только вместо светодиода подключается пьезоэлемент
    • Воспроизведение звука по нажатию кнопки
    • Воспроизведение простейших мелодий (стандартный пример Exapmles -> Digital -> toneMelody)
    • Изменяем частоту звучания фоторезистором (терменвокс от «Амперки»). Фоторезистор можно заменить потенциометром

Для соревнований:

  • Ultratimer — таймер с ультразвуковым датчиком и экраном для отслеживания времени движения робота по линии (считает один круг, дополнительно показывает время предыдущего робота).
  • Ultratimer шорт-трек — таймер с ультразвуковым датчиком и экраном для отслеживания времени движения робота в категории «Шорт-трек» (считает два круга, выводит на экран время обоих кругов и общее время прохождения трассы для одного робота).

Наш адрес: г. Псков, Рижский пр-т, д.16,
каб. 210 (2 этаж), тел: +7(953)238-78-92

Python с Arduino — мигающий светодиод — Robo India || Учебники || Изучите Ардуино |