Распознает одну и ту же клавишу всегда по-разному, что делать? Юзаю hx1838. Вот код: Код (C++): #include "IRremote.h" #define RELAY1 12 #define RELAY2 8 #define IRs 10 IRrecv irrecv(IRs); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); pinMode(RELAY1, OUTPUT); pinMode(RELAY2, OUTPUT); // pinMode(IRs, INPUT); digitalWrite(RELAY1, LOW); digitalWrite(RELAY2, LOW); } void loop() { if ( irrecv.decode(&results) ) { Serial.println(results.value,HEX); irrecv.resume(); } }
Замените литиевую батарейку СR1220, когда она разряжается пульт выдает неверные коды. Для проверки - ваш пульт работает по протоколу NEC, верхняя левая кнопка имеет код FFA25D.
Прикол в том, что значения постоянно меняются. Я пробовал обычным пультом от телевизора сигнал послать, то же самое. Одна кнопка, нажимаем несколько раз, значения прыгают.
Проверил напряжение мультиметром, значение 3,33. Вот такой пульт и приемник https://ru.aliexpress.com/item/1LOT....0.106Xbr&detailNewVersion=&categoryId=400103
ну у меня была подобная фигня, и я заметил одну закономерность: в зависимости от дистанции меняется последовательность, я отходил и по мере отдаления по 10 раз нажимал на протяжении 15метров и так несколько раз для каждой кнопки в итоге у меня получалось 80% - одна последовательность, 15-20% - вторая и иногда ~3% третья. но не более 3х разновидностей на каждой кнопке. ну я не стал ломать голову использовал все 3 для кнопки.. может и вам этого будет достаточно
Попробуйте в код delay(100) поставить. Мне кажется, что у Вас просто залипание клавиши... И нажимайте быстро, не задерживайте на клавише палец, иначе на выходе вы нули получите
кстати я с залипанием боролся так : if(нажата){ while(нажата){ //пустое тело цикла, то есть ждем пока отпустит } // делаем что хотели } мне так больше нравится и конец задержки ждать не нужно и заморачиваться над нажатием, может не самый оптимальный вариант в плане используемых ресурсов(не знаю), но удобно
подниму тему. Пытаюсь подключить тот же датчик. пробовал менять значения в библиотеке #define TOLERANCE 35 но результат тот же. При нажатии одной кнопки выдаёт разные коды. Заметил, что если пульт держать рядом с приёмником, то код приходит один и тот же, но когда отдаляешь пульт, то приходит практически рандом