int Button = 2; // вход кнопки разрешения старта
int BuzzPin = 9; // выход на динамик
int UccBF = 8; // питание р/с
int GreenLed = 7; // выход на зелёный светодиод
int RedLed = 13; // выход на красный светодиод
uint32_t myTimer1;
int delayCounter = 0;
int state = LOW;
void setup()
{
pinMode(Button, INPUT); // устанавливает режим работы - вход
pinMode(BuzzPin, OUTPUT); // устанавливает режим работы - выход
pinMode(UccBF, OUTPUT); // устанавливает режим работы - выход
pinMode(GreenLed, OUTPUT); // устанавливает режим работы - выход
pinMode(RedLed, OUTPUT); // устанавливает режим работы - выход
digitalWrite(BuzzPin, HIGH); // выключает динамик
digitalWrite(UccBF, HIGH); // выключает питание р/с
digitalWrite(GreenLed, LOW); // выключает зелёный светодиод
digitalWrite(RedLed, HIGH); // включает красный светодиод
digitalWrite(Button, HIGH); // включаем подтягивающий резистор pull-up
}
void loop()
{
if (digitalRead(Button) == LOW) { // считываем состояние кнопки
digitalWrite(BuzzPin, LOW); delay(500); // Включаем звук на 0,5 секунд.
digitalWrite(BuzzPin, HIGH); delay(5000); // Выключаем звук на 5 секунд.
digitalWrite(UccBF, LOW); // включаем питание р/с:
digitalWrite(GreenLed, HIGH); // зажигаем зелёный светодиод:
for (int i=0; i <= 5; i++) {
digitalWrite(BuzzPin, LOW); delay(500); // Включаем звук на 0,5 секунд
digitalWrite(BuzzPin, HIGH); delay(500); // Выключаем звук на 0,5 секунд
}
digitalWrite(BuzzPin, LOW); delay(1000); // Включаем звук на 1 секунду
digitalWrite(BuzzPin, HIGH); // выключаем звук
digitalWrite(UccBF, HIGH); // выключаем питание р/с
digitalWrite(GreenLed, LOW); // выключаем зелёный светодиод
}
else {
// мигаем красным светодиодом
if (delayCounter == 0) {
if (state == LOW) {
state = HIGH;
delayCounter = 100; // Светить 150 мс
}
else {
state = LOW;
delayCounter = 900; // Не светить 350 мс
}
digitalWrite(RedLed, state);
}
delay(1); // wait for a millisecond
--delayCounter; // Уменьшить счётчик на единицу
}
}