Arduino IR रिमोट कंट्रोल सर्किट

समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें





इस पोस्ट में हम एक अनुकूलन योग्य Arduino आधारित IR (अवरक्त) आधारित वायरलेस रिमोट कंट्रोल स्विच का निर्माण करने जा रहे हैं, जिसमें IR रिमोट और एक रिसीवर शामिल हैं, आप अपनी आवश्यकताओं के अनुसार संशोधित कर सकते हैं। लेख के बाद के भाग में हम एक IR रिमोट कंट्रोल के अपग्रेडेड फुलप्रूफ वर्जन के बारे में सीखते हैं जो केवल विशिष्ट रूप से नियत आवृत्ति पर प्रतिक्रिया देगा।

यदि आप शुरुआती स्तर से ऊपर हैं तो आप इसे आसानी से पूरा कर सकते हैं। यहाँ प्रस्तावित सर्किट में सिर्फ रिमोट पर तीन नियंत्रण और रिसीवर छोर पर 3 रिले हैं। आप अपनी आवश्यकताओं को पूरा करने के लिए कोड और सर्किट आरेख को संशोधित कर सकते हैं।



आपको दो Arduino बोर्डों की आवश्यकता होगी, जो रिमोट के रूप में कार्य करते हैं और रिसीवर के रूप में एक और कार्य करते हैं। मैं इस परियोजना के लिए Arduino Pro मिनी की सिफारिश करूंगा, क्योंकि उनमें से आकार बहुत छोटे हैं और रिमोट के समग्र आकार को छोटा किया जा सकता है।

आप रिमोट के लिए 3.3V आधारित Arduino Pro मिनी का उपयोग कर सकते हैं, ताकि आप अपनी आवश्यकताओं के अनुसार दो बटन सेल या दो AA आकार की बैटरी से संचालित हो सकें।



IR ट्रांसमीटर सर्किट में बटन पर 3 पुश होते हैं और रिसीवर को कमांड भेजने के लिए एक IR LED होता है। प्रत्येक बटन को अद्वितीय हेक्साडेसिमल कोड के साथ प्रोग्राम किया गया है, उसी हेक्साडेसिमल कोड को रिसीवर की तरफ भी प्रोग्राम किया गया है।

जब एक बटन दब जाता है तो IR LED रिसीवर को हेक्साडेसिमल कोड भेजता है, रिसीवर यह पहचान लेगा कि कौन सा बटन दबाया गया है और यह संबंधित रिले को चालू / बंद करता है।

प्रस्तावित रिमोट रिसीवर के साथ संचार करने के लिए RC5 प्रोटोकॉल का उपयोग करता है आप कोड को संशोधित करके सब कुछ बदल सकते हैं।

यदि आप Arduino में अभी शुरुआत कर रहे हैं, तो आप अभी भी इसे पूरा कर सकते हैं बस आरेख का पालन करें और कोड को संशोधित किए बिना अपलोड करें।

सर्किट और कार्यक्रम:

Arduino रिमोट ट्रांसमीटर:

फुलप्रूफ आईआर रिमोट कंट्रोल सर्किट

उपरोक्त सर्किट बताता है कि कैसे Arduino IR रिमोट ट्रांसमीटर का निर्माण किया जाता है।

तीन 10K रेसिस्टर्स रेसिस्टर्स को नीचे खींचते हैं, जो स्टैटिक चार्ज के कारण रिमोट के आकस्मिक ट्रिगरिंग को रोकते हैं और आईआर एलईडी के लिए 220ohm करंट रीमिटिंग रेसिस्टर नियोजित होता है।

रिमोट ट्रांसमीटर के लिए कार्यक्रम:

//---------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 रिसीवर:

जैसा कि ऊपर दिखाया गया है IR Arduino रिसीवर सर्किट TSOP1738 सेंसर कुछ ट्रांजिस्टर, ट्रांजिस्टर, रिले और डायोड को रिले कॉइल से उच्च वोल्टेज स्पाइक को अवशोषित करने के लिए वर्तमान सीमित प्रतिरोध।

