Problema Librería IRLRemote: No entiendo el error [SOLUCIONADO]

Hola de nuevo, hoy me he lanzado a leer y emitir señales infrarrojas. Mi intención era ser capaz de "leer" el mando de la tele, copiar los parámetros y emitir desde mi placa Arduino UNO esos parámetros. Después de informarme un poco de distintas librerías que me faciliten la vida me he decidido en primer lugar por IRRemote en primer lugar pero no ha acabado de convencerme y finalmente por IRLRemote (GitHub - NicoHood/IRLremote: Lightweight Infrared library for Arduino) que es bastante más simple para lo que quiero.
La parte de recibir una señal y traducirla ha sido muy fácil y rápida, casi plug'n'play, pero en el momento de emitir la misma señal me da un error que no entiendo (creo que es más cosa de no acabar de entender C++, concretamente los "templates", creo, que de Arduino). He probado tal cual el ejemplo que hay en github y me sale el mismo error, lo que me hace pensar que es cosa mía (no creo que al modder le vaya bien y a mí exactamente lo mismo no, pero no lo descarto tampoco).
Mi código es:

#include <IRLremote.h>
const int BotM=9; //+ Volumen
const int Botm=10; //- Volumen
const int ledIR=3; //Led IR
void setup() {
  // put your setup code here, to run once:
pinMode(BotM,INPUT_PULLUP);
pinMode(Botm,INPUT_PULLUP);
pinMode(ledIR,OUTPUT); //En principio no hace falta hacer esto, pero de perdidos al río.
}
void loop() {
  // put your main code here, to run repeatedly:
if (!digitalRead(BotM)) {
  uint16_t address=0x20DF;
  uint32_t command=0x40BF;
  IRLwrite<IR_NEC>(ledIR, address, command); //LÍNEA QUE PROVOCA EL FALLO
  delay(300);
}
if (!digitalRead(Botm)) {
  uint16_t address=0x20DF;
  uint32_t command=0xC03F;
  IRLwrite<IR_NEC>(ledIR, address, command); //LÍNEA QUE PROVOCA EL FALLO
  delay(300);
}
}

El programa tiene 2 botones, al tocar uno debe subir el volumen, al tocar el otro bajarlo.
El error que me da a mí es:
Arduino:1.6.5 (Windows 8.1), Placa:"Arduino Uno"
Emisor1.ino: In function 'void loop()':
Emisor1:16: error: no match for 'operator<' (operand types are 'void(uint8_t, uint16_t, uint32_t) {aka void(unsigned char, unsigned int, long unsigned int)}' and 'IRType')
Emisor1:22: error: no match for 'operator<' (operand types are 'void(uint8_t, uint16_t, uint32_t) {aka void(unsigned char, unsigned int, long unsigned int)}' and 'IRType')
no match for 'operator<' (operand types are 'void(uint8_t, uint16_t, uint32_t) {aka void(unsigned char, unsigned int, long unsigned int)}' and 'IRType')

  • This report would have more information with*
  • "Show verbose output during compilation"*
  • activala desde Archivo > Preferencias*

He probado varias opciones a ciegas, y nada, no le saco punta.
El código del ejemplo del creador de la librería es:

¿Alguien que entienda la librería o del asunto puede echarme una mano?

Como siempre un saludo y gracias por adelantado.

Hola.
A mí me ha compilado perfectamente.
Vigila que la ruta de la librería esté bien, pues por defecto la carpeta se llama IRLremote-master, en lugar de IRLremote a secas.
También he de decir que uso Arduino 1.6.0, dado que la versión también podría tener que ver con el error.
Saludos.

He hablado con el autor de la librería, me ha dicho lo mismo, a él le compila. Me ha recomendado que instale otra versión, la 1.8.0 (alfa) y en esta versión compila, pero ahora los datos que me da el mando son distintos, y el emisor aunque funciona no es detectado por el receptor... en fin un cacao. Me pondré a investigar a ver que sale. Muchas gracias.

No uses la 1.6.5 estoy de acuerdo 100% con noter. Ya hemos leído muchos problemas como el tuyo.
Baja a la 1.6.0 que no da problemas.

Confirmado, en Arduino 1.6.0 funciona perfectamente. Gracias a ambos :slight_smile: