Решил опубликовать скетч работы самого обыкновенного светофора.
Режим работы светофора:
- Все светодиоды выключены
- 5 секунд горит красный светодиод
- На 3 секунды включается желтый, красный продолжает гореть.
- Красный и желтый гаснут.
- Включается зеленый на 4 секунды.
- Зеленый начинает моргать 4 раза.
- Зеленый гаснет, желтый включается на 3 сек.
- Желтый гаснет, включается красный и т.д.
НАМ ПОНАДОБИТСЯ
- Плата Arduino Uno
- Три светодиода: красный, желтый и зеленый
- Три резистора сопротивлением 220-270 Ом.
- Провода
СХЕМА ПОДКЛЮЧЕНИЯ
СКЕТЧ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | int ledPinRed = 12; // назначаем пин 12 – красный светодиод int ledPinYel = 11; // назначаем пин 11 – желтый светодиод int ledPinGr = 10; // назначаем пин 10 – зеленый светодиод void setup() { pinMode(ledPinRed, OUTPUT); // задаем светодиод - выходной пин pinMode(ledPinYel, OUTPUT); // задаем светодиод - выходной пин pinMode(ledPinGr, OUTPUT); // задаем светодиод - выходной пин digitalWrite(ledPinRed, 0); // выключаем красный digitalWrite(ledPinYel, 0); // выключаем желтый digitalWrite(ledPinGr, 0); // выключаем зеленый } void loop() { digitalWrite(ledPinRed, 1); //включаем красный delay(5000); //задержка красного 5 сек. digitalWrite(ledPinYel, 1); //включаем желтый delay(3000); //задержка желтого 3 сек digitalWrite(ledPinYel, 0); //выключаем желтый digitalWrite(ledPinRed, 0); //выключаем красный digitalWrite(ledPinGr, 1); //включаем зеленый delay(4000); //задержка зеленого 4 сек //цикл со счетчиком. Изменение переменной i с шагом 1 от 4 до 1. //Когда значение i будет равно 1, выполнится выход из цикла. //т.е. мы задаем кол-во миганий зеленого светодиода 4 раза for (int i=4; i>0; i--) { digitalWrite(ledPinGr, 0); delay(500); //задержка 500мс digitalWrite(ledPinGr, 1); delay(500); //задержка 500мс } digitalWrite(ledPinGr, 0); //выключаем зеленый digitalWrite(ledPinYel, 1); //включаем желтый delay(3000); //задержка желтого 3 сек digitalWrite(ledPinYel, 0); //выключаем желтый } |
в коде вместо 0 и 1 можно писать LOW и HIGH соответственно.