Таймер: реле на пять секунд
Нажатие запускает отсчёт, реле само отключится — всё на millis().

Что понадобится
Как подключить
| Откуда | Куда | |||
|---|---|---|---|---|
| Arduino Uno | 5V | → | Реле | VCC |
| Arduino Uno | GND | → | Реле | GND |
| Arduino Uno | D7 | → | Реле | IN |
| Arduino Uno | D2 | → | Кнопка | 1.l |
| Кнопка | 2.l | → | Arduino Uno | GND |
Скетч
// Нажали кнопку — реле включилось на 5 секунд и выключилось само.
// Повторное нажатие во время отсчёта продлевает время.
const int BTN = 2;
const int RELAY = 7;
const unsigned long HOLD_MS = 5000;
unsigned long offAt = 0;
bool on = false;
bool lastLevel = HIGH;
void setup() {
pinMode(BTN, INPUT_PULLUP);
pinMode(RELAY, OUTPUT);
Serial.begin(9600);
}
void loop() {
bool level = digitalRead(BTN);
if (lastLevel == HIGH && level == LOW) {
offAt = millis() + HOLD_MS;
if (!on) {
on = true;
digitalWrite(RELAY, HIGH);
Serial.println("пошёл отсчёт 5 с");
} else {
Serial.println("отсчёт продлён");
}
delay(30);
}
lastLevel = level;
if (on && millis() >= offAt) {
on = false;
digitalWrite(RELAY, LOW);
Serial.println("время вышло, реле выключено");
}
delay(20);
}
Коротко о детали: Реле
Реле — электромагнитный ключ: слабый сигнал с платы коммутирует нагрузку на 220 В или мощный мотор. Силовые контакты COM, NO и NC полностью развязаны от управляющей стороны. В симуляторе загораются индикаторы, но контакты ничего не переключают.
Ещё примеры с деталью «Реле»
Попробуйте сами
Симулятор работает прямо в браузере: схему можно менять, код — править, а результат видно сразу. Бесплатно, без установки и регистрации.
Открыть «Таймер: реле на пять секунд» в симуляторе