Ejemplo completo: Sensor_IR
Librería necesaria para el sensor: NECIRrcv
En esta entrada al igual que en la anterior solo explicaré las funciones más utilizadas de la librería y como declarar y utilizar una interrupción:
Comencemos con el código:
Lo primero es declarar el pin en el que se encuentra el sensor IR:
#define IRPIN 2
NECIRrcv ir(IRPIN);
Una vez incluidas las librerías necesarias dentro de nuestro programa tendremos que iniciar el sensor y la interrupción dentro del void setup():
void setup()
{
Serial.begin(9600);
ir.begin();
Serial.println("NEC IR code reception");
attachInterrupt(0, LecturaIR, RISING); // Pin asociado, 0 = Pin 2 1 = Pin 3, nombre de la interrupción, evento que la activa RISING sería un flanco positivo en el pin 2.
}
Una vez iniciado todo ya podemos utilizar el sensor IR para hacer una lectura de un mando, esto lo haré dentro de la interrupción:
void LecturaIR()
{
unsigned long ircode ;
while (ir.available())
{
ircode = ir.read();
Serial.print("got code: ");
Serial.println(ircode,HEX);
}
}
Esquema de conexiones: