Arduino IR Remote Control Circuit

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Sa post na ito magtatayo kami ng isang napapasadyang Arduino based IR (infrared) batay sa wireless remote control switch, na binubuo ng IR remote at isang receiver, maaari mong baguhin ayon sa iyong mga pangangailangan. Sa susunod na bahagi ng artikulo nalaman namin ang tungkol sa isang na-upgrade na walang palya bersyon ng isang IR remote control na tutugon lamang sa isang natatanging itinalagang dalas.

Kung nasa itaas ka ng antas ng nagsisimula maaari mo itong maisagawa nang madali. Ang ipinanukalang circuit na nakalarawan dito ay mayroon lamang tatlong mga kontrol sa remote at 3 relay sa pagtatapos ng tatanggap. Maaari mong baguhin ang code at circuit diagram upang matupad ang iyong mga pangangailangan.



Kakailanganin mo ang dalawang Arduino board, na kumikilos bilang malayo at isa pang kilos bilang tatanggap. Inirerekumenda ko ang Arduino pro mini para sa proyektong ito, dahil ang laki ng mga ito ay medyo maliit at ang pangkalahatang laki ng remote ay maaaring shirked.

Maaari kang gumamit ng 3.3V batay sa Arduino pro mini para sa remote, upang mapagana ka ng dalawang pindutan ng cell o dalawang mga laki ng baterya ng laki ng AA, ayon sa iyong mga pangangailangan.



Ang IR transmitter circuit ay may 3 push to on na mga pindutan at isang IR LED para sa pagpapadala ng mga utos sa tatanggap. Ang bawat pindutan ay na-program na may natatanging hexadecimal code, ang parehong hexadecimal code ay na-program din sa panig ng tatanggap.

Kapag ang isang pindutan ay nalulumbay ang IR LED ay nagpapadala ng hexadecimal code sa tatanggap, makikilala ng tatanggap kung alin sa pindutan ang pinindot at binabago nito ang kaukulang relay ON / OFF.

Ang iminungkahing remote ay gumagamit ng RC5 protocol para sa pakikipag-usap sa tatanggap na maaari mong baguhin ang lahat sa pamamagitan ng pagbabago ng code.

Kung nagsisimula ka lamang sa Arduino, maaari mo pa ring magawa itong sundin lamang ang diagram at i-upload ang code nang hindi binabago.

Ang circuit at programa:

Remote Transmitter ng Arduino:

Foolproof IR Remote Control Circuit

Inilalarawan ng circuit sa itaas kung paano bumuo ng Arduino IR remote transmitter.

Ang tatlong mga resistors ng 10K ay hinuhugot ang mga resistors, na pumipigil sa hindi sinasadyang pag-trigger ng remote dahil sa static na singil at isang kasalukuyang 220ohm na nililimitahan ang risistor ay ginagamit para sa IR LED.

Programa para sa Remote Transmitter:

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

Tagatanggap ng Arduino:

Ang IR Arduino receiver circuit tulad ng ipinakita sa itaas ay binubuo ng Sensor ng TSOP1738 ilang mga transistor, kasalukuyang naglilimita ng mga resistors para sa transistor, relay at diode para sa pagsipsip ng mataas na boltahe na spike mula sa mga relay coil.

Ang circuit diagram ay nagpapaliwanag sa sarili.

Program para sa tatanggap ng 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-----------//

Sa pamamagitan ng pagsunod sa mga paliwanag sa itaas maaari mong makamit ang tatlong mga kontrol, kung nais mong magdagdag ng higit pang mga kontrol at relay, kailangan mong i-edit ang code at circuit diagram.

Maaari kang magtalaga ng output at input para sa mga hindi nagamit na mga pin sa receiver at remote sa programa at ikonekta ang bilang ng transistor at relay para sa kani-kanilang mga pin sa receiver at katulad na ikonekta ang bilang ng mga switch at hilahin ang risistor sa malayuang lugar.

Maaari mong gamitin ang random na hexadecimal code para sa pagtatalaga ng higit pang bilang ng mga pindutan.

Halimbawa: 0xA235, 0xFFFF, 0xBA556 at iba pa. At idagdag din ang parehong halaga ng hexadecimal sa code ng tatanggap din. Halimbawa: #define output4 0xA235, #define outout5 0xFFFF at iba pa.

Ang paggawa ng isang IR Remote Control na may Natatanging Frequency

Sa mga seksyon sa itaas natutunan namin ang tungkol sa isang simpleng IR remote control na gagana sa anumang IR remote transmitter.
Sa susunod na artikulo matututunan natin kung paano gumawa ng isang na-upgrade na bersyon ng konsepto sa itaas para sa isang walang palya na kontrol ng mga gamit sa bahay gamit ang arduino microcontroller, na gagana ng isang natatanging dalas at hindi kailanman gumana sa karaniwang IR handset.

