Управление реле.

Sonin02
Offline
Зарегистрирован: 25.08.2016

Добрый день. Есть пульт на 433 мгц. в стандартном примере ReceiveDemo_Simple вставил свои значения для кнопок пульта (скетч скину ниже). При нажатии на кнопку реле замыкалось, а нужно чтобы при повторном нажатии реле размыкалось. Как так сделать? В гугле ничего не нашёл или плохо искал. Кто поиожет буду благодарен.

=============================================================
                                                               мой скетч 
 
const int Rel1=9;
const int Rel2=10;

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {
  pinMode(Rel1, OUTPUT);
  pinMode(Rel2, OUTPUT);
  Serial.begin(9600);
  mySwitch.enableReceive(0);  // Receiver on inerrupt 0 => that is pin #2
}

void loop() {
  if (mySwitch.available()) {
    
    int value = mySwitch.getReceivedValue();
    
    if (value == 0) {
      Serial.print("Unknown encoding");
    } else {
      
      Serial.println( mySwitch.getReceivedValue() );
if(mySwitch.getReceivedValue()==5563128){Serial.print(" Datchik dvegenia "); }
else if(mySwitch.getReceivedValue()==1326849){digitalWrite(Rel1, HIGH);} // 1-е реле вкл
else if(mySwitch.getReceivedValue()==1326850){digitalWrite(Rel2, HIGH);} // 2-е реле вкл
    }
    mySwitch.resetAvailable();
  }
}

 

 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Добавьте переменные-флаги. По нажатию кнопки пульта не включайте/выключайте реле напрямую, а меняйте состояние переменных-флагов (инвертируйте при каждом нажатии). В основном цикле программы проверяйте эти флаги и уже в зависимости от их состояния включайте/выключайте реле.