Arduino IR krug daljinskog upravljanja

Isprobajte Naš Instrument Za Uklanjanje Problema





U ovom ćemo postu izraditi prilagodljivi IR (infracrveni) bežični daljinski upravljač zasnovan na Arduinu, koji se sastoji od IC daljinskog upravljača i prijemnika, a možete ga prilagoditi prema svojim potrebama. U kasnijem dijelu članka saznajemo o nadograđenoj sigurnosnoj verziji IR daljinskog upravljača koja će reagirati samo na jedinstveno dodijeljenu frekvenciju.

Ako ste iznad početničke razine, to možete postići s lakoćom. Predloženi krug ovdje ilustriran ima samo tri komande na daljinskom i 3 releja na kraju prijemnika. Možete izmijeniti kod i shemu sklopa kako biste zadovoljili svoje potrebe.



Trebat će vam dvije Arduino ploče, koje djeluju kao daljinski, a druga kao prijemnik. Za ovaj bih projekt preporučio Arduino pro mini, jer su njihove veličine prilično male, a ukupna veličina daljinskog upravljača može se izbjeći.

Za daljinski možete koristiti Arduino pro mini zasnovan na 3.3V, tako da se prema vašim potrebama možete napajati pomoću ćelije s dva gumba ili dvije baterije veličine AA.



Krug IR odašiljača ima 3 tipke za uključivanje i IR LED za slanje naredbi na prijemnik. Svaka tipka programirana je jedinstvenim heksadecimalnim kodom, isti heksadecimalni kod programiran je i na strani prijamnika.

Kada se pritisne tipka, IR LED šalje heksadecimalni kôd na prijemnik, prijemnik će prepoznati koji je gumb pritisnut i uključuje / isključuje odgovarajući relej.

Predloženi daljinski upravljač koristi RC5 protokol za komunikaciju s prijamnikom, a sve možete promijeniti izmjenom koda.

Ako ste tek početnik u Arduinu, to još uvijek možete postići, samo slijedite dijagram i prenesite kôd bez izmjena.

Sklop i program:

Arduino daljinski odašiljač:

IR preklopni daljinski upravljački krug

Gornji sklop ilustrira kako izraditi Arduino IR daljinski odašiljač.

Tri otpornika od 10 K povučeni su prema dolje, koji sprječavaju slučajno aktiviranje daljinskog upravljača zbog statičkog naboja, a otpornik za ograničavanje struje od 220 ohma koristi se za IR LED.

Program za daljinski odašiljač:

//---------Program developed by R.Girish--------//
#include
IRsend irsend
const int button1 = 4
const int button2 = 5
const int button3 = 6
void setup() {
pinMode(button1, INPUT)
pinMode(button2, INPUT)
pinMode(button3, INPUT)
}
void loop()
{
if (digitalRead(button1) == HIGH)
{
delay(50)
irsend.sendRC5(0x80C, 32)
delay(200)
}
if (digitalRead(button2) == HIGH)
{
delay(50)
irsend.sendRC5(0x821, 32)
delay(200)
}
if (digitalRead(button3) == HIGH)
{
delay(50)
irsend.sendRC5(0x820, 32)
delay(200)
}
}
//---------Program developed by R.Girish--------//

Arduino prijamnik:

Kao što je prikazano gore, krug IR Arduino prijemnika sastoji se od Senzor TSOP1738 nekoliko tranzistora, otpornici za ograničavanje struje za tranzistor, releji i diode za apsorpciju visokonaponskog šiljka iz zavojnica releja.

Shema sklopa sama po sebi objašnjava.

Program za Arduino prijamnik:

//-----------------Program developed by R.Girish-----------//
#include
int input = 11
int op1 = 8
int op2 = 9
int op3 = 10
int intitial1
int intitial2
int intitial3
IRrecv irrecv(input)
decode_results dec
#define output1 0x80C // code received from button A
#define output2 0x821 // code received from button B
#define output3 0x820 // code received from button C
void setup()
{
irrecv.enableIRIn()
pinMode(op1,1)
pinMode(op2,1)
pinMode(op3,1)
}
void loop() {
if (irrecv.decode(&dec)) {
unsigned int value = dec.value
switch(value) {
case output1:
if(intitial1 == 1) {
digitalWrite(op1, LOW)
intitial1 = 0
} else {
digitalWrite(op1, HIGH)
intitial1 = 1
}
break
case output2:
if(intitial2 == 1) {
digitalWrite(op2, LOW)
intitial2 = 0
} else {
digitalWrite(op2, HIGH)
intitial2 = 1
}
break
case output3:
if(intitial3 == 1) {
digitalWrite(op3, LOW)
intitial3 = 0
} else {
digitalWrite(op3, HIGH)
intitial3 = 1
}
break
}
irrecv.resume()
}
}
//--------------Program developed by R.Girish-----------//

Slijedeći gornja objašnjenja možete ostvariti tri kontrole, ako želite dodati više kontrola i releja, morate urediti kod i shemu sklopa.

Možete dodijeliti izlaz i ulaz za neiskorištene pinove u prijamniku i daljinskom upravljaču u programu i spojiti broj tranzistora i releja za odgovarajuće pinove u prijamniku i slično spojiti broj prekidača i povući otpornik u daljinskom upravljaču.

Možete koristiti slučajni heksadecimalni kod za dodjeljivanje većeg broja gumba.

Na primjer: 0xA235, 0xFFFF, 0xBA556 i tako dalje. A također dodajte istu heksadecimalnu vrijednost i kodu prijamnika. Na primjer: #define output4 0xA235, #define outout5 0xFFFF i tako dalje.

Izrada IR daljinskog upravljača s jedinstvenom frekvencijom

