ขนาดวิดีโอ: 1280 X 720853 X 480640 X 360
แสดงแผงควบคุมโปรแกรมเล่น
เล่นอัตโนมัติ
เล่นใหม่
Спасибо. Зачетно!
#include const int led1Pin = 4; // Подключен к пину 4const int led2Pin = 5; // Подключен к пину 5RCSwitch mySwitch = RCSwitch();unsigned long led1OnTime;unsigned long led2OnTime;bool led1On;bool led2On;volatile boolean flag;void setup() { pinMode(led1Pin, OUTPUT); // обьявляем пин к которому подключено реле на выход pinMode(led2Pin, OUTPUT); // обьявляем пин к которому подключено реле на выход led1On = false; led2On = false; mySwitch.enableReceive(0); // Receiver on interrupt 0=> подключен к пину 2 pinMode(3, INPUT_PULLUP);attachInterrupt(1, myInterrupt, FALLING);}void loop() { if (mySwitch.available()) {int value = mySwitch.getReceivedValue();} if (mySwitch.getReceivedValue() == 11088392) // Кнопка A пульта{digitalWrite(led1Pin, HIGH); led1On = true;led1OnTime = millis();}if (flag){digitalWrite(led1Pin, LOW);led1On = false;flag = 0;} if (mySwitch.getReceivedValue() == 11088388) // Кнопка B пульта{digitalWrite(led2Pin, HIGH);led2On = true;led2OnTime = millis();} if (led1On && millis() - led1OnTime > 10000){digitalWrite(led1Pin, LOW);led1On = false;} if (led2On && millis() - led2OnTime > 10000){digitalWrite(led2Pin, LOW);led2On = false;}mySwitch.resetAvailable();}void myInterrupt() { flag = 1; }
можно сделать в 3 раза проще.
как?
Спасибо. Зачетно!
#include
const int led1Pin = 4; // Подключен к пину 4
const int led2Pin = 5; // Подключен к пину 5
RCSwitch mySwitch = RCSwitch();
unsigned long led1OnTime;
unsigned long led2OnTime;
bool led1On;
bool led2On;
volatile boolean flag;
void setup()
{ pinMode(led1Pin, OUTPUT); // обьявляем пин к которому подключено реле на выход
pinMode(led2Pin, OUTPUT); // обьявляем пин к которому подключено реле на выход
led1On = false;
led2On = false;
mySwitch.enableReceive(0); // Receiver on interrupt 0=> подключен к пину 2
pinMode(3, INPUT_PULLUP);
attachInterrupt(1, myInterrupt, FALLING);
}
void loop() {
if (mySwitch.available())
{int value = mySwitch.getReceivedValue();}
if (mySwitch.getReceivedValue() == 11088392) // Кнопка A пульта
{digitalWrite(led1Pin, HIGH);
led1On = true;
led1OnTime = millis();}
if (flag){digitalWrite(led1Pin, LOW);
led1On = false;
flag = 0;
}
if (mySwitch.getReceivedValue() == 11088388) // Кнопка B пульта
{digitalWrite(led2Pin, HIGH);
led2On = true;
led2OnTime = millis();}
if (led1On && millis() - led1OnTime > 10000)
{digitalWrite(led1Pin, LOW);
led1On = false;}
if (led2On && millis() - led2OnTime > 10000)
{digitalWrite(led2Pin, LOW);
led2On = false;}
mySwitch.resetAvailable();}
void myInterrupt() {
flag = 1;
}
можно сделать в 3 раза проще.
как?