Возвращаюсь к теме откатных ворот! Есть кое какие наработки и достаточно простенький скетч новичка в ардуино. Есть схема и уже настроенные каналы на пульте. Требуется небольшая доработка и подсказка по безопасности работы сего устройства!
Просил помощи по форумам, у видя что используются библиотеки ALEXGUVER - продолжения темы ,по непонятной для меня причине, стопорилось. Но это лирика, а по факту требуется корректировка скетча:
-непойму как откорректировать работу концевых выключателей, которые в схеме работают как обычные кнопки, т.е. они отключают релюхи в процессе имитации открытия(закрытия), но при повторном нажатии - не срабатывают как конечные концевики.
Просил помощи по форумам, у видя что используются библиотеки ALEXGUVER - продолжения темы ,по непонятной для меня причине, стопорилось. Но это лирика, а по факту требуется корректировка скетча:
-непойму как откорректировать работу концевых выключателей, которые в схеме работают как обычные кнопки, т.е. они отключают релюхи в процессе имитации открытия(закрытия), но при повторном нажатии - не срабатывают как конечные концевики.
C++:
#include <GyverButton.h>
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
GButton Knopka (3,HIGH_PULL,NORM_OPEN);
GButton Knopka2 (10,HIGH_PULL,NORM_OPEN);
GButton Open (5,HIGH_PULL,NORM_OPEN);
GButton Close (4,HIGH_PULL,NORM_OPEN);
bool releOpen = 8;
bool releClose = 9;
bool LedB = 7;
bool LedR = 6;
bool POWER = 10;
void setup() {
Serial.begin(9600);
Knopka.setDebounce(100);
Knopka2.setDebounce(100);
pinMode(releOpen, OUTPUT);
pinMode(releClose, OUTPUT);
pinMode (LedB, OUTPUT);
pinMode (LedR, OUTPUT);
Open. setDebounce (100);
Close. setDebounce (100);
mySwitch.enableReceive(0);
//pinMode (POWER, OUTPUT);
}
void loop() {
Knopka.tick();
Knopka2.tick();
Open.tick();
Close.tick();
//____________открытие ворот__________
if (Knopka.isPress()
|| mySwitch.getReceivedValue() == 1234567
|| mySwitch.getReceivedValue() == .............
|| mySwitch.getReceivedValue() == ............. ) {
digitalWrite (releClose, LOW);
delay(1000);
digitalWrite (releOpen, HIGH && Serial.println ("Ворота открываются") );
digitalWrite (LedB,HIGH);
digitalWrite (LedR,LOW);
mySwitch.resetAvailable();
}
if (Open.isPress() ) {
digitalWrite (releOpen, LOW);
digitalWrite (LedB,LOW);
digitalWrite (LedR,HIGH);
Serial.println ("Ворота открыты");
//digitalWrite (POWER, LOW);
}
//_____________________закрытие ворот_____________
if (Knopka2.isPress()
|| mySwitch.getReceivedValue() == 1234567
|| mySwitch.getReceivedValue() == ............
|| mySwitch.getReceivedValue() == ............ ) {
digitalWrite (releOpen, LOW);
delay(1000);
digitalWrite (releClose, HIGH && Serial.println ("Ворота закрываются"));
digitalWrite (LedB,HIGH);
digitalWrite (LedR,LOW);
mySwitch.resetAvailable();
}
if (Close.isPress()) {
digitalWrite (releClose, LOW);
digitalWrite (LedB,LOW);
digitalWrite (LedR,HIGH);
Serial.println ("Ворота закрыты");
//digitalWrite (POWER, LOW);
}
}