Problema ricevitore IR

Salve,
ho un problema con il ricevitore IR. Se premo lo stesso pulsante più volte cambia sempre il codice di usicta. Qualuno mi sa dire il perchè ? Come faccio ad assegnare una funzione a un tasto, se ogni volta mi cambia il valore in usicta di un tasto?

Ecco il programma

#include <IRremote.h>

int RECV_PIN = 22;

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
}
}

Succede esattamente lo stesso con il codice di esempio dumpv2?

Perchè hai usato il pin 22?
Devi usarne uno che abbia il timer e comunque modificare la libreria se ne usi un altro timer perchè per default la lib usa il 9 se hai una mega

IRRemoteInt.h

// Arduino Mega
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
	//#define IR_USE_TIMER1   // tx = pin 11
	#define IR_USE_TIMER2     // tx = pin 9
	//#define IR_USE_TIMER3   // tx = pin 5
	//#define IR_USE_TIMER4   // tx = pin 6
	//#define IR_USE_TIMER5   // tx = pin 46

// Teensy 1.0
#elif defined(__AVR_AT90USB162__)
	#define IR_USE_TIMER1     // tx = pin 17

// Teensy 2.0
#elif defined(__AVR_ATmega32U4__)
	//#define IR_USE_TIMER1   // tx = pin 14
	//#define IR_USE_TIMER3   // tx = pin 9
	#define IR_USE_TIMER4_HS  // tx = pin 10

// Teensy 3.0 / Teensy 3.1
#elif defined(__MK20DX128__) || defined(__MK20DX256__) || defined(__MK64FX512__) || defined(__MK66FX1M0__)
	#define IR_USE_TIMER_CMT  // tx = pin 5

// Teensy-LC
#elif defined(__MKL26Z64__)
  #define IR_USE_TIMER_TPM1 // tx = pin 16

// Teensy++ 1.0 & 2.0
#elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
	//#define IR_USE_TIMER1   // tx = pin 25
	#define IR_USE_TIMER2     // tx = pin 1
	//#define IR_USE_TIMER3   // tx = pin 16

// MightyCore - ATmega1284
#elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__)
	//#define IR_USE_TIMER1   // tx = pin 13
	#define IR_USE_TIMER2     // tx = pin 14
//#define IR_USE_TIMER3   // tx = pin 6

DominikMiotla:
Salve,

Il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare ( pulsante </> ).
Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.

Alcuni telecomandi quando presi lo stesso pulsante, inviano la prima volta il codice del pulsante e poi inviano un codice fisso, mi pare 0xFFFFFF (almeno alcuni dei miei)
Altri telecomandi invece continuano ad inviare sempre lo stesso codice.

Poi ci vorrebbe lo schema, quale arduino stai usando, versioni lib …