как отсеить FFFFFFF IRemote

ya
Offline
Зарегистрирован: 09.12.2014

как отсеить FFFFFFF в библиотеке IRemote

Radjah
Offline
Зарегистрирован: 06.08.2014

switch...case например.

ya
Offline
Зарегистрирован: 09.12.2014

есть такой код

#include <IRremote.h>
int RECV_PIN = 11; //define input pin on Arduino
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value
}
} 

как отфильтровать

Radjah
Offline
Зарегистрирован: 06.08.2014
Пушной звер
Пушной звер аватар
Offline
Зарегистрирован: 17.03.2013
mcshel
Offline
Зарегистрирован: 17.10.2014

Сегодня как раз игрался с IR и если правильно помню это что-то типа повторного нажатия. По идеи правильно подсказывают, надо обрабатывать в коде. if/else или switch/case

Пример с http://cxem.net/arduino/arduino127.php

#include "Servo.h"
#include "IRremote.h"
IRrecv irrecv(11);
decode_results results;
Servo servoMain;
int servPoz = 90; //Начальное положение сервы
int lastPoz = 0;
void setup()
{
  irrecv.enableIRIn();
  servoMain.attach(10); // Servo присоединен к 10 выводу
  servoMain.write(servPoz);
}
void loop() {
  if (irrecv.decode(&results))
  {
    int res = results.value;
    Serial.println(res, HEX);
    if(res==0xFFFF906F)// Если нажата кнопка "+"
    {
      lastPoz=res;
      servPoz++; 
      servoMain.write(servPoz);
    }
    else if(res==0xFFFFA857)// Если нажата кнопка "-"
    {
      servPoz--;
      lastPoz=res;
      servoMain.write(servPoz);
    }
    else if(res==0xFFFFFFFF)// Если кнопку удерживают
    {
      if(lastPoz==0xFFFF906F) servPoz++;// Удерживают "+"
      if(lastPoz==0xFFFFA857) servPoz--;// Удерживают "-"  
      servoMain.write(servPoz);
    }
    irrecv.resume();
    delay(100);
  }
}