Foolproof IR Remote Control

Maaaring i-on / i-off ng circuit na ito ang iyong mga gadget gamit ang mga hindi ginagamit na pindutan ng TV remote o anumang iba pang hindi ginagamit na remote na maaaring nakahiga sa iyong junk box sa loob ng maraming edad.

Ang motto ng proyektong ito ay upang matulungan ang mga taong hinahamon ng pisikal, at tulungan silang ma-access ang ON / OFF na paglipat ng mga pangunahing kagamitan sa bahay tulad ng mga tagahanga o ilaw nang nakapag-iisa.

Ang pangalawang layunin ay paganahin ang gumagamit na kontrolin ang mga gadget na 'Tulad ng isang boss' nang hindi kinakailangang lumipat mula sa kanyang mayroon nang posisyon.

Gumagamit ang circuit ng tradisyonal na komunikasyon na nakabatay sa IR sa pagitan ng transmitter at receiver.

Ang circuit na ito ay sentimo porsyento na walang palya sa iba pang mga IR remote, at iba pang mga mapagkukunan ng IR at mas madaling kapitan ng mga error.

Ang pangunahing problema sa batay sa di-microcontroller IR remote control circuit , na matatagpuan sa paligid ng internet, ay maaari itong i-ON / OFF sa anumang remote na nakabatay sa IR at makokontrol lamang ang isang aparato sa isang iglap at mas madaling kapitan ng mga error.

Natalo ng circuit na ito ang mga tinukoy na isyu sa itaas, at makakaya namin kontrolin ang maraming mga gadget sa isang remote at magtalaga ng mga susi para sa mga tukoy na gadget.

Bago magpatuloy sa proyektong ito kailangan mong i-download ang mga file ng silid-aklatan para sa form na arduino ang link na ito at sundin ang tagubiling ibinigay sa ibaba: github.com/z3t0/Arduino-IRremote

Mga tagubilin:

1) I-click ang pindutang 'clone or download' form na ibinigay ng na-link at pindutin ang 'I-download ang ZIP'.

2) I-extract ang file at ilipat ang folder na 'IRremote' sa iyong folder ng library ng Arduino.

3) Tanggalin ang folder na 'RobotIRremote' mula sa iyong arduino library. Ang 'RobotIRremote' ay may katulad na kahulugan ng library na 'IRremote' na nag-aaway at hindi ma-upload ang code sa Arduino kaya, sapilitan ang pagtanggal / pagtanggal.

Sa pamamagitan ng pagkopya sa tagubilin sa itaas ang iyong Arduino IDE software ay handa na para sa anumang / karamihan sa mga proyekto batay sa IR.

Magtalaga ng mga key para sa remote:

Sa aming remote sa TV ang bawat key ay may natatanging hexadecimal code, na ginagamit upang makilala kung aling mga key ang pinindot para sa isang operasyon. Bago i-upload ang pangwakas na code sa Arduino, kailangan mong hanapin kung ano ang mga hexadecimal code para sa iyong mga susi.

Upang maisagawa ito sa sumusunod na circuit sa breadboard at sundin ang tagubilin.

1) Buksan ang Arduino IDE at i-upload ang halimbawa ng code na 'IRrecv Demo'

2) Buksan ang serial monitor at pindutin ang key sa remote na nais mong gamitin.

Makikita mo ang pop up ng hexadecimal code sa sandaling pinindot mo ang key. Iyon ang hexadecimal code para sa partikular na key.

3) Gawin ang pareho para sa iba pang dalawang mga susi (3 key ang ibinibigay sa proyektong ito para sa pagkontrol ng 3 mga aparato)

· Gagamitin namin ang mga hexadecimal code na ito sa pangunahing programa at i-upload sa 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-----------//

TANDAAN:

Sa programa:

# tukuyin ang output1 0x111 // ilagay ang iyong code na natanggap mula sa pindutan A

# tukuyin ang output2 0x111 // ilagay ang iyong code na natanggap mula sa pindutan B

# tukuyin ang output3 0x111 // ilagay ang iyong code na natanggap mula sa pindutan C

· Ilagay ang iyong 3 natatanging mga code mula sa iyong remote sa lugar na ito ng 111, 112, at 113 at i-upload ang code. Ang mga hexadecimal code ay mula 0 hanggang 9 at A hanggang F, halimbawa: 20156, 26FE789, FFFFFF.

· Ilagay ang iyong code na may '0x' (zero x).

Diagram ng circuit:

· Ang pagpindot sa mga key trip na relay ON at sa pamamagitan ng pagpindot muli ay papatayin nito ang relay.




Nakaraan: Likas na Lamok na Lamok Gamit ang Mataas na Watt Resistor Susunod: Deep Soil Metal Detector Circuit - Ground Scanner