• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Таймер, включить, нажать выключить

Буду рад помощи, вот по этому таймеру. Хотелось бы в любой момент прервать время, этой же кнопкой, вторым нажатием. Может у кого есть заготовка, поделитесь.
Код:
//

int ledPin = 13; 
long OnTime = 500000; 
int ledState = LOW;
int pinButton = A0;
unsigned long previousMillis = 0;
void setup()
{
pinMode(ledPin, OUTPUT);
}
void loop()
{
  unsigned long currentMillis;   
 
  if (ledState == HIGH)
  {
    currentMillis = millis();
 
    if (currentMillis-previousMillis >= OnTime)
    {
       ledState = LOW;
       previousMillis = 0;
       digitalWrite(ledPin,ledState);
     } 
   }
  
  if (digitalRead(pinButton) == HIGH)
  {
    previousMillis = currentMillis; 
    ledState = HIGH;
    digitalWrite(ledPin,ledState);
  }
}
 
Сверху Снизу