Arduino može služiti i kao IR transmitter odnosno daljinski upravljač. To je vrlo popularan trik - kontrola TV-a na javnim mjestima :)
Za to je potrebna IR dioda (IR predajnik - IR transmitter) i lista IR kôdova za upravljanje uređajem.
Na slici ispod je primjer Arduino IR daljinskog koji, nakon pritiska na tipku, šalje MUTE signal za LG LCD TV 32LK330.
Pritiskom na tipku, Arduino šalje unaprijed podešeni IR kod koji IR dioda emituje i time vrši upravljanje uređajem.
Normalno, da bi sve funkcionisalo, IR dioda treba uperiti prema uređaju.
Ispod je kôd sketch-a koji vrši slanje MUTE IR signala za LG LCD TV nakon pritiska na dugme (kopirajte kompletan kôd ispod u Arduino IDE prozor i upload-ujte ga na Arduino) :
/*
* SLANJE JEDNOG IR KODA PRITISKOM NA DUGME
*
* Autor: Samir Gutić
* URL: http://amicus.ba
* Datum: 4. II 2017.
*/
#include <IRremote.h>
#include <IRremoteInt.h>
#include <Bounce2.h>
#define PinDugmeta 4
#define PinLED 13
int intStanjeLED = LOW;
//Kreiranje instance Bounce objekta
Bounce bOdskakanje = Bounce();
IRsend irsend;
void setup()
{
//Kreiranje dugmeta sa internim pull-up otpornikom
pinMode(PinDugmeta,INPUT_PULLUP);
//Kreiranje Bounce instance
bOdskakanje.attach(PinDugmeta);
bOdskakanje.interval(100); //Interval odskakanja dugmeta
//Definisati LED
pinMode(PinLED,OUTPUT);
digitalWrite(PinLED,intStanjeLED);
Serial.begin(9600);
}
void loop()
{
if (intStanjeLED==1)
{
//Slanje priljenog IR koda
irsend.sendNEC(0x20DF906F, 32);//MUTE
delay(500);
intStanjeLED=0;
digitalWrite(PinLED,intStanjeLED);
}
//Update Bounce instancu
bOdskakanje.update();
//Izvršavanje koda kada Bounce pada (prijelaz sa HIGH na LOW)
if (bOdskakanje.fell())
{
//Promijeni (toggle) stanje LED
intStanjeLED = !intStanjeLED;
digitalWrite(PinLED,intStanjeLED);
Serial.print("intStanjeLED=");
Serial.println(intStanjeLED);
}
}
U tabeli ispod su IR kodovi za neke daljinske upravljače:
LG autoradio |
LG TV 32LK330 |
CarMP3 daljinski |
|||||
Komanda |
HEX kôd |
Komanda |
HEX kôd |
Komanda |
HEX kôd |
||
Audio |
34347887 |
POWER |
20DF10EF |
CH- |
FFA25D |
||
SEL |
343455AA |
Volume UP |
20DF40BF |
CH |
FF629D |
||
UP |
3434E817 |
Volume DOWN |
20DFC03F |
CH+ |
FFE21D |
||
SRC |
343433CC |
CH+ |
20DF00FF |
II<< |
FF22DD |
||
# |
3434748B |
CH- |
20DF807F |
>>II |
FF02FD |
||
DOWN |
34346897 |
Mute |
20DF906F |
>II |
FFC23D |
||
1 |
3434827D |
- |
FFE01F |
||||
2 |
343442BD |
+ |
FFA857 |
||||
3 |
3434C23D |
EQ |
FF906F |
||||
4 |
343422DD |
0 |
FF6897 |
||||
5 |
3434A25D |
100+ |
FF9867 |
||||
6 |
3434629D |
200+ |
FFB04F |
||||
7 |
3434E21D |
1 |
FF30CF |
||||
8 |
343412ED |
2 |
FF18E7 |
||||
9 |
3434926D |
3 |
FF7A85 |
||||
ENTER |
34349A65 |
4 |
FF10EF |
||||
0 |
34349A65 |
5 |
FF38C7 |
||||
DISP |
3434C53A |
6 |
FF5AA5 |
||||
7 |
FF42BD |
||||||
8 |
FF4AB5 |
||||||
9 |
FF52AD |
Arduino IR diodi šalje heksadecimani kôd, koji inače šalje daljinski što uređaj interpretira kao komandu svojeg daljinskog upravljača.
Šema spoja elemenata kreirana u Fritzing programu je na slici ispod.
Kao što se vidi sa šeme iznad, plus pol IR diode je, preko otpornika R=220Ω spojen na pin 5.
Električna šema spoja je na sljedećoj slici.
Ispod je video koji prikazuje kako funkcioniše slanje IR koda putem IR diode. Obratite pažnju na kratak bljesak IR diode (do tipke) nakon pritiska na tipku.
Napomena: Ljudsko oko nije u stanju detektovati infracrvenu svjetlost pa je, za provjeru da li IR dioda uopšte emituje, tokom pritiska na tipku IR diodu potrebno gledati kroz kameru mobitela.
Potrebne komponente:
1 x Arduino UNO
1 x Breadboard (mala)
1 x IR dioda (940nm)
1 x otpornik 220Ω
1 x otpornik 10KΩ
1 x tipka (NO)
Žice za spajanje
9V napajanje