Просмотр содержимого документа
«Робототехника. Программируемый светофор.»
Управление образования и молодежной политики городского округа Чкаловск Нижегородской области Муниципальное казённое образовательное учреждение Чкаловская средняя школа №5 городского округа город Чкаловск Нижегородской области
Программируемый светофор на базе микроконтроллера Arduino Uno
Выполнила: Ковылёва Надежда Сергеевна,
учитель технологии и информатики
первой квалификационной категории
Светофор со светодиодами
тремя цветов можно назвать
проектом начального уровня.
Но на его основе
можно сделать
интересные и полезные устройства,
например,
тренажеры для обучения детей
правилам дорожного движения.
Этот проект также позволит
начинающим
еще больше узнать о
программировании
в среде Ардуино
Что такое светофор?
Светофор — оптическое устройство, подающее световые сигналы, регулирующие движение автомобильного, железнодорожного, водного и другого транспорта, а также пешеходов на пешеходных переходах.
Согласно ГОСТу Р52282-2004 с правилами применения дорожных знаков и светофоров, длительность сигнала “красный с желтым” не должна превышать 2 секунд, длительность желтого строго равна 3 секундам. Мигание зеленого цвета происходит с частотой 1миг/секунду В течение 3х секунд.
Алгоритм работы
Вот этот алгоритм трехсекционного светофора
для водителей, принятый за стандарт в России:
Нам понадобится
Arduino UNO или Arduino Nano
Плата макетная беспаечная
Резисторы 220 ОМ 3 шт
Соединительные провода
Светодиоды 3 шт.
Принципиальная схема
Подключим три LED к плате Arduino UNO .
У нас получиться вот такая схема
Скетч светофора на Arduino UNO.
- Для этого создадим переменные и инициализируем пины как выход.
int led_red = 3; int led_yellow = 4; int led_green = 5; boolean ledOn = HIGH; void setup() { pinMode(led_red, OUTPUT); pinMode(led_yellow, OUTPUT); pinMode(led_green, OUTPUT); }
Продолжаем писать код
- В основном цикле loop() можно все реализовать, используя функции digitalWrite() и delay(). В итоге должен получиться вот такой код.
{ pinMode(led_red, OUTPUT); pinMode(led_yellow, OUTPUT); pinMode(led_green, OUTPUT); } void loop() { digitalWrite(led_red, HIGH); delay(10000); digitalWrite(led_yellow, HIGH); delay(2000); digitalWrite(led_red, LOW); digitalWrite(led_yellow, LOW); digitalWrite(led_green, HIGH); delay(10000); digitalWrite(led_green, LOW); digitalWrite(led_yellow, HIGH); delay(2000); digitalWrite(led_yellow, LOW); }
Модернизируем программу
Чтобы заставить мигать зеленый светодиод воспользуемся функцией for()
for (int i = 0; i
Цикл выполняется 6 раз, так как при каждом выполнении цикла мы меняем переменную с HIGH на LOW и наоборот. И выполняем либо включение светодиода, либо выключение.
Результат работы