सर्किट आरेख स्वयं व्याख्यात्मक है।

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

उपरोक्त स्पष्टीकरणों का पालन करके आप तीन नियंत्रणों को पूरा कर सकते हैं, यदि आप अधिक नियंत्रण और रिले जोड़ना चाहते हैं, तो आपको कोड और सर्किट आरेख को संपादित करने की आवश्यकता है।

आप प्रोग्राम में रिसीवर और रिमोट में अप्रयुक्त पिन के लिए आउटपुट और इनपुट असाइन कर सकते हैं और रिसीवर में संबंधित पिंस के लिए ट्रांजिस्टर और रिले की संख्या कनेक्ट कर सकते हैं और इसी तरह स्विच की संख्या कनेक्ट कर सकते हैं और रिमोट में रोकनेवाला खींच सकते हैं।

आप अधिक संख्या में बटन असाइन करने के लिए यादृच्छिक हेक्साडेसिमल कोड का उपयोग कर सकते हैं।

उदाहरण के लिए: 0xA235, 0xFFFF, 0xBA556 और इसी तरह। और रिसीवर कोड में भी समान हेक्साडेसिमल मान जोड़ें। उदाहरण के लिए: #define output4 0xA235, #define outout5 0xFFFF और इसी तरह।

अद्वितीय आवृत्ति के साथ एक आईआर रिमोट कंट्रोल बनाना

उपरोक्त अनुभागों में हमने एक सरल आईआर रिमोट कंट्रोल के बारे में सीखा जो किसी भी आईआर रिमोट ट्रांसमीटर के साथ काम करेगा।
निम्नलिखित लेख में हम सीखेंगे कि कैसे Arduino microcontroller का उपयोग करके घरेलू उपकरणों के एक मूर्खतापूर्ण नियंत्रण के लिए उपरोक्त अवधारणा का उन्नत संस्करण बनाया जाए, जो एक अद्वितीय आवृत्ति के साथ काम करेगा और आम आईआर हैंडसेट के साथ कभी भी काम नहीं करेगा।

फुलप्रूफ आईआर रिमोट कंट्रोल

यह सर्किट टीवी रिमोट के अप्रयुक्त बटन या किसी अन्य अप्रयुक्त रिमोट का उपयोग करके आपके गैजेट्स को चालू / बंद कर सकता है जो आपके रद्दी बॉक्स में उम्र के लिए पड़े हो सकते हैं।

इस परियोजना का उद्देश्य शारीरिक रूप से विकलांग व्यक्तियों की मदद करना है, और उन्हें स्वतंत्र रूप से प्रशंसकों या रोशनी जैसे बुनियादी घरेलू उपकरणों के ऑन / ऑफ स्विच तक पहुंचने में मदद करना है।

दूसरा उद्देश्य उपयोगकर्ता को अपने मौजूदा स्थान से स्थानांतरित किए बिना गैजेट्स 'एक बॉस की तरह' को नियंत्रित करने में सक्षम करना है।

सर्किट ट्रांसमीटर और रिसीवर के बीच पारंपरिक आईआर आधारित संचार का उपयोग करता है।

यह सर्किट अन्य IR रीमोट्स, और अन्य IR स्रोतों के लिए प्रतिशत प्रतिशत मूर्खतापूर्ण है और त्रुटियों के लिए कम संवेदनशील है।

गैर-माइक्रोकंट्रोलर आधारित बड़ी समस्या आईआर रिमोट कंट्रोल सर्किट , जो इंटरनेट के आसपास पाया जाता है, यह है कि यह किसी भी आईआर आधारित रिमोट के साथ चालू / बंद कर सकता है और केवल एक डिवाइस को एक पल में नियंत्रित कर सकता है और त्रुटियों के लिए भी अतिसंवेदनशील हो सकता है।

