KKM: Daljinski upravljač + IR receiver

Početnik si s Croduinom. Ili s elektronikom? Za oko ti je zapeo određeni modul, ali ne znaš kako ga koristiti? Bez brige, tu je KKM! Kako Koristiti Module (KKM) je serija blog tutorijala e-radionice na kojoj ćeš pronaći sve što ti treba kako bi započeo rad sa svojim omiljenim modulom. Tutorijali obuhvaćaju: tehničke karakteristike, princip rada, upute kako povezati modul s Croduinom te osnovni kod. Sve ostalo prepuštamo tebi na maštu.

Uvod

U ovom tutorijalu ćete naučiti kako upravljati različitim uređajima putem IR veze. Osim daljinskog koji dolazi u ovome paketu, možete koristiti bilo koji drugi daljinski iz Vaše okoline te ga isprogramirati kako želite. Priključivanje IR prijemnika s Croduinom je jednostavno, a kompletan sustav radi na standardnoj frekvenciji za IR kontrolu od 38kHz.

 

Karakteristike:
• Struja: max. 5mA
• Frekvencija: 38kHz
• Dimenzije: 115mm x 80mm x 15mm, 22g

Kako radi?

Da bih znali kako modul radi najprije moramo znati što je IR. IR stoji za infrared (infra crvena zrake), svjetlost koja je izvan ranga vidljive svjetlost tj. nevidljiva našem oku. Budući da je IR vrsta svjetlosti, IR komunikacija zahtijeva izravnu liniju vidljivosti od prijemnika do odašiljača. Ne može se prolaziti kroz zidove, kao što može WiFi ili Bluetooth.

Tipični infracrveni komunikacijski sustav zahtijeva IR odašiljač i IR prijemnik. Daljinski odašiljač izgleda kao standardni LED, osim što stvara svjetlost u IR spektru umjesto vidljivog spektra. Ako pogledate na prednju stranu TV daljinskog upravljača, vidjet ćete LED daljinskog upravljača:

IR prijemnik je fotodioda i pred-pojačalo koje pretvara IR svjetlost u električni signal. Diode IR prijemnika obično izgledaju ovako kada su spojeni na pločicu, ali mogu se koristiti i bez:

IR svjetlost emitiraju sunce, žarulje i sve drugo što stvara toplinu. To znači da postoji puno IR svjetlosnog onečišćenja oko nas. Kako bi se spriječilo onečišćenje od IR signala, koristi se tehnika modulacije signala.
 
Kod IR modulacije, enkoder na IR daljinskom upravljaču pretvara binarni signal u modulirani električni signal. Ovaj se električni signal šalje na LED odašiljač. LED odašiljač pretvara modulirani električni signal u modulirani IR signal. IR prijemnik zatim demodulira IR svjetlosni signal i pretvara ga u binarni prije nego što podatke prenese na Croduino:

Modulirani IR signal je niz IR svjetlosnih impulsa uključenih i isključenih pri visokoj frekvenciji poznatoj kao nosač frekvencije. Frekvencija nosača koja koristi većina odašiljača je 38 kHz, jer je rijetka u prirodi i stoga se može razlikovati od onečišćenja okoline. Tako IR prijemnik će znati da je signal s 38 kHz poslan od odašiljača, a ne od okoline.
 

Prijemna dioda detektira sve frekvencije IR svjetla, ali ima filtar prolaza i omogućuje samo IR kroz 38 kHz. Potom pojačava modulirani signal s pred-pojačalom i pretvara ga u binarni signal prije nego što ga šalje Croduinu.
 
Svakim pritiskom gumba na daljinskom upravljaču generira se jedinstven heksadecimalni kôd. To je informacija koja je modulirana i poslana preko IR prijamnika. Kako bi se dešifrirala koja tipka je pritisnuta, primajući mikrokontroler mora znati koji kod odgovara kojoj tipki na daljinskom upravljaču.
 
Različiti daljinski upravljači šalju različite kodove za tipke, pa ćete morati utvrditi kod generiran za svaku tipku vašeg daljinskog upravljača. Ako možete pronaći data sheet, trebali bi biti navedeni IR kodovi tipki. Ako ipak ne postoji, postoji jednostavan Croduino spoj koji će očitati većinu popularnih daljinskih upravljača i ispisati heksadecimalne kodove serial monitoru kada pritisnete tipku. U sljedećem dijelu pokazat ćemo kako napraviti spoj za detekciju daljinskih upravljača i jednostavan spoj kao primjer koji pali i gasi LEDiode.

Kako povezati?

Prvi spoj služit će nam za detekciju tipki bilo kojeg drugog daljinskog upravljača koji želimo koristiti.
 

