Introducción

Estamos tan acostumbrados a los mandos a distancia infrarrojos que no dedicamos un momento a pensar en ellos y simplemente nos parece normal, algo que a nuestros abuelos les hubiera parecido magia.
Nos parece normal que los equipos electrónicos, televisores, cadenas de música, aires acondicionados, respondan a nuestras instrucciones sin levantarnos del sofá, pero esto no ha sido siempre así, es más, es relativamente reciente, que estos mandos se popularizaron.
Pero el concepto de la emisión y recepción de señales infrarrojas no es, ni mucho menos trivial, y exige tener nociones de ondas electromagnéticas (energía, frecuencia, longitud, etc...) que sobrepasan nuestro nivel. No obstante para aquellos que querás profundizar más en el tema os recomiendo la excelente descripción del artículo de Prometec sobre sensores infrarrojos.
El objetivo de este ejercicio es aprender a recibir señales infrarrojas mediante un sensor/receptor IR emitidas por un mando a distancia de infrarrojos.
sensor ultrasonico explicacion

Material necesario

Nombre Imagen Descripción
Placa Arduino Uno arduino uno large comp Placa Arduino Uno (o cualquier otra versión) 
Receptor/sensor de infrarrojos sensorIR Un receptor de infrarrojos integrado como el AX1838HS. Independiente o con breakout board
Un mando a distancia (emisor infrarrojos)
mandoKeyes

Cualquier mando a distancia puede ser usado para probar la señal infrarroja.

Cables de conexiones entre los componentes, la placa de pruebas y Arduino cables Estos cables nos permiten conectar de manera sencilla todos los elementos del circuito.

Circuito eléctrico (diagrama de conexiones)

El circuito es realmente trivial... Solo hay que tener en cuenta el siguiente diagrama de conexiones....

sensorIRConexiones
 Con lo que bastará con conectar la patilla GND al pin GND de Arduino, la patilla VCC al pin 5V de Arduino y la patilla DAT (señal) a cualquier salida digital de Arduino, en nuestro caso, lo haremos al pin digital 9.
circuitoIR

Código programa Arduino

Para poder detectar señales lo mejor es usar una librería (código generado que permite usar determinaciones funciones que no pertenecen al IDE de Arduino). No entraremos en profundidad en el uso de dichas librerías (vitales para cualquier programador en cualquier idioma) (leer artículo de Prometec sobre librerías) pero en este caso usaremos la librería Arduino-IRremote desarrollada por Rafi Khan (z3t0) disponible en este enlace.

El programa que se muestra a continuación, muestra por el monitor serie los códigos asociados a las pulsaciones del mando en formato HEXADECIMAL.

Arduino Code
  1. #include "IRremote.h"
  2.  
  3. const int RECV_PIN = 9;
  4.  
  5. IRrecv irrecv(RECV_PIN);
  6. decode_results results;
  7.  
  8. void setup()
  9. {
  10. Serial.begin(9600);
  11. irrecv.enableIRIn();
  12. }
  13.  
  14. void loop()
  15. {
  16. if (irrecv.decode(&results))
  17. {
  18. Serial.println(results.value, HEX);
  19. irrecv.resume();
  20. }
  21. }
  22.  

Código mBlock

Para poder recibir señales mediante nuestro sensor infrarrojo usando el sofware mBlock lo primero que debemos hacer es instalar una extensión de mBlock que nos permita usar los bloques de programación asociados al control de señales infrarrojas (pulsa para obtener más información sobre la Administración de Extensiones que ofrece mBlock). En este caso la extensión que vamos a instalar se llama IRremote y ha sido creada por el usuario Abaddon).

Una vez que hayamos instalado la extensión IRremote nos aparecerán una serie de nuevos comandos para poder realizar la comunicación infrarroja.

El programa que se muestra a continuación, muestra por el monitor serie los códigos asociados a las pulsaciones del mando en formato HEXADECIMAL.

SensorIR
Spanish English French German Italian Portuguese Russian

Artículos