KKM: IC receiver + daljinski

Uvod


Infracrvena svijetlost je najsličnija vidljivom svjetlost samo malo veće valne duljine, dovoljno da bude nevidljiva ljudskom oku i kao takva sjajna za komunikaciju elektroničkih uređaja. Uvjerljivo najpoznatija je frekvencije 38kHz koju IC dioda emitira kada pritisnemo tipku TV daljinskog.



Ovaj tutorijal prvo će objasniti princip IC komunikacije, a zatim se baciti na spajanje i Arduino programiranje.


Karakteristike daljinskog upravljača:


Baterija: CR2025 / 160mAh (dolazi s daljinskim)
Broj tipki: 21
Frekvencija: 38kHz
Encoding: NEC format, upd6122 shema, korisnički kod 00FF
Valna duljina: 940Nm
Dimenzije: 86 x 40 x 6mm

Osnova komunikacije


Kao što smo već spomenuli osnovna fora s IC komunikacijom je 38kHz modulacija. Razlog je što postoji vrlo malo prirodnih izvora ovog signala, tako da će se IC odašiljač bez problema probiti kroz IC zračenja u okolišu. Iako je najčešća, 38kHz nije i jedina frekvencija koja se koristi za ovu komunikaciju. Više o IC svjetlosti možete pročitati u ovom tutorialu.


Prilikom pritiska tipke na daljinskom IC dioda će djelić sekunde blicati vrlo brzo i na taj način poslati enkriptirane podatke prijemniku. Dakle, kontroliranjem razmaka između pulseva jednog poslanog signala mijenjamo naredbu. Ispod se nalazi gif slika slanja jednog takvog signala. Za gif je zadužan sbproject.com.




S druge strane komunikacije nalazi se IC prijemnik. Uobičajeni je TSOP382 koji najbolje radi upravo s 38kHz frekvencijom. Prijemnik prima odaslanu modulaciju i proslijeđuje je mikrokontroleru. Za početnički tutorial dovoljno.

Kako povezati?




Upoozorenje: provjerite pin-out vašeg prijemnika.

Arduino kod


Za interpretaciju primljenog signala koristit ćemo odličan Arduino bibloteku pomoću koje vrlo jednostavno šaljemo i primamo signal. S obzirom da imamo predprogramirani daljinski, ovaj puta ćemo samo primati signal.

No prije idemo rješiti dvije stvari:
1. Arduino biblioteku možete instalirati prema tutorialu
2. Potrebno je obrisati folder RobotIRremote iz C:\Program Files (x86)\Arduino\libraries

Nakon što uploadamo kod ispod na Croduino pločicu, otvorite Serial Monitor i s nekim daljinskim šaljite i čitajte kodove koje primate.

#include 

int RECV_PIN = 2;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); 
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume(); 
  }
  delay(100);
}

Što dalje?


Kao i uvijek, pitamo vas što dalje. Šaljite nam svoje primjere i komentare. Mala pomoć za početak: isprogramirati ćemo Croduino tako da pri primitku tipka "0" ugasi LEDicu na 13tom pinu Croduina odnosno upali prilikom pritiska tipke "1".

#include 

int RECV_PIN = 11;
int LED = 13;

unsigned int tipka_0 = 0xFF6897; // HEX kod tipke 0 na daljinskom
unsigned int tipka_1 = 0xFF30CF;

unsigned int hash = 0;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  irrecv.enableIRIn(); 
}

void loop() {
  if (irrecv.decode(&results)) {
    hash = results.value; // spremamo očitanje s daljinskog
    irrecv.resume(); 
  }
  // uvjeti za željene modulacije
  if (hash == tipka_0) digitalWrite(LED, LOW);
  else if (hash == tipka_1) digitalWrite(LED, HIGH);
  delay(100);
}
Leave a Reply