Практическая работа № 35 «Программное управление двумя светодиодами».
Цель работы: научиться управлять моделью гирлянды из множества светодиодных модулей.
Оборудование и материалы: контроллер Arduino, светодиоды, резисторы.
Порядок выполнения работы.
- Соберите и запрограммируйте устройство управления одним светодиодом и убедитесь в его работоспособности.
- Усложните конструкцию и программу, добавив в схему второй светодиод, подключив его, например, к десятому контакту Arduino.
- Составьте программу, в которой одновременно мигают светодиоды на 13 и 10 контактах контроллера (рис. 10.15).
- Измените программу, заставив светодиоды мигать в противофазе: когда светит диод на тринадцатом контакте, на десятом контакте сигнал отсутствует и второй светодиод не горит; через 1 с первый светодиод гаснет, и в этот же момент загорается светодиод на десятом контакте. Все действия повторяются. Если задать бесконечный цикл повторения действий, то программа примет вид, представленный на рисунке 10.16.
Так можно усложнять конструкцию и программу, добавляя ещё светодиоды. Создайте конструкцию из трёх, четырёх, пяти светодиодов, запрограммировав эффект «Бегущего огня»: в гирлянде из нескольких светодиодов по очереди загорается один светодиод. Поскольку все источники света расположены по одной линии, кажется, что огонёк перемещается по цепочке светодиодов.
Для трёх светодиодов схема и программа работы устройства представлены на рисунках 10.17, 10.18.
На рис. 10.14 светодиод подключён к D13 через отдельный резистор и общий контакт GND. На рис. 10.15 программа управляет выходами 13 и 10: оба включены 1 с, затем оба выключены 1 с; цикл повторяется 10 раз. На рис. 10.16 состояния выходов противоположны и меняются через 1 с; в изображённом блоке задано 10 повторений. На рис. 10.18 для «бегущего огня» используются выходы 13, 10 и 9, задержка 1 с и 10 повторений.
Пример выполнения. Программы составляем из блоков визуального управления, как в §
После блока запуска по нажатию на флажок ставим «повторять
- Изменить статус цифрового разъёма
на «истина». - Ждать
с. - Изменить статус цифрового разъёма
на «ложь». - Ждать
с.
Пример ожидаемого результата: светодиод загорается на секунду и гаснет на секунду, всего десять вспышек. Продолжительность одного повторения
- D
— «истина». - D
— «истина». - Ждать
с. - D
— «ложь». - D
— «ложь». - Ждать
с.
Задержки между командами включения нет, поэтому глаз воспринимает загорание как одновременное. Оба светодиода светят одну секунду и оба не светят следующую секунду. Это соответствует рис.
- D
— «истина». - D
— «ложь». - Ждать
с. - D
— «ложь». - D
— «истина». - Ждать
с.
В первой части цикла горит только первый светодиод, во второй — только второй. Они меняются ролями через одну секунду, потому что значения выходов противоположны. Для непрерывного чередования используем блок бесконечного повторения вместо «повторять
| Шаг цикла | D |
D |
D |
Что видно |
|---|---|---|---|---|
| Истина | Ложь | Ложь | Горит первый светодиод | |
| Ложь | Истина | Ложь | Горит второй светодиод | |
| Ложь | Ложь | Истина | Горит третий светодиод |
После третьего шага повторяем первый. В каждый момент светит только один светодиод, поэтому возникает впечатление перемещения огонька. Один проход занимает
Программу расширяем отдельными группами команд. В каждой группе включаем только очередной выход, всем остальным задаём «ложь», затем ждём
Пример результата проверки: один светодиод мигает; два мигают сначала синхронно, затем попеременно; в моделях из трёх, четырёх и пяти светодиодов свет последовательно переходит от первого к последнему. Для этого достаточно изученных команд включения, выключения, ожидания и повторения.
Пример: собраны и запрограммированы модели с одним, двумя, тремя, четырьмя и пятью светодиодами. Для синхронного мигания D
