Никак не могу заставить работать приёмник 433МГц и rc-switch. С другими датчиками поигрался - работают, а вот с этим никак. Чтобы не привязываться к библиотеке тестирую следующим кодом:
Проблема в том, что прерывания идут постоянно. При использовании rc-switch ничего не происходило вообще. Пробовал разные пины, питание подавал как через USB (компьютер/зарядка), так и через YwRobot. Перепробовал три разных датчика (MX-RM-5V, RF-5V, GD-RXV6D) и два NodeMCU - результат одинаковый, а новогоднего чуда не произошло.
Подскажите, пожалуйста, что надо сделать, чтобы надёжнее всего заставить работать связку приёмнка с esp8266?
Код:
#define timeSeconds 2
const int led = LED_BUILTIN;
const int rSensor = D3;
unsigned long now = millis();
volatile unsigned long lastTrigger = 0;
volatile boolean startTimer = false;
ICACHE_RAM_ATTR void detectsSignal() {
if (!startTimer) {
Serial.println("Interrupt!!!");
digitalWrite(led, LOW);
startTimer = true;
lastTrigger = millis();
}
}
void setup() {
Serial.begin(115200);
delay(100);
pinMode(rSensor, INPUT_PULLUP);
// pinMode(rSensor, INPUT);
// attachInterrupt(digitalPinToInterrupt(rSensor), detectsSignal, RISING);
attachInterrupt(digitalPinToInterrupt(rSensor), detectsSignal, CHANGE);
pinMode(led, OUTPUT);
digitalWrite(led, HIGH);
}
void loop() {
now = millis();
if(startTimer && (now - lastTrigger > (timeSeconds*1000))) {
Serial.println("Stopped...");
digitalWrite(led, HIGH);
startTimer = false;
}
}
Подскажите, пожалуйста, что надо сделать, чтобы надёжнее всего заставить работать связку приёмнка с esp8266?
Вложения
-
503.5 KB Просмотры: 29