Ик применик и пульт

Тема в разделе "Проводная и беспроводная связь", создана пользователем ZVEN, 20 ноя 2016.

  1. ZVEN

    ZVEN Нерд

    Распознает одну и ту же клавишу всегда по-разному, что делать?
    Юзаю 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();
      }
    }
     
     
  2. ZVEN

    ZVEN Нерд

    Никто не знает в чем проблема может быть
     
  3. ZAZ-965

    ZAZ-965 Гуру

    Замените литиевую батарейку СR1220, когда она разряжается пульт выдает неверные коды. Для проверки - ваш пульт работает по протоколу NEC, верхняя левая кнопка имеет код FFA25D.
     
  4. ZVEN

    ZVEN Нерд

    У меня батарейка CR2025
     
  5. ZVEN

    ZVEN Нерд

    Прикол в том, что значения постоянно меняются.
    Я пробовал обычным пультом от телевизора сигнал послать, то же самое.
    Одна кнопка, нажимаем несколько раз, значения прыгают.
     
  6. ZVEN

    ZVEN Нерд

  7. Markello

    Markello Нуб

    ну у меня была подобная фигня, и я заметил одну закономерность: в зависимости от дистанции меняется последовательность, я отходил и по мере отдаления по 10 раз нажимал на протяжении 15метров и так несколько раз для каждой кнопки в итоге у меня получалось 80% - одна последовательность, 15-20% - вторая и иногда ~3% третья. но не более 3х разновидностей на каждой кнопке. ну я не стал ломать голову использовал все 3 для кнопки.. может и вам этого будет достаточно
     
  8. M0ln1a

    M0ln1a Гик

    Попробуйте в код delay(100) поставить. Мне кажется, что у Вас просто залипание клавиши... И нажимайте быстро, не задерживайте на клавише палец, иначе на выходе вы нули получите :)
     
  9. Markello

    Markello Нуб

    это похоже на залипание?
     
  10. M0ln1a

    M0ln1a Гик

    У меня тоже пульт показывает несколько значений
    Я назвал это значит неправильно
     
  11. Markello

    Markello Нуб

    кстати я с залипанием боролся так :

    if(нажата){
    while(нажата){
    //пустое тело цикла, то есть ждем пока отпустит
    }
    // делаем что хотели
    }

    мне так больше нравится и конец задержки ждать не нужно и заморачиваться над нажатием,
    может не самый оптимальный вариант в плане используемых ресурсов(не знаю), но удобно
     
  12. NikitOS

    NikitOS Король шутов Администратор

    • берем рандомный полученный код и по нему делаем что хотим
    у меня работает как-то
     
  13. sbaikov

    sbaikov Нуб

    подниму тему. Пытаюсь подключить тот же датчик.

    пробовал менять значения в библиотеке
    #define TOLERANCE 35
    но результат тот же. При нажатии одной кнопки выдаёт разные коды.
    Заметил, что если пульт держать рядом с приёмником, то код приходит один и тот же, но когда отдаляешь пульт, то приходит практически рандом
     
  14. NikitOS

    NikitOS Король шутов Администратор