U gornjim odjeljcima saznali smo o jednostavnom IR daljinskom upravljaču koji će raditi s bilo kojim IR daljinskim predajnikom.
U sljedećem ćemo članku naučiti kako izraditi nadograđenu verziju gore navedenog koncepta za pouzdanu kontrolu kućanskih aparata pomoću arduino mikrokontrolera, koji će raditi s jedinstvenom frekvencijom i nikada neće raditi sa uobičajenom IR slušalicom.

IR daljinski upravljač otporan na prevara

Ovaj sklop može uključiti / isključiti vaše uređaje pomoću neiskorištenih gumba daljinskog upravljača TV-a ili bilo kojeg drugog neiskorištenog daljinskog upravljača koji vječno leži u vašem smeću.

Moto ovog projekta je pomoći osobama s tjelesnim poteškoćama i pomoći im da samostalno pristupe UKLJUČENJU / ISKLJUČENJU osnovnih kućanskih aparata, poput ventilatora ili svjetla.

Drugi je cilj omogućiti korisniku da kontrolira uređaje 'Kao šef', a da se ne mora pomicati sa svog postojećeg položaja.

Sklop koristi tradicionalnu IC komunikaciju između odašiljača i prijamnika.

Ovaj je krug postotni postotak pouzdan prema ostalim IR daljinskim upravljačima i ostalim IR izvorima te je manje podložan pogreškama.

Glavni problem kod ne-mikrokontrolera IR daljinski upravljački krug , koja se nalazi širom Interneta, jest da se on može UKLJUČITI / ISKLJUČITI bilo kojim daljinskim upravljačem koji se temelji na IC-u, a istovremeno može upravljati samo jednim uređajem i također osjetljiviji na pogreške.

Ovaj krug prevladava gore navedena pitanja, a mi to možemo kontrolirati nekoliko naprava na jednom daljinskom upravljaču i dodijelite tipke za određene uređaje.

Prije nastavka ovog projekta morate preuzeti datoteke knjižnice za arduino s ove veze i slijediti upute dane u nastavku: github.com/z3t0/Arduino-IRremote

Upute:

1) Kliknite gumb 'kloniraj ili preuzmi' na danoj poveznici i pritisnite 'Preuzmi ZIP'.

2) Izdvojite datoteku i premjestite mapu “IRremote” u mapu svoje biblioteke Arduino.

3) Izbrišite mapu “RobotIRremote” iz svoje arduino biblioteke. 'RobotIRremote' ima sličnu definiciju 'IRremote' biblioteke koja se sukobljava i ne može prenijeti kôd na Arduino, pa je brisanje / uklanjanje obavezno.

Dupliciranjem gornje upute vaš Arduino IDE softver spreman je za bilo koji / većinu projekata temeljenih na IR-u.

Dodijeli tipke za daljinski:

U našem daljinskom upravljaču svake tipke postoji jedinstveni heksadecimalni kôd koji se koristi za prepoznavanje tipke koja je pritisnuta za operaciju. Prije prijenosa konačnog koda u Arduino, morate pronaći koji su heksadecimalni kodovi vaših ključeva.

Da biste to učinili, napravite sljedeći krug u pločici i slijedite upute.

1) Otvorite Arduino IDE i prenesite primjer koda 'IRrecv Demo'

2) Otvorite serijski monitor i pritisnite tipku na daljinskom upravljaču koju želite koristiti.

Vidjet ćete kako se pojavljuje heksadecimalni kôd čim pritisnete tipku. To je heksadecimalni kôd za taj određeni ključ.

3) Učinite isto za ostale dvije tipke (u ovom su projektu 3 tipke za upravljanje 3 uređaja)

· Koristit ćemo ove heksadecimalne kodove u glavnom programu i prenijeti ih na arduino.

Program:
//-----------------Program developed by R.Girish-----------//
#include
int input = 11
int op1 = 8
int op2 = 9
int op3 = 10
int intitial1
int intitial2
int intitial3
IRrecv irrecv(input)
decode_results dec
#define output1 0x111 // place your code received from button A
#define output2 0x112 // place your code received from button B
#define output3 0x113 // place your code received from button C
void setup()
{
irrecv.enableIRIn()
pinMode(op1,1)
pinMode(op2,1)
pinMode(op3,1)
}
void loop() {
if (irrecv.decode(&dec)) {
unsigned int value = dec.value
switch(value) {
case output1:
if(intitial1 == 1) {
digitalWrite(op1, LOW)
intitial1 = 0
} else {
digitalWrite(op1, HIGH)
intitial1 = 1
}
break
case output2:
if(intitial2 == 1) {
digitalWrite(op2, LOW)
intitial2 = 0
} else {
digitalWrite(op2, HIGH)
intitial2 = 1
}
break
case output3:
if(intitial3 == 1) {
digitalWrite(op3, LOW)
intitial3 = 0
} else {
digitalWrite(op3, HIGH)
intitial3 = 1
}
break
}
irrecv.resume()
}
}
//--------------Program developed by R.Girish-----------//

BILJEŠKA:

U programu:

#define output1 0x111 // smjestite kôd primljen s gumba A

#define output2 0x111 // smjestite kôd primljen s gumba B

#define output3 0x111 // smjestite kôd primljen s gumba C

· Postavite svoja 3 jedinstvena koda s daljinskog upravljača na ovo mjesto 111, 112 i 113 i prenesite kôd. Heksadecimalni kodovi bit će od 0 do 9 i A do F, na primjer: 20156, 26FE789, FFFFFF.

· Postavite kod s '0x' (nula x).

Kružni dijagram:

· Pritiskom na tipku relej se isključuje i ponovnim pritiskom isključuje relej.




Prethodno: Prirodno sredstvo protiv komaraca pomoću otpornika visokog vata Sljedeće: Sklop skenera za duboko tlo metala - zemaljski skener