Arduino IR Remote Control Circuit

Proveu El Nostre Instrument Per Eliminar Problemes





En aquest post anem a construir un commutador de control remot sense fils basat en IR (infrarojos) basat en Arduino, que consisteix en un comandament a distància IR i un receptor, que podeu modificar segons les vostres necessitats. A la part posterior de l’article coneixem una versió actualitzada a prova d’error d’un control remot IR que només respondrà a una freqüència assignada de manera única.

Si esteu per sobre del nivell per a principiants, podeu aconseguir-ho amb facilitat. El circuit proposat il·lustrat aquí només té tres controls a distància i 3 relés a l’extrem del receptor. Podeu modificar el codi i el diagrama de circuits per satisfer les vostres necessitats.



Necessitareu dues plaques Arduino, que funcionen de forma remota i una altra de receptora. Recomanaria Arduino pro mini per a aquest projecte, ja que les mides són bastant petites i es pot evitar la mida general del comandament a distància.

Podeu utilitzar Arduino pro mini basat en 3,3 V per a control remot, de manera que pugueu alimentar-vos amb dues piles de botó o dues piles de mida AA, segons les vostres necessitats.



El circuit del transmissor IR té 3 botons d'encès i un LED IR per enviar ordres al receptor. Cada botó s'ha programat amb un codi hexadecimal únic, el mateix codi hexadecimal també es programa al costat del receptor.

Quan es prem un botó, el LED IR envia el codi hexadecimal al receptor, el receptor reconeixerà quin dels botons es prem i activarà / desactivarà el relé corresponent.

El comandament a distància proposat utilitza el protocol RC5 per comunicar-se amb el receptor. Podeu canviar-ho tot modificant el codi.

Si només esteu principiant a Arduino, encara podeu fer-ho seguint el diagrama i carregant el codi sense modificar-lo.

El circuit i el programa:

Transmissor remot Arduino:

Circuit de control remot infal·lible

El circuit anterior il·lustra com construir el transmissor remot IR Arduino.

Les tres resistències de 10K són resistències abatibles, que impedeixen l’activació accidental del comandament a causa de la càrrega estàtica i s’utilitza una resistència de limitació de corrent de 220ohm per al LED IR.

Programa per a transmissors remots:

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

Receptor Arduino:

El circuit del receptor IR Arduino, tal com es mostra més amunt, està format per Sensor TSOP1738 pocs transistors, resistències de limitació de corrent per a transistors, relés i díodes per absorbir pics d'alta tensió de les bobines de relés.

El diagrama del circuit s’explica per si mateix.

Programa per al receptor Arduino:

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

Seguint les explicacions anteriors, podeu realitzar tres controls; si voleu afegir més controls i retransmetre, heu d’editar el codi i el diagrama de circuits.

Podeu assignar sortida i entrada per als pins no utilitzats del receptor i del control remot al programa i connectar el nombre de transistors i relés per als pins respectius del receptor i connectar de manera similar el nombre d’interruptors i la resistència de control remot.

Podeu utilitzar codi hexadecimal aleatori per assignar més nombre de botons.

Per exemple: 0xA235, 0xFFFF, 0xBA556, etc. I també afegiu el mateix valor hexadecimal al codi del receptor. Per exemple: #define output4 0xA235, #define outout5 0xFFFF, etc.

Fer un control remot IR amb freqüència única

A les seccions anteriors hem conegut un senzill control remot IR que funcionarà amb qualsevol transmissor remot IR.
En el següent article aprendrem com fer una versió actualitzada del concepte anterior per a un control infal·lible dels electrodomèstics mitjançant un microcontrolador arduino, que funcionarà amb una freqüència única i no funcionarà mai amb un telèfon IR comú.

Control remot infal·lible

Aquest circuit pot activar / desactivar els vostres aparells mitjançant els botons no utilitzats del comandament a distància de TV o qualsevol altre comandament a distància que pugui estar a la vostra indústria brossa durant edats.

El lema d’aquest projecte és ajudar les persones amb problemes físics i ajudar-les a accedir independentment a la commutació ON / OFF dels electrodomèstics bàsics, com ara ventiladors o llums.

El segon objectiu és permetre a l'usuari controlar els gadgets 'Com un cap' sense haver de moure's de la seva posició actual.

El circuit utilitza la comunicació tradicional basada en IR entre transmissor i receptor.

Aquest circuit és cent per cent infalible per a altres comandaments a distància IR i altres fonts IR i és menys susceptible a errors.

El principal problema amb els no basats en microcontroladors IR remote control circuit , que es troba a tot Internet, és que podria activar-se / desactivar-se amb qualsevol control remot basat en IR i només pot controlar un dispositiu a l’instant i també més susceptible a errors.

Aquest circuit supera els problemes especificats per sobre, i podem controleu diversos aparells en un comandament a distància i assigneu claus per a gadgets específics.

Abans de continuar aquest projecte, heu de descarregar els fitxers de la biblioteca per a arduino en aquest enllaç i seguir les instruccions que es donen a continuació: github.com/z3t0/Arduino-IRremote

Instruccions:

1) Feu clic al botó 'clona o descarrega' de l'enllaç indicat i premeu 'Baixa ZIP'.

2) Extraieu el fitxer i moveu la carpeta 'IRremote' a la carpeta de la biblioteca d'Arduino.

3) Suprimiu la carpeta 'RobotIRremote' de la biblioteca arduino. 'RobotIRremote' té una definició similar de la biblioteca 'IRremote' que xoca i no pot carregar el codi a Arduino, de manera que la supressió / eliminació és obligatòria.

En duplicar les instruccions anteriors, el vostre programari IDE Arduino està a punt per a qualsevol / la majoria dels projectes basats en IR.

Assigneu claus per a control remot:

Al comandament a distància del nostre televisor, cada tecla té un codi hexadecimal únic, que s’utilitza per reconèixer quina tecla es prem durant una operació. Abans de penjar el codi final a Arduino, heu de trobar quins són els codis hexadecimals de les vostres claus.

Per fer-ho, construïu el següent circuit a la taula i seguiu les instruccions.

1) Obriu Arduino IDE i pengeu el codi d'exemple 'IRrecv Demo'

2) Obriu el monitor sèrie i premeu la tecla del comandament a distància que voleu utilitzar.

Veuràs que apareix el codi hexadecimal tan bon punt premeu la tecla. Aquest és el codi hexadecimal d’aquesta clau en concret.

3) Feu el mateix amb altres dues tecles (en aquest projecte es donen 3 tecles per controlar 3 dispositius)

· Utilitzarem aquests codis hexadecimals al programa principal i els penjarem a arduino.

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

NOTA:

Al programa:

#define output1 0x111 // col·loca el codi rebut des del botó A

#define output2 0x111 // col·loca el teu codi rebut des del botó B

#define output3 0x111 // col·loca el codi rebut des del botó C

· Col·loqueu els vostres 3 codis únics des del control remot en aquest lloc 111, 112 i 113 i pengeu el codi. Els codis hexadecimals seran de 0 a 9 i de A a F, per exemple: 20156, 26FE789, FFFFFF.

· Col·loqueu el codi amb '0x' (zero x).

Esquema de connexions:

· Si premeu la tecla, el relé s'encén i, si premeu de nou, s'apagarà el relé.




Anterior: Repel·lent de mosquits natural amb resistència d’alts vats Següent: Circuit del detector de metalls del sòl profund: escàner de terra