यह सर्किट निर्दिष्ट मुद्दों से ऊपर निकल जाता है, और हम कर सकते हैं एक रिमोट पर कई गैजेट्स को नियंत्रित करें और विशिष्ट गैजेट के लिए कुंजी असाइन करें।

इस परियोजना को आगे बढ़ाने से पहले, आपको इस लिंक को arduino के लिए लाइब्रेरी फ़ाइलों को डाउनलोड करने की आवश्यकता है और नीचे दिए गए निर्देशों का पालन करें: github.com/z3t0/Arduino-IRremote

निर्देश:

1) दिए गए लिंक पर 'क्लोन या डाउनलोड' बटन पर क्लिक करें और 'ज़िप डाउनलोड करें' पर क्लिक करें।

2) फ़ाइल को निकालें और 'IRremote' फ़ोल्डर को Arduino के अपने लाइब्रेरी फ़ोल्डर में ले जाएं।

3) अपने arduino लाइब्रेरी से 'RobotIRremote' फ़ोल्डर हटाएं। 'रोबोटिरमोटे' में 'इरेमोटे' पुस्तकालय की समान परिभाषा है, जो कोड को Arduino पर अपलोड करने में सक्षम नहीं है और इसलिए, हटाना / हटाना अनिवार्य है।

उपरोक्त निर्देश की नकल करके आपका Arduino IDE सॉफ़्टवेयर किसी भी / अधिकांश IR आधारित परियोजनाओं के लिए तैयार है।

रिमोट के लिए कुंजियाँ असाइन करें:

हमारे टीवी रिमोट में प्रत्येक कुंजी में अद्वितीय हेक्साडेसिमल कोड होता है, जिसका उपयोग यह पहचानने के लिए किया जाता है कि किस कुंजी को किसी ऑपरेशन के लिए दबाया गया है। Arduino को अंतिम कोड अपलोड करने से पहले, आपको यह खोजना होगा कि आपकी कुंजी के लिए हेक्साडेसिमल कोड क्या हैं।

ऐसा करने के लिए ब्रेडबोर्ड में निम्नलिखित सर्किट का निर्माण करें और निर्देश का पालन करें।

1) Arduino IDE खोलें और उदाहरण कोड 'IRrecv Demo' अपलोड करें

2) सीरियल मॉनिटर खोलें और उस रिमोट की कुंजी दबाएं जिसे आप उपयोग करना चाहते हैं।

जैसे ही आप कुंजी दबाते हैं, आपको हेक्साडेसिमल कोड दिखाई देगा। उस विशेष कुंजी के लिए हेक्साडेसिमल कोड है।

3) अन्य दो कुंजियों के लिए भी ऐसा ही करें (3 उपकरणों को नियंत्रित करने के लिए इस परियोजना में 3 कुंजी दी गई हैं)

· हम मुख्य कार्यक्रम में इन हेक्साडेसिमल कोड का उपयोग करने जा रहे हैं और 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 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-----------//

ध्यान दें:

कार्यक्रम में:

#define output1 0x111 // अपना कोड बटन ए से प्राप्त करें

#define output2 0x111 // अपने कोड को बटन B से प्राप्त करें

#define output3 0x111 // अपना कोड बटन C से प्राप्त करें

111, 112 और 113 की जगह पर अपने रिमोट से अपने 3 यूनिक कोड रखें और कोड अपलोड करें। हेक्साडेसिमल कोड 0 से 9 और ए से एफ तक होंगे, उदाहरण के लिए: 20156, 26FE789, एफएफएफएफएफ।

· अपना कोड '0x' (शून्य x) के साथ रखें।

सर्किट आरेख:

कुंजी दबाने पर रिले पर यात्रा करता है और फिर से दबाकर यह रिले को बंद कर देगा।




की एक जोड़ी: प्राकृतिक मच्छर से बचाने वाली क्रीम उच्च वाट रोकनेवाला का उपयोग कर अगला: डीप सॉयल मेटल डिटेक्टर सर्किट - ग्राउंड स्कैनर