Таймер: реле на пять секунд

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

Продвинутый уровень Arduino Uno C++
Схема подключения: Таймер: реле на пять секунд
Схема в симуляторе. Нажмите «Открыть в симуляторе», чтобы запустить её и поменять.

Что понадобится

Как подключить

ОткудаКуда
Arduino Uno5V→РелеVCC
Arduino UnoGND→РелеGND
Arduino UnoD7→РелеIN
Arduino UnoD2→Кнопка1.l
Кнопка2.l→Arduino UnoGND

Скетч

// Нажали кнопку — реле включилось на 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 полностью развязаны от управляющей стороны. В симуляторе загораются индикаторы, но контакты ничего не переключают.

Распиновка и все примеры →

Ещё примеры с деталью «Реле»

Попробуйте сами

Симулятор работает прямо в браузере: схему можно менять, код — править, а результат видно сразу. Бесплатно, без установки и регистрации.

Открыть «Таймер: реле на пять секунд» в симуляторе