Управление реле.
- Войдите на сайт для отправки комментариев
Втр, 06/12/2016 - 16:33
Добрый день. Есть пульт на 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(); } }
Добавьте переменные-флаги. По нажатию кнопки пульта не включайте/выключайте реле напрямую, а меняйте состояние переменных-флагов (инвертируйте при каждом нажатии). В основном цикле программы проверяйте эти флаги и уже в зависимости от их состояния включайте/выключайте реле.