Arduino IR távirányító áramkör

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





Ebben a bejegyzésben egy testreszabható Arduino alapú IR (infravörös) alapú vezeték nélküli távvezérlő kapcsolót készítünk, amely infravörös távirányítóból és vevőből áll, amelyet igény szerint módosíthat. A cikk későbbi részében megismerhetünk egy IR távirányító továbbfejlesztett, bolondbiztos verzióját, amely csak egy egyedileg kijelölt frekvenciára reagál.

Ha a kezdő szint felett állsz, könnyedén meg tudod valósítani. Az itt bemutatott javasolt áramkörnek csak három vezérlője van a távoli és 3 relével a vevő végén. Az igényeinek megfelelően módosíthatja a kódot és a kapcsolási rajzot.



Szüksége lesz két Arduino táblára, amelyek távoli, másik pedig vevőként működnek. Az Arduino pro mini-t javasolnám ehhez a projekthez, mivel ezek mérete meglehetősen kicsi, és a távirányító teljes mérete megborzolható.

Használhatja a 3,3 V-os alapú Arduino pro mini távirányítót, így igényeinek megfelelően két gombelemes vagy két AA méretű elemet lehet táplálni.



Az infravörös adó áramkörében 3 nyomógomb és egy IR LED található, amely parancsokat küld a vevőnek. Minden gomb egyedi hexadecimális kóddal van programozva, ugyanaz a hexadecimális kód programozódik a vevő oldalán is.

Ha egy gombot lenyomnak, az IR LED a hexadecimális kódot küldi a vevőnek, a vevő felismeri, hogy melyik gombot nyomják meg, és a megfelelő relét BE / KI kapcsolja.

A javasolt távvezérlő RC5 protokollt használ a vevővel való kommunikációhoz. A kód módosításával mindent megváltoztathat.

Ha még csak kezdő vagy az Arduino-ban, akkor is meg tudja valósítani, csak kövesse az ábrát, és módosítás nélkül töltse fel a kódot.

Az áramkör és a program:

Arduino távadó:

Bolondálló IR távirányító áramkör

A fenti áramkör bemutatja, hogyan kell felépíteni az Arduino IR távadót.

A három 10K-os ellenállás lehúzható ellenállás, amely megakadályozza a távvezérlő véletlenszerű bekapcsolását a statikus töltés miatt, és az IR LED-ekhez 220 ohmos áramkorlátozó ellenállást alkalmaznak.

Távoli adó program:

//---------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 vevő:

Az IR Arduino vevő áramkör a fentiek szerint áll TSOP1738 érzékelő kevés tranzisztor, áramkorlátozó ellenállás a tranzisztorhoz, relék és diódák a nagyfeszültségű tüskék elnyeléséhez a relétekercsekből.

A kapcsolási rajz magától értetődő.

Program az Arduino vevőhöz:

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

A fenti magyarázatok követésével három vezérlőelemet hajthat végre, ha további vezérlőket és relét szeretne hozzáadni, szerkesztenie kell a kódot és az áramkört.

Kimenetet és bemenetet rendelhet a vevő és a távvezérlő nem használt csapjaihoz, és csatlakoztathatja a tranzisztor és a relé számát a vevő megfelelő csapjaihoz, és hasonlóképpen csatlakoztathatja a kapcsolók számát és lehúzhatja az ellenállást a távvezérlőben.

Véletlenszerű hexadecimális kódot használhat több gombszám hozzárendeléséhez.

Például: 0xA235, 0xFFFF, 0xBA556 és így tovább. És ugyanazt a hexadecimális értéket adja hozzá a vevő kódjához is. Például: #define output4 0xA235, #define outout5 0xFFFF és így tovább.

Infravörös távirányító készítése egyedi frekvenciával

A fenti szakaszokban megismerkedtünk egy egyszerű IR távirányítóval, amely bármely IR távirányítóval működik.
A következő cikkben megtudhatjuk, hogyan lehet a fenti koncepció továbbfejlesztett változatát elkészíteni a háztartási gépek bolondbiztos vezérléséhez az arduino mikrovezérlő segítségével, amely egyedülálló frekvenciával fog működni, és soha nem fog működni közös IR kézibeszélővel.

Bolondálló IR távirányító

