Проблемы с работой ИК датчика.
- Войдите на сайт для отправки комментариев
Пт, 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?ฆ это значение от протокол ณฑ)ฝ если время финиш и код повтор близнец нет, работа (нагрузка) конец.
?
Гугле перевод с тайского.
?
Выводите в монитор порта, что приходит с датчика - не только распознанные коды, а все. Узнаете много интересного.