Arduino IR fjernkontrollkrets

Prøv Instrumentet Vårt For Å Eliminere Problemer





I dette innlegget skal vi konstruere en tilpassbar Arduino-basert IR (infrarød) basert trådløs fjernkontrollbryter, som består av IR-fjernkontroll og en mottaker, du kan endre i henhold til dine behov. I den senere delen av artikkelen lærer vi om en oppgradert idiotsikker versjon av en IR-fjernkontroll som bare vil svare på en unikt tildelt frekvens.

Hvis du er over nybegynnernivå, kan du enkelt oppnå det. Den foreslåtte kretsen illustrert her har bare tre kontroller på fjernkontrollen og 3 reléer på mottakerenden. Du kan endre koden og kretsskjemaet for å oppfylle dine behov.



Du trenger to Arduino-kort, som fungerer som eksterne og en annen fungerer som mottaker. Jeg vil anbefale Arduino pro mini for dette prosjektet, siden størrelsene på dem er ganske små og den totale størrelsen på fjernkontrollen kan trekkes unna.

Du kan bruke 3,3V basert Arduino pro mini for fjernkontroll, slik at du kan få strøm med to knappeceller eller to AA-batterier i henhold til dine behov.



IR-senderkretsen har tre trykk-på-knapper og en IR-LED for å sende kommandoer til mottakeren. Hver knapp er programmert med unik heksadesimal kode, den samme heksadesimal koden er også programmert på mottakersiden.

Når en knapp trykkes ned, sender IR-lampen ut den heksadesimale koden til mottakeren, vil mottakeren gjenkjenne hvilken av knappene som trykkes, og den slår det tilsvarende reléet PÅ / AV.

Den foreslåtte fjernkontrollen bruker RC5-protokollen for å kommunisere med mottakeren. Du kan endre alt ved å endre koden.

Hvis du bare er nybegynner i Arduino, kan du fortsatt oppnå det, bare følg diagrammet og last opp koden uten å endre.

Kretsen og programmet:

Arduino ekstern sender:

Foolproof IR fjernkontrollkrets

Ovennevnte krets illustrerer hvordan du bygger Arduino IR-fjernkontrollsender.

De tre 10K-motstandene er nedtrekkbare motstander, som forhindrer utilsiktet utløsing av fjernkontrollen på grunn av statisk ladning, og en 220 ohm strømbegrensende motstand brukes til IR LED.

Program for 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-mottaker:

IR Arduino-mottakerkretsen som vist ovenfor består av TSOP1738 sensor få transistorer, strømbegrensende motstander for transistor, reléer og dioder for å absorbere høyspenningsspiss fra reléspoler.

Kretsskjemaet er selvforklarende.

Program for Arduino-mottaker:

//-----------------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 å følge forklaringene ovenfor kan du oppnå tre kontroller. Hvis du vil legge til flere kontroller og relé, må du redigere koden og kretsskjemaet.

Du kan tilordne utgang og inngang for ubrukte pinner i mottakeren og fjernkontrollen i programmet og koble til antall transistor og relé for de respektive pinnene i mottakeren og på samme måte koble til antall brytere og trekk motstanden i fjernkontrollen.

Du kan bruke tilfeldig heksadesimal kode for å tilordne flere knapper.

For eksempel: 0xA235, 0xFFFF, 0xBA556 og så videre. Og legg også til den samme heksadesimale verdien i mottakerkoden også. For eksempel: #define output4 0xA235, #define outout5 0xFFFF og så videre.

Å lage en IR-fjernkontroll med unik frekvens

I avsnittene ovenfor lærte vi om en enkel IR-fjernkontroll som vil fungere med hvilken som helst IR-fjernsender.
I den følgende artikkelen vil vi lære hvordan du lager en oppgradert versjon av konseptet ovenfor for en idiotsikker kontroll av husholdningsapparater ved hjelp av arduino mikrokontroller, som fungerer med en unik frekvens og aldri fungerer med vanlig IR-håndsett.