Ez az áramkör be- és kikapcsolhatja a moduljait a TV távirányítójának használaton kívüli gombjaival, vagy bármely más használaton kívüli távirányítóval, amely életkorokig heverhet a szemétdobozban.

A projekt mottója, hogy segítséget nyújtson a mozgássérülteknek, és segítse őket abban, hogy önállóan hozzáférjenek az alapvető háztartási készülékek, például a ventilátorok vagy a lámpák ON / OFF kapcsolásához.

A második cél az, hogy lehetővé tegye a felhasználó számára, hogy úgy vezérelje a „Mint egy főnök” szerkentyűket, anélkül, hogy a jelenlegi pozíciójából el kellene mozdulnia.

Az áramkör a hagyományos IR-alapú kommunikációt használja az adó és a vevő között.

Ez az áramkör százalékosan bolondbiztos más IR távirányítókkal és más IR forrásokkal szemben, és kevésbé hajlamos a hibákra.

A nem mikrovezérlő alapú fő probléma IR távirányító áramkör , amely az interneten található, az az, hogy bármely IR-alapú távirányítóval be- és kikapcsolható, és csak egy eszközt képes egyszerre irányítani, és hajlamosabb a hibákra is.

Ez az áramkör leküzdi a fenti problémákat, és mi megtehetjük több eszköz szerkesztése egy távvezérlőn és kulcsokat rendelhet az adott modulokhoz.

A projekt folytatása előtt le kell töltenie az arduino könyvtárfájljait ebből a linkből, és kövesse az alábbi utasításokat: github.com/z3t0/Arduino-IRremote

Utasítás:

1) Kattintson a 'klónozás vagy letöltés' gombra az adott hivatkozásból, majd nyomja meg a 'ZIP letöltése' gombot.

2) Bontsa ki a fájlt, és helyezze az „IRremote” mappát az Arduino könyvtár mappájába.

3) Törölje a „RobotIRremote” mappát az arduino könyvtárból. A „RobotIRremote” hasonlóan definiálja az „IRremote” könyvtárat, amely ütközik és nem képes feltölteni a kódot az Arduino-ba, így a törlés / eltávolítás kötelező.

A fenti utasítás lemásolásával az Arduino IDE szoftver készen áll az IR alapú projektek bármelyikére / a legtöbbre.

Kulcsok hozzárendelése a távirányítóhoz:

A TV távirányítónkban minden gomb egyedi hexadecimális kóddal rendelkezik, amely felismeri, hogy melyik gombot nyomják meg egy művelethez. Mielőtt feltöltené a végső kódot az Arduino-ba, meg kell találnia, hogy mi a kulcsok hexadecimális kódja.

Ehhez állítsa össze a következő áramkört a kenyérlapon, és kövesse az utasításokat.

1) Nyissa meg az Arduino IDE alkalmazást, és töltse fel az „IRrecv Demo” példakódot

2) Nyissa meg a soros monitort és nyomja meg a használni kívánt távvezérlő gombját.

Amint megnyomja a gombot, a hexadecimális kód jelenik meg. Ez a hexadecimális kód az adott kulcshoz.

3) Ugyanezt tegye a másik két kulcs esetében is (ebben a projektben 3 kulcsot adunk meg 3 eszköz vezérléséhez)

· Ezeket a hexadecimális kódokat fogjuk használni a fő programban, és feltölteni az arduino-ra.

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

JEGYZET:

A programban:

#define output1 0x111 // helyezze el az A gombból kapott kódot

#define output2 0x111 // helyezze el a B gombból kapott kódját

#define output3 0x111 // helyezze el a C gombból kapott kódot

· Helyezze el a távvezérlő 3 egyedi kódját a 111, 112 és 113 e helyre, és töltse fel a kódot. A hexadecimális kódok 0 és 9, valamint A és F között lesznek, például: 20156, 26FE789, FFFFFF.

· Helyezze be a kódot a „0x” (nulla x) karakterrel.

Kördiagramm:

· A gomb megnyomásával bekapcsolja a relét, és ismételt megnyomásával kikapcsolja a relét.




Előző: Természetes szúnyogriasztó nagy teljesítményű ellenállás használatával Következő: Mély talajfémdetektor áramkör - földolvasó