Вот код накидал в спешке, оптимизировать некогда , сейчас убегаю.
Состояние реле будет видно на светодиоде D13
Кнопка подключается на D12 и на GND
PHP код:
unsigned char button_state;
unsigned char button_mem;
#define BUTTON 12
#define RELAY 13
void setup()
{
pinMode(RELAY,OUTPUT);
pinMode(BUTTON,INPUT);
digitalWrite(BUTTON, HIGH); //подключить внутренний подтягивающий резистор
}
void loop()
{
button_state = digitalRead(BUTTON); //прочитать состояние кнопки
delay(30); // пауза для проверки дребезга
if (digitalRead(BUTTON) == LOW && button_state == LOW && button_mem == 0)
{
digitalWrite(RELAY, HIGH);
button_mem=255; //запомнить состояние реле
while(digitalRead(BUTTON) == LOW){ delay(10);}//ждем отпускания кнопки
} else
{
if (digitalRead(BUTTON) == LOW && button_state == LOW && button_mem == 255)
{
digitalWrite(RELAY, LOW);
button_mem=0; //запомнить состояние реле
while(digitalRead(BUTTON) == LOW){ delay(10);}//ждем отпускания кнопки
}
}
}