Arduino IR fjernbetjeningskreds

Prøv Vores Instrument Til At Fjerne Problemer





I dette indlæg skal vi konstruere en tilpassbar Arduino-baseret IR (infrarød) baseret trådløs fjernbetjeningskontakt, der består af IR-fjernbetjening og en modtager, du kan ændre efter dine behov. I den senere del af artiklen lærer vi om en opgraderet idiotsikker version af en IR-fjernbetjening, som kun reagerer på en entydigt tildelt frekvens.

Hvis du er over begynderniveau, kan du nemt nå det. Det foreslåede kredsløb illustreret her har bare tre kontroller på fjernbetjeningen og 3 relæer på modtagerenden. Du kan ændre koden og kredsløbsdiagrammet for at opfylde dine behov.



Du skal bruge to Arduino-kort, der fungerer som fjernbetjening og en anden fungerer som modtager. Jeg vil anbefale Arduino pro mini til dette projekt, da størrelserne på dem er ret små, og fjernbetjeningens samlede størrelse kan undgås.

Du kan bruge 3.3V-baseret Arduino pro mini til fjernbetjening, så du kan få strøm med to knapceller eller to AA-batterier i henhold til dine behov.



IR-transmitterkredsløbet har 3 push-on-knapper og en IR-LED til at sende kommandoer til modtageren. Hver knap er programmeret med unik hexadecimal kode, den samme hexadecimale kode er også programmeret på modtagersiden.

Når der trykkes på en knap, sender IR-lysdioden den hexadecimale kode til modtageren, vil modtageren genkende, hvilken knap der trykkes på, og den tænder / slukker for det tilsvarende relæ.

Den foreslåede fjernbetjening bruger RC5-protokol til kommunikation med modtageren. Du kan ændre alt ved at ændre koden.

Hvis du lige er nybegynder i Arduino, kan du stadig opnå det, bare følg diagrammet og upload koden uden at ændre.

Kredsløbet og programmet:

Arduino fjernbetjening:

Foolproof IR fjernbetjeningskreds

Ovenstående kredsløb illustrerer, hvordan man bygger Arduino IR-fjernsenderen.

De tre 10K-modstande er pull-down-modstande, som forhindrer utilsigtet udløsning af fjernbetjeningen på grund af statisk opladning, og der anvendes en 220 ohm strømbegrænsende modstand til IR-LED.

Program til fjernsender:

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

IR Arduino modtager kredsløb som vist ovenfor består af TSOP1738 sensor få transistorer, strømbegrænsende modstande til transistor, relæer og dioder til at absorbere højspændingsspids fra relæspoler.

Kredsløbsdiagrammet er selvforklarende.

Program til Arduino-modtager:

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

Ved at følge ovenstående forklaringer kan du udføre tre kontroller, hvis du vil tilføje flere kontroller og relæ, skal du redigere koden og kredsløbsdiagrammet.

Du kan tildele output og input til ubrugte ben i modtageren og fjernbetjeningen i programmet og forbinde antallet af transistor og relæ til de respektive ben i modtageren og på lignende måde tilslutte antallet af kontakter og trække modstanden ned i fjernbetjeningen.

Du kan bruge tilfældig hexadecimal kode til at tildele flere antal knapper.

For eksempel: 0xA235, 0xFFFF, 0xBA556 og så videre. Og tilføj også den samme hexadecimale værdi i modtagerkoden. For eksempel: #define output4 0xA235, #define outout5 0xFFFF og så videre.

Oprettelse af en IR-fjernbetjening med unik frekvens

I ovenstående afsnit lærte vi om en simpel IR-fjernbetjening, der fungerer sammen med enhver IR-fjernsender.
I den følgende artikel lærer vi, hvordan man laver en opgraderet version af ovenstående koncept til en idiotsikker kontrol af husholdningsapparater ved hjælp af arduino-mikrocontroller, som fungerer med en unik frekvens og aldrig fungerer med almindeligt IR-håndsæt.