Naš IR prijemnik kada ga gledamo s prednje strane (crna točka s X) ima 3 nožice. Prva s lijeva je IN koju ćemo spojiti na digitalni ulaz 7, zatim u sredini je GND koju spajamo na GND Croduina i na kraju, desno VCC koji spajamo na +5V Croduina.
 

Na slici je prikazan spoj bez pločice, ako želite možete spojiti sa pločicom, poredak priključnica je isti, ona nam samo služi da vidimo da li IR prijemnik zaprimio signal tako da se osvijetli crvena LEDioda.

Sad ćemo vam pokazati jednostavan spoj s kojim možete koristiti IR daljinski upravljač za kontrolu Croduinovih izlaznih pinova. U ovom primjeru, zasvijetlit ćemo LED kada pritisnemo određeni gumb. Kôd možete lako mijenjati kako bi mogli kontrolirati elektromotor, ili aktivirati releje bilo kojim pritiskom gumba s daljinskog upravljača.
 

Za ovaj spoj, osim IR prijemnika trebat će nam LEDiode i otpornici. Prilikom spajanja pazite na polaritet diode.
 

IR spajamo isto kao i u prošlom spoju: prvu nožicu na Digitalni pin 7, srednju na GND i zadnju (skroz desno) na +5V Croduina. Sada u spoju imamo i 2 LEDiode. Na Anodu prve LEDiode (crvena) spajamo Digitalni pin 10 Croduina, a na katodu otpornik od 1 kilo ohm te na GND Croduina, tako isto vrijedi i za drugu LEDiodu (zelenu) samo što ovaj put anodu spajamo na Digitalni pin 11, katodu na otpornik i sa otpornika na GND Croduina.

Arduino library i kod

Za programiranje IR Prijemnika trebati će vam IRemote biblioteka za Croduino koju možete skinuti OVDIJE
 
Kod za detekciju tipki:
 
Sada pritisnite svaku tipku na daljinskom upravljaču i zabilježite heksadecimalni kôd ispisan za svaki pritisak tipke, kod će biti ispisan na serial monitoru.

#include "IRremote.h" //Biblioteka za IR prijemnik
const int RECV_PIN = 7; //Deklaracija za IR
IRrecv irrecv(RECV_PIN); // stvara reciver objekt sa nazivom po vlastitom izboru.
decode_results results; // Pokušava primiti IR kod. Vraća istinu ako je primljen kôd ili
//laž ako ništa još nije primljeno. Kada se šalje kôd, podaci se
//pohranjuju u "results".
void setup(){ //Serial monitor
Serial.begin(9600); // otvara serijski port, postavlja brzinu prijenosa podataka na 9600
//bps
irrecv.enableIRIn(); //Započnje postupak prijema. To će omogućiti prekidanje
//timera koji troši malu količinu CPU svakih 50 μs
irrecv.blink13(true); //Omogućuje treptanje LED-a tijekom prijema. Budući da ne možete
//vidjeti infracrvenu svjetlost, treptajući LED može biti koristan za
//rješavanje problema ili samo za vizualnu povratnu informaciju.
}

Kod za jednostavan spoj sa LEDiodama:
 
Kôd u nastavku će uključiti digitalni pin 10 HIGH za 2 sekunde kada se pritisne tipka "5" i uključiti digitalni pin 11 HIGH za 2 sekunde kada pritisnete tipku "2"
 

#include "IRremote.h" //Biblioteka za IR prijemnik
const int RECV_PIN = 7; //Deklaracije IR -a kao i u prethodnom primjeru
IRrecv irrecv(RECV_PIN);
decode_results results;
const int redPin = 10; //Deklaracije crvene diode
const int greenPin = 11; //Deklaracije zelene diode
void setup(){
irrecv.enableIRIn(); //isto kao u prethodnom primjeru
irrecv.blink13(true);
pinMode(redPin, OUTPUT); //pin postavlja da bude izlaz/izvor za crvenu lediodu
pinMode(greenPin, OUTPUT); //isto za zelenu lediodu
}
void loop(){
if (irrecv.decode(&results)){
switch(results.value){
case 0xFF38C7: //Kod za tipku "5"
digitalWrite(redPin, HIGH); //osvijetli crvenu diodu
delay(2000); //drži osvjetljeno 2 sekunde
digitalWrite(redPin, LOW); //ugasi crvenu diodu
}
switch(results.value){
case 0xFF18E7: //Kod za tipku "2"
digitalWrite(greenPin, HIGH); //osvijetli zelenu diodu
delay(2000); //drži osvjetljeno 2 sekunde
digitalWrite(greenPin, LOW); //ugasi zelenu diodu
}
irrecv.resume();
}
}
Leave a Reply