Для создания светофора на Ардуино нам понадобятся следующие компоненты:
1 - плата совместимого контроллера Ардуино УНО
2 - макетная плата
3 - светодиоды 3 шт (красный, желтый, зеленый)
4 - резисторы 560 Ом 3 шт
5 - соединительные провода
Собираем схему на макетной плате как показано на рисунке ниже:
Запускаем среду разработки Ардуино IDE.
Для разработки программы или скетча светофора, за основу берем скетч Blink.
Дорабатываем скетч следующим образом:
В установочном цикле прописываем цифровые выводы 5,6,7 как выходы.
В главном цикле программы формируем следующий алгоритм работы нашего светофора:
Подаем на цифровой выход 5 высокий уровень HIGHT, Загорается зеленый светодиод, горит 60 секунд, затем мигает 3 раза с интервалом 0,5 сек, отключаем зеленый светодиод, устанавливаем выход 5 в LOW.
Подаем на цифровой выход 6 высокий уровень HIGHT, Включаем желтый светодиод на 3 секунды, устанавливаем выход 6 в LOW, желтый светодиод гаснет.
Подаем на цифровой выход 7 высокий уровень HIGHT, Загорается красный светодиод, горит 55 секунд,
Подаем на цифровой выход 6 высокий уровень HIGHT, Включаем желтый светодиод на 5 секунд и выключаем красный и желтый, устанавливаем выход 6, 7 в LOW.
И опять зеленый, и так по циклу.
Пример кода:
- Код: выделить все
// Урок 4. Светофор на Ардуино (C) www.forklg.ru
void setup() {
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(5, HIGH); // зеленый
delay(60000);
digitalWrite(5, LOW);
delay(500);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(5, LOW);
delay(500);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(5, LOW);
delay(500);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(5, LOW);
digitalWrite(6, HIGH); // желтый
delay(3000);
digitalWrite(6, LOW);
digitalWrite(7, HIGH); // красный
delay(55000);
digitalWrite(6, HIGH); // желтый
delay(5000);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
// переход в начало цикла
}
Алгоритм работы светофора скопирован с реального светофора на перекрестке