/**
* (C) jarduino.ru 2019
* Изучение ардуино через опыты.
*
* Опыт №4 Светофор. Скетч №1
* Независимое управление 3-мя светодиодами на примере работы светофора.
*/
// Глобальные константы
const int pinRedLed = 12; // красный подключен к порту 12
const int pinYellowLed = 9; // желтый подклчен к порту 9
const int pinGreenLed = 6; // зеленый подключен к порту 6
const int lightDelay = 2000; // продолжительность свечения зеленого и крассного
const int blinkDelay = 100; // полупериод мигания
const int blinkTimes = 3; // число миганий
const int delayMult = 1; // множитель, ускоряющий работу светофора в указанное здесь число раз
// настройка платы
void setup()
{
// инициализировть цифровые порты светофора на вывод:
pinMode(pinRedLed, OUTPUT);
pinMode(pinYellowLed, OUTPUT);
pinMode(pinGreenLed, OUTPUT);
}
// главный цикл программы
void loop()
{
// сначала горит зеленый
digitalWrite(pinGreenLed, HIGH);
delay(lightDelay * delayMult);
digitalWrite(pinGreenLed, LOW);
// зеленый мигает и гаснет
for (int i = 0; i < blinkTimes; ++i) // blinks for 3 times
{
delay(blinkDelay * delayMult);
digitalWrite(pinGreenLed, HIGH);
delay(blinkDelay * delayMult);
digitalWrite(pinGreenLed, LOW);
}
// ненадолго зажигается желтый
digitalWrite(pinYellowLed, HIGH);
delay(200 * delayMult);
digitalWrite(pinYellowLed, LOW);
// зажигается красный
digitalWrite(pinRedLed, HIGH);
delay(lightDelay * delayMult);
digitalWrite(pinRedLed, LOW);
// красный мигает и гаснет
for (int i = 0; i < blinkTimes; ++i) // blinks for 3 times
{
delay(blinkDelay * delayMult);
digitalWrite(pinRedLed, HIGH);
delay(blinkDelay * delayMult);
digitalWrite(pinRedLed, LOW);
}
// ненадолго зажигается желтый
digitalWrite(pinYellowLed, HIGH);
delay(200 * delayMult);
digitalWrite(pinYellowLed, LOW);
}