Foolproof IR-fjernkontroll

Denne kretsen kan slå på / av gadgetene dine ved hjelp av TV-fjernkontrollens ubrukte knapper eller annen ubrukt fjernkontroll som kan ligge i søppelboksen din i årevis.

Mottoet for dette prosjektet er å hjelpe fysisk utfordrede personer, og hjelpe dem med å få tilgang til PÅ / AV-bryteren av de grunnleggende husholdningsapparater som vifter eller lys uavhengig.

Det andre målet er å gjøre det mulig for brukeren å kontrollere gadgetene 'Som en sjef' uten å måtte flytte fra sin eksisterende stilling.

Kretsen bruker tradisjonell IR-basert kommunikasjon mellom sender og mottaker.

Denne kretsen er prosent prosent idiotsikker mot andre IR-fjernkontroller og andre IR-kilder og mindre utsatt for feil.

Det største problemet med ikke-mikrokontroller basert IR fjernkontrollkrets , som finnes på internett, er at den kan slå PÅ / AV med en hvilken som helst IR-basert fjernkontroll og kan bare kontrollere en enhet på et øyeblikk og også mer utsatt for feil.

Denne kretsen overvinner ovennevnte problemer, og vi kan kontrollere flere dingser på en fjernkontroll og tilordne nøkler til bestemte dingser.

Før du fortsetter dette prosjektet, må du laste ned biblioteksfilene for arduino fra denne lenken og følge instruksjonene nedenfor: github.com/z3t0/Arduino-IRremote

Bruksanvisning:

1) Klikk på 'klone eller laste ned' -knappen fra den gitte lenken og trykk 'Last ned ZIP'.

2) Pakk ut filen og flytt 'IRremote' -mappen til biblioteksmappen din på Arduino.

3) Slett “RobotIRremote” -mappen fra arduino-biblioteket. 'RobotIRremote' har lignende definisjon av 'IRremote' -bibliotek som kolliderer og ikke klarer å laste opp koden til Arduino, så det er obligatorisk å slette / fjerne det.

Ved å duplisere instruksjonene ovenfor er Arduino IDE-programvaren klar for alle / de fleste IR-baserte prosjekter.

Tildel nøkler for fjernkontroll:

I vår TV-fjernkontroll har hver nøkkel unik heksadesimal kode, som brukes til å gjenkjenne hvilken tast som trykkes for en operasjon. Før du laster opp den endelige koden til Arduino, må du finne ut hvilke heksadesimale koder for nøklene dine er.

For å gjøre dette konstruer du følgende krets i brødbrett og følger instruksjonene.

1) Åpne Arduino IDE og last opp eksempelkode “IRrecv Demo”

2) Åpne seriell skjerm og trykk på tasten på fjernkontrollen du vil bruke.

Du vil se heksadesimal kode dukke opp så snart du trykker på tasten. Det er den heksadesimale koden for den aktuelle nøkkelen.

3) Gjør det samme for andre to taster (3 taster er gitt i dette prosjektet for å kontrollere 3 enheter)

· Vi skal bruke disse heksadesimale kodene i hovedprogrammet og laste dem opp 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-----------//

MERK:

I programmet:

#define output1 0x111 // plasser koden din mottatt fra knapp A.

#define output2 0x111 // plasser koden din mottatt fra knapp B

#define output3 0x111 // plasser koden din mottatt fra knapp C

· Plasser de 3 unike kodene dine fra fjernkontrollen på dette stedet 111, 112 og 113, og last opp koden. Heksadesimale koder vil være fra 0 til 9 og A til F, for eksempel: 20156, 26FE789, FFFFFF.

· Plasser koden med “0x” (null x).

Kretsskjema:

· Ved å trykke på tasten slås reléet PÅ og ved å trykke på nytt vil det slå av reléet.




Forrige: Naturlig myggmiddel med høy motstand Neste: Deep Soil Metal Detector Circuit - Ground Scanner