Foolproof IR-fjernbetjening

Dette kredsløb kan tænde / slukke for dine gadgets ved hjælp af tv-fjernbetjeningens ubrugte knapper eller enhver anden ubrugt fjernbetjening, der muligvis ligger i din skraldespand i årevis.

Mottoet for dette projekt er at hjælpe fysisk udfordrede personer og hjælpe dem med at få adgang til ON / OFF-skift af de grundlæggende husholdningsapparater såsom blæsere eller lys uafhængigt af hinanden.

Det andet mål er at sætte brugeren i stand til at kontrollere gadgets 'Som en chef' uden at skulle flytte fra sin nuværende position.

Kredsløbet bruger traditionel IR-baseret kommunikation mellem sender og modtager.

Dette kredsløb er procent procent idiotsikker for andre IR-fjernbetjeninger og andre IR-kilder og mindre modtagelige for fejl.

Det største problem med ikke-mikrocontrollerbaseret IR fjernbetjeningskredsløb , som findes på Internettet, er, at den kunne tænde / slukke med enhver IR-baseret fjernbetjening og kun kan styre en enhed på et øjeblik og også mere modtagelig for fejl.

Dette kredsløb overvinder ovennævnte specifikke problemer, og det kan vi kontrollere flere gadgets på en fjernbetjening og tildel nøgler til bestemte gadgets.

Før du fortsætter med dette projekt, skal du downloade biblioteksfilerne til arduino fra dette link og følge instruktionerne nedenfor: github.com/z3t0/Arduino-IRremote

Instruktioner:

1) Klik på knappen 'klon eller download' fra det givne link og tryk på 'Download ZIP'.

2) Uddrag filen, og flyt mappen 'IRremote' til din biblioteksmappe på Arduino.

3) Slet 'RobotIRremote' -mappen fra dit arduino-bibliotek. 'RobotIRremote' har en lignende definition af 'IRremote' -biblioteket, der kolliderer og ikke er i stand til at uploade koden til Arduino, så sletning / fjernelse er obligatorisk.

Ved at duplikere ovenstående instruktion er din Arduino IDE-software klar til alle de fleste IR-baserede projekter.

Tildel nøgler til fjernbetjening:

I vores tv-fjernbetjening har hver tast en unik hexadecimal kode, som bruges til at genkende, hvilken tast der trykkes på for en operation. Før du uploader den endelige kode til Arduino, skal du finde ud af, hvad de hexadecimale koder for dine nøgler er.

For at gøre dette skal du konstruere følgende kredsløb i breadboard og følge instruktionerne.

1) Åbn Arduino IDE og upload eksempelkode “IRrecv Demo”

2) Åbn den serielle skærm, og tryk på den tast på fjernbetjeningen, du vil bruge.

Du vil se hexadecimal kode dukke op, så snart du trykker på tasten. Det er den hexadecimale kode for den pågældende nøgle.

3) Gør det samme for andre to taster (3 taster er angivet i dette projekt til styring af 3 enheder)

· Vi skal bruge disse hexadecimale koder i hovedprogrammet og uploade til 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-----------//

BEMÆRK:

I programmet:

#define output1 0x111 // placer din kode modtaget fra knap A

#define output2 0x111 // placer din kode modtaget fra knap B

#define output3 0x111 // placer din kode modtaget fra knap C

· Placer dine 3 unikke koder fra din fjernbetjening på dette sted i 111, 112 og 113, og upload koden. Hexadecimale koder vil være fra 0 til 9 og A til F, for eksempel: 20156, 26FE789, FFFFFF.

· Anbring din kode med '0x' (nul x).

Kredsløbsdiagram:

· Ved at trykke på tasten slås relæet TIL, og ved at trykke igen slukker det relæet.




Tidligere: Naturligt myggeafvisende middel med høj wattmodstand Næste: Deep Soil Metal Detector Circuit - Ground Scanner