OK. Ho dato un'occhiata alla IRremote.
Di default usa il timer 2 ma ho visto da un suo file di configurazione che questa scelta può essere cambiata. Basta editare il file IRremoteInt.h
Per l'Arduino UNO (quindi Atmega328), si devono invertire i commenti alle linee 66/67:
// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
#else
//#define IR_USE_TIMER1 // tx = pin 9
#define IR_USE_TIMER2 // tx = pin 3
#endif
Per l'Arduino MEGA (quindi Atmega2560) si sceglie il timer alle righe 33/37:
// 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