Проблемы с работой ИК датчика.
- Войдите на сайт для отправки комментариев
Пт, 02/08/2019 - 20:39
Здравствуйте, жители форума! В общем я решил сделать ИК управление, чтобы при нажатой кнопке шел сигнал, а при отпущенной нет. Скоммуниздил код и библиотеку к ИК датчику, подключил правильно датчик, дуину, светодиоды включил светодиод пультом, вроде все работает. Но только пока включение одной кнопкой, и отдельное выключение другой. Когда попробовал сделать так, как задумал. При нажатой кнопке датчик мерцает, как будто в цикле loop поставлена задержка ~40 млс. Кто знает как исправить?
Код:
#include <boarddefs.h> #include <IRremote.h> #include <IRremoteInt.h> #include <ir_Lego_PF_BitStreamEncoder.h> IRrecv irrecv(A0); decode_results results; void setup() { irrecv.enableIRIn(); pinMode(10, OUTPUT); pinMode(12, OUTPUT); pinMode(A0, INPUT); Serial.begin(9600); } void loop(){ if (irrecv.decode(&results)) { Serial.println(results.value); unsigned long r = results.value; while (r == 3843267751 || r == 2891014758) { Serial.println("forward"); digitalWrite(12, HIGH); digitalWrite(12, LOW); r = 0; } while (r == 3826490130 || r == 2907792379) { Serial.println("backward"); digitalWrite(10, HIGH); digitalWrite(10, LOW); r = 0; } while (r == 2568141210 || r == 10463599) { Serial.println("right"); r = 0; } while (r == 3189060206 || r == 3684511895) { Serial.println("left"); r = 0; } irrecv.resume(); } }
если кнопка имеет зажат имеет код повтор близнец, ожидание новый код повтор близнец и время счет (время ~130?ฆ это значение от протокол ณฑ)ฝ если время финиш и код повтор близнец нет, работа (нагрузка) конец.
?
Гугле перевод с тайского.
?
Выводите в монитор порта, что приходит с датчика - не только распознанные коды, а все. Узнаете много интересного.