/** * (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); }