IR daljinsko krmiljenje Arduino

Preizkusite Naš Instrument Za Odpravo Težav





V tem prispevku bomo izdelali prilagodljivo IR (infrardeče) brezžično daljinsko krmiljenje na osnovi Arduino, ki je sestavljeno iz IR daljinskega upravljalnika in sprejemnika, ki ga lahko prilagodite glede na vaše potrebe. V kasnejšem delu članka izvemo o nadgrajeni neprekinjeni različici IR daljinskega upravljalnika, ki se bo odzival le na enolično dodeljeno frekvenco.

Če ste nad začetnikom, ga lahko dosežete z lahkoto. Predlagano vezje, prikazano tukaj, ima samo tri krmilne elemente na oddaljenem in 3 releje na koncu sprejemnika. Kodo in diagram vezja lahko spremenite tako, da ustreza vašim potrebam.



Potrebovali boste dve plošči Arduino, ki delujeta kot oddaljena, druga pa kot sprejemnik. Za ta projekt priporočam Arduino pro mini, saj so njihove velikosti precej majhne in bi se lahko celotna velikost daljinskega upravljalnika zmanjšala.

Za daljinski upravljalnik lahko uporabite Arduino pro mini s 3,3 V, tako da se lahko glede na vaše potrebe napajate z dvema gumbnima celicama ali dvema baterijama velikosti AA.



Vezje IR oddajnika ima 3 gumbe za vklop in IR LED za pošiljanje ukazov sprejemniku. Vsak gumb ima programirano z edinstveno šestnajstiško kodo, enaka šestnajstiška koda je programirana tudi na strani sprejemnika.

Ko pritisnete gumb, LED dioda pošlje šestnajstiško kodo sprejemniku, sprejemnik prepozna, kateri gumb je pritisnjen, in vklopi / izklopi ustrezni rele.

Predlagani daljinski upravljalnik za komunikacijo s sprejemnikom uporablja protokol RC5. S spreminjanjem kode lahko spremenite vse.

Če ste v Arduinu šele začetnik, ga lahko še vedno dosežete, samo sledite diagramu in naložite kodo brez spreminjanja.

Vezje in program:

Daljinski oddajnik Arduino:

Neumni IR daljinski upravljalnik

Zgornje vezje ponazarja, kako zgraditi daljinski oddajnik Arduino IR.

Trije 10K upori so upori navzdol, ki preprečujejo nenamerno sprožitev daljinskega upravljalnika zaradi statičnega naboja, za IR LED pa je uporabljen 220-ohm omejevalni upor.

Program za daljinski oddajnik:

//---------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 sprejemnik:

Kot je prikazano zgoraj, je vezje sprejemnika IR Arduino sestavljeno iz Senzor TSOP1738 malo tranzistorjev, tokovno omejujočih uporov za tranzistor, relejev in diod za absorpcijo visokonapetostnih konic iz relejskih tuljav.

Shema vezij je samoumevna.

Program za Arduino sprejemnik:

//-----------------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-----------//

Z upoštevanjem zgornjih razlag lahko dosežete tri krmilne elemente, če želite dodati več kontrolnih elementov in relejev, morate urediti kodo in diagram vezja.

V programu lahko dodelite izhod in vhod za neuporabljene nožice v sprejemniku in daljinskem upravljalniku ter priključite število tranzistorjev in relejev za ustrezne nožice v sprejemniku in podobno priključite število stikal in spustite upor v daljinskem upravljalniku.

Za dodelitev večjega števila gumbov lahko uporabite naključno šestnajstiško kodo.

Na primer: 0xA235, 0xFFFF, 0xBA556 itd. In dodajte isto heksadecimalno vrednost tudi v kodo sprejemnika. Na primer: #define output4 0xA235, #define outout5 0xFFFF itd.

Izdelava IR daljinskega upravljalnika z edinstveno frekvenco

V zgornjih razdelkih smo izvedeli o preprostem IR daljinskem upravljalniku, ki bo deloval s katerim koli IR daljinskim oddajnikom.
V naslednjem članku bomo izvedeli, kako narediti nadgrajeno različico zgornjega koncepta za neprekinjeno krmiljenje gospodinjskih aparatov z uporabo mikrokrmilnika arduino, ki bo deloval z edinstveno frekvenco in nikoli ne bo deloval s skupno IR slušalko.

Neumni IR daljinski upravljalnik

To vezje lahko vklopi / izklopi vaše pripomočke z neuporabljenimi gumbi na daljinskem upravljalniku televizorja ali katerim koli drugim neuporabljenim daljinskim upravljalnikom, ki morda že stoletja leži v vaši smeti.

Moto tega projekta je pomagati gibalno oviranim osebam in jim pomagati, da samostojno dostopajo do vklopa / izklopa osnovnih gospodinjskih aparatov, kot so ventilatorji ali luči.

Drugi cilj je omogočiti uporabniku nadzor nad pripomočki 'Kot šef', ne da bi se moral premakniti s svojega obstoječega položaja.

Vezje uporablja tradicionalno IR komunikacijo med oddajnikom in sprejemnikom.

To vezje je v cent odstotkih varno za druge IR daljince in druge IR vire in manj dovzetno za napake.

Glavna težava je ne-mikrokrmilnik IR daljinsko krmiljenje , ki ga najdemo po internetu, je, da se lahko vklopi / izklopi s katerim koli daljinskim upravljalnikom, ki temelji na IR, in lahko hkrati nadzoruje samo eno napravo in je tudi bolj dovzeten za napake.

To vezje premaga zgoraj določene težave in to lahko storimo nadzorujete več pripomočkov na enem daljinskem upravljalniku in dodelite tipke za določene pripomočke.

Pred nadaljevanjem tega projekta morate s te povezave prenesti datoteke knjižnice za arduino in slediti spodnjim navodilom: github.com/z3t0/Arduino-IRremote

Navodila:

1) Kliknite gumb 'Kloniraj ali naloži' na dani povezavi in ​​pritisnite 'Prenesi ZIP'.

2) Izvlecite datoteko in mapo »IRremote« premaknite v mapo knjižnice Arduino.

3) Izbrišite mapo »RobotIRremote« iz vaše arduino knjižnice. 'RobotIRremote' ima podobno definicijo knjižnice 'IRremote', ki se spopada in ne more naložiti kode v Arduino, zato je brisanje / odstranjevanje obvezno.

S podvajanjem zgornjih navodil je vaša programska oprema Arduino IDE pripravljena na kateri koli / večino IR projektov.

Dodelitev tipk za daljinsko upravljanje:

V našem daljinskem upravljalniku televizorja ima vsaka tipka edinstveno šestnajstiško kodo, s katero prepoznamo, katero tipko pritisnemo za neko operacijo. Pred nalaganjem končne kode v Arduino morate poiskati šestnajstiške kode za vaše ključe.

Če želite to narediti, sestavite naslednje vezje v plošči in sledite navodilom.

1) Odprite Arduino IDE in naložite primer kode »IRrecv Demo«

2) Odprite serijski monitor in pritisnite tipko na daljinskem upravljalniku, ki jo želite uporabiti.

Šestnajstiška koda se bo pojavila takoj, ko pritisnete tipko. To je šestnajstiška koda za ta ključ.

3) Naredite enako za druga dva ključa (v tem projektu so 3 tipke za nadzor 3 naprav)

· Te šestnajstiške kode bomo uporabili v glavnem programu in jih prenesli v 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-----------//

OPOMBA:

V programu:

#define output1 0x111 // postavite kodo, prejeto z gumba A

#define output2 0x111 // postavite kodo, prejeto z gumba B

#define output3 0x111 // postavite kodo, prejeto z gumba C

· Postavite svoje tri edinstvene kode z daljinskega upravljalnika na to mesto 111, 112 in 113 in naložite kodo. Šestnajstiške kode bodo od 0 do 9 in od A do F, na primer: 20156, 26FE789, FFFFFF.

· Vnesite kodo z '0x' (nič x).

Shema vezja:

· S pritiskom na tipko rele sproži in s ponovnim pritiskom izklopi rele.




Prejšnji: Naravni odganjalec komarjev z uporabo visoko vatnega upora Naprej: Vezje kovinskega detektorja globoke zemlje - optični bralnik