En aquest experiment, aprendrem a utilitzar el mòdul transmissor d’infrarojos i el receptor d’infrarojos. De fet, en la nostra vida quotidiana juguen un paper important en la majoria dels electrodomèstics que s’utilitzen a aquest tipus de dispositius, com ara aire condicionat, TV, DVD, etc. En realitat es basa en la seua teledetecció sense fils i és molt convenient utilitzar-los.
Imatge | Descripció |
---|---|
Arduino Uno o compatible amb S4A i amb el firmware per S4A carregat. | |
Cables de connexió | |
Mòdul receptor IR KY022 | |
Mòdul emissor IR KY005 |
Sensor d’infrarojos tipus 1838 per a ús amb senyals IR de 38 KHz.
Els detectors IR són petits microxips amb fotocèl·lula que s’ajusten per escoltar la llum infraroja. Gairebé sempre s’utilitzen per a la detecció de control remot: cada reproductor de TV i DVD en té un a la part frontal per llegir el senyal IR des del comandament. A l’interior del comandament a distància hi ha un LED IR coincident, que emet impulsos IR per dir al televisor que s’encenga, s’apague o canvie de canal. La llum IR no és visible a l’ull humà, de manera que es necessita una mica més de treball per provar una configuració.
Els detectors IR es filtren especialment per a la llum infraroja, no són bons per detectar la llum visible. D’altra banda, les fotocèl·lules són bones per detectar la llum visible de color groc/verd, no són bones per a la llum IR.
Aquest mòdul s’utilitza generalment juntament amb el mòdul de receptor IR, les aplicacions d’aquest mòdul són molt àmplies en la nostra vida comuna. L’IR-LED es pot utilitzar per construir una barrera de llum o un transmissor de senyal de control remot IR.
Aquest mòdul és igual que un LED, però el color de la llum no es pot veure a l’ull humà, sinó que podeu veure la llum a través de la càmera del telèfon.
Aquest muntatge és molt senzill, no ens fa falta protoboard però en canvi necessitem dues plaques arduino.
Els cables d’alimentació (5V i GND) tenen posicions fixes en la placa, els cables de dades els conectarem en la entrada/eixida corresponent segons indiquem en el codi
Codi: ARD_13_IRe (pujar a la placa del emissor)
#include <IRremote.h>
IRsend irsend;
void setup()
{
}
void loop()
{
digitalWrite(13,LOW);
irsend.sendRC5(0x0, 8); //send 0x0 code (8 bits)
delay(200);
digitalWrite(13,HIGH);
irsend.sendRC5(0x1, 8);
delay(200);
}
Codi: ARD_13_IRr (pujar a la placa del receptor)
#include <IRremote.h>
#define RECV_PIN 11 //Pin de recepcio del senyal IR
#define LED 13 //defineix LED pin
IRrecv irrecv(RECV_PIN); //crear l'objecte irrecv per al receptor IR en el pin indicat
decode_results results; //declarem la variable results (dades de la recepcio)
void setup()
{
pinMode(LED, OUTPUT); //inicialitza LED com eixida
Serial.begin(9600);
irrecv.enableIRIn(); //activa l'objecte irrecv
}
void loop()
{
if (irrecv.decode(&results)) //comprovem si arriven dades
{
int state;
if ( results.value ## 1 )
{
state # HIGH;
}
else
{
state # LOW;
}
digitalWrite( LED, state );
Serial.println(results.value);
irrecv.resume(); // comencem una nova recepció
}
}