- अवयव आवश्यक
- सॉफ्टवेयर का इस्तेमाल किया
- 433 मेगाहर्ट्ज आरएफ ट्रांसमीटर और रिसीवर मॉड्यूल
- सर्किट आरेख
- CodeVision का उपयोग करके Atmega 8 के लिए प्रोजेक्ट बनाना
- CODE और स्पष्टीकरण
- Atmega8 पर कोड अपलोड करें
हमारी परियोजनाओं को वायरलेस बनाने से यह हमेशा अच्छा दिखता है और यह उस सीमा को भी विस्तारित करता है जिसमें इसे नियंत्रित किया जा सकता है। दुनिया भर में HTTP नियंत्रण के लिए ESP8266 तक छोटी दूरी के वायरलेस नियंत्रण के लिए एक सामान्य IR एलईडी का उपयोग करने से शुरू, कुछ वायरलेस तरीके से नियंत्रित करने के बहुत सारे तरीके हैं। इस परियोजना में हम सीखते हैं कि 433 मेगाहर्ट्ज आरएफ मॉड्यूल और एवीआर माइक्रोकंट्रोलर का उपयोग करके वायरलेस प्रोजेक्ट कैसे बनाया जाता है ।
इस परियोजना में हम निम्नलिखित बातें करते हैं: -
- हम RF ट्रांसमीटर के लिए Atmega8 और RF रिसीवर सेक्शन के लिए Atmega8 का उपयोग करते हैं ।
- हम Atmega8 माइक्रोकंट्रोलर्स के साथ एक एलईडी और एक पुशबटन इंटरफेस करते हैं।
- ट्रांसमीटर की तरफ, हम Atmega के साथ Pushbutton को इंटरफ़ेस करते हैं और डेटा को प्रसारित करते हैं। रिसीवर की तरफ, हम डेटा को वायरलेस रूप से प्राप्त करेंगे और एलईडी पर आउटपुट दिखाएंगे।
- हम 4 बिट डेटा संचारित करने के लिए एनकोडर और डिकोडर आईसी का उपयोग करते हैं।
- मार्केट में उपलब्ध सस्ते RF TX-RX मॉड्यूल का उपयोग करके रिसेप्शन फ्रीक्वेंसी 433Mhz है।
अवयव आवश्यक
- Atmega8 AVR माइक्रोकंट्रोलर (2)
- USBASP प्रोग्रामर
- 10-पिन FRC केबल
- ब्रेड बोर्ड (2)
- एलईडी (2)
- पुशबटन (1)
- HT12D और HT12E जोड़ी
- आरएक्स-TX आरएफ मॉड्यूल
- प्रतिरोध (10k, 47k, 1M)
- जम्पर तार
- 5 वी बिजली की आपूर्ति
सॉफ्टवेयर का इस्तेमाल किया
हम अपने कोड लिखने के लिए CodeVisionAVR सॉफ्टवेयर का उपयोग करते हैं और USBASP प्रोग्रामर का उपयोग करके Atmega8 में अपना कोड अपलोड करने के लिए SinaProg सॉफ्टवेयर।
आप इन सॉफ्टवेयर्स को दिए गए लिंक से डाउनलोड कर सकते हैं:
CodeVisionAVR :
सिनाप्रोग:
योजनाबद्ध और कोड में जाने से पहले, एनकोडर-डिकोडर आईसी के साथ आरएफ मॉड्यूल के काम को समझते हैं।
433 मेगाहर्ट्ज आरएफ ट्रांसमीटर और रिसीवर मॉड्यूल
वे ट्रांसमीटर और रिसीवर मॉड्यूल हैं जो हम परियोजना में उपयोग कर रहे हैं। यह 433 मेगाहर्ट्ज के लिए सबसे सस्ता मॉड्यूल उपलब्ध है। ये मॉड्यूल एक चैनल में सीरियल डेटा स्वीकार करते हैं ।
यदि हम मॉड्यूल की विशिष्टताओं को देखते हैं, तो ट्रांसमीटर को इनपुट वोल्टेज के रूप में 3.5-12V ऑपरेशन के लिए रेट किया गया है और प्रेषित दूरी 20-200 मीटर है । यह 433 मेगाहर्ट्ज आवृत्ति पर एएम (ऑडियो मॉड्यूलेशन) प्रोटोकॉल में संचारित करता है । हम 10mW पावर के साथ 4KB / S की गति से डेटा ट्रांसफर कर सकते हैं ।
ऊपरी छवि में हम ट्रांसमीटर मॉड्यूल के पिन-आउट देख सकते हैं। बाएं से दाएं पिन VCC, DATA और GND हैं । हम एंटीना को भी जोड़ सकते हैं और इसे ऊपर की छवि में दर्शाए गए बिंदु पर मिलाप कर सकते हैं।
के लिए रिसीवर विनिर्देश, रिसीवर की रेटिंग है वर्तमान 5V डीसी और 4mA मौन इनपुट के रूप में। एक -105DB संवेदनशीलता के साथ प्राप्त आवृत्ति 433.92 मेगाहर्ट्ज है ।
उपरोक्त छवि में हम रिसीवर मॉड्यूल के पिन-आउट देख सकते हैं। चार पिन बाएं से दाएं, वीसीसी, डेटा, डेटा और जीएनडी हैं । वे मध्य दो पिन आंतरिक रूप से जुड़े हुए हैं। हम किसी एक या दोनों का उपयोग कर सकते हैं। लेकिन शोर युग्मन को कम करने के लिए दोनों का उपयोग करना एक अच्छा अभ्यास है।
साथ ही, डेटशीट में एक चीज का उल्लेख नहीं किया गया है, मॉड्यूल के मध्य में चर प्रारंभ करनेवाला या पॉट आवृत्ति अंशांकन के लिए उपयोग किया जाता है । यदि हम प्रेषित डेटा प्राप्त नहीं कर सकते हैं, तो संभावनाएं हैं कि संचारण और प्राप्त आवृत्तियों का मिलान नहीं किया जाता है। यह एक आरएफ सर्किट है और हमें ट्रांसमीटर को सही प्रेषित आवृत्ति बिंदु पर ट्यून करने की आवश्यकता है। इसके अलावा, ट्रांसमीटर के समान, इस मॉड्यूल में एक एंटीना पोर्ट भी है; हम लंबे समय तक स्वागत के लिए coiled रूप में तार मिलाप कर सकते हैं।
ट्रांसमिशन रेंज ट्रांसमीटर पर आपूर्ति की जाने वाली वोल्टेज और दोनों पक्षों में एंटेना की लंबाई पर निर्भर है। इस विशिष्ट परियोजना के लिए हमने बाहरी एंटीना का उपयोग नहीं किया और ट्रांसमीटर पक्ष पर 5V का उपयोग किया। हमने 5 मीटर की दूरी के साथ जाँच की और इसने पूरी तरह से काम किया।
RF ट्रांसमीटर और रिसीवर सर्किट में RF जोड़ी के बारे में अधिक जानें। आप आरएफ जोड़ी का उपयोग करने वाली परियोजनाओं की जांच करके आरएफ के काम के बारे में अधिक समझ सकते हैं:
- RF नियंत्रित रोबोट
- IR को RF कनवर्टर सर्किट
- रास्पबेरी पाई का उपयोग करके आरएफ रिमोट नियंत्रित एल ई डी
- RF नियंत्रित घरेलू उपकरण
सर्किट आरेख
आरएफ ट्रांसमीटर पक्ष के लिए सर्किट आरेख
- पिन D7 atmega8 की -> Pin13 HT12E
- पिन D6 atmega8 की -> पिन 12 HT12E
- पिन D5 atmega8 की -> Pin11 HT12E
- पिन D4 atmega8 की -> Pin10 HT12E
- पुटमबटन से अटमेगा के पिन बी 0 तक।
- Pin15 और HT12E के 16 के बीच 1M-ओम अवरोधक।
- RF12 ट्रांसमीटर मॉड्यूल के डेटा पिन को HT12E का पिन 17।
- एचटी 12 ई का पिन 18 से 5 वी।
- जीएनडी पिन 1-9 और एचटी 12 ई का पिन 14 और एटमेगा का पिन 8।
आरएफ रिसीवर पक्ष के लिए सर्किट आरेख
- पिन D7 atmega8 की -> Pin13 HT12D
- पिन D6 atmega8 की -> पिन 12 HT12D
- पिन D5 atmega8 की -> Pin11 HT12D
- पिन D4 atmega8 की -> Pin10 HT12d
- Atmega के पिन B0 के लिए एलईडी।
- RF14 मॉड्यूल के डेटा पिन के लिए HT12D का पिन 14।
- 47Kohm अवरोध करनेवाला pin15 और 16 HT12D के बीच।
- GND पिन HT9D का 1-9 और Atmega का पिन 8।
- HT12D के 17 पिन को एलईडी।
- 5V Atmega के 7 पिन और HT12D के 18 पिन।
CodeVision का उपयोग करके Atmega 8 के लिए प्रोजेक्ट बनाना
इन सॉफ्टवेयर्स को स्थापित करने के बाद प्रोजेक्ट और राइटिंग कोड बनाने के लिए नीचे दिए गए चरणों का पालन करें:
चरण 1 । Open CodeVision फ़ाइल पर क्लिक करें -> नया -> प्रोजेक्ट । पुष्टि संवाद बॉक्स दिखाई देगा। Yes पर क्लिक करें
Step 2. CodeWizard खुल जाएगा। पहले विकल्प यानी AT90 पर क्लिक करें, और ठीक पर क्लिक करें।
चरण 3. अपनी माइक्रोकंट्रोलर चिप चुनें, यहां हम एटमेगा 8 दिखाएंगे जैसा कि दिखाया गया है।
स्टेप 4: - पोर्ट्स पर क्लिक करें। में ट्रांसमीटर हिस्सा, अभी शुरू हमारे इनपुट और 4 डेटा लाइनों उत्पादन कर रहे हैं। इसलिए, हमें Atmega के 4 पिन को आउटपुट के रूप में इनिशियलाइज़ करना है। इस पर क्लिक करके पोर्ट डी। मेक बिट 7, 6, 5 और 4 पर क्लिक करें।
चरण 5: - प्रोग्राम पर क्लिक करें -> उत्पन्न, सहेजें और बाहर निकलें । अब, हमारे आधे से अधिक काम पूरा हो गया है
स्टेप 6: - डेस्कटॉप पर एक नया फोल्डर बनाएं, ताकि हमारी फाइलें फोल्डर में रहें अन्यथा यह पूरी डेस्कटॉप विंडो पर बिखर जाएगा। अपने फ़ोल्डर को नाम दें जैसा आप चाहते हैं और मेरा सुझाव है कि प्रोग्राम फ़ाइलों को सहेजने के लिए उसी नाम का उपयोग करें।
हम फ़ाइलों को सहेजने के लिए एक के बाद एक तीन संवाद बॉक्स होंगे। अन्य दो संवाद बॉक्स के साथ भी ऐसा ही करें जो आपके द्वारा पहले सेव करने के बाद दिखाई देगा।
अब, आपका कार्यक्षेत्र इस तरह दिख रहा है।
हमारे अधिकांश कार्य विज़ार्ड की सहायता से पूरे होते हैं। अब, हमें ट्रांसमीटर और रिसीवर भाग के लिए कोड की केवल कुछ पंक्तियाँ लिखनी हैं और यही है…
रिसीवर भाग के लिए फ़ाइलें बनाने के लिए समान चरणों का पालन करें । रिसीवर भाग में, केवल LED हमारा आउटपुट है इसलिए पोर्ट B0 को थोड़ा बाहर करें।
CODE और स्पष्टीकरण
हम आरएफ का उपयोग करके वायरलेस रूप से एलईडी टॉगल करने के लिए कोड लिखेंगे । ट्रांसमीटर और रिसीवर पक्षों पर दोनों Atmega के लिए पूरा कोड इस लेख के अंत में दिया गया है।
RF ट्रांसमीटर के लिए Atmega8 कोड:
पहले हमारे कोड में देरी का उपयोग करने के लिए देरी। हेड शीर्षक फ़ाइल शामिल करें ।
#शामिल
अब, कोड की अंतिम पंक्तियों पर आएं, जहां आपको थोड़ी देर का लूप मिलेगा । हमारा मुख्य कोड इस लूप में होगा।
में जबकि पाश, हम PORTD को 0x10 बाइट भेज देंगे जब बटन दबाया जाता है और, 0x20 भेज देगी, बटन दबाया नहीं है। भेजने के लिए आप किसी भी मान का उपयोग कर सकते हैं।
जबकि (1) { यदि (PINB.0 == 1) { PORTD = 0x10; } अगर (PINB.0 == 0) { PORTD = 0x20; } } }
RF रिसीवर के लिए Atmega कोड
आरएफ मॉड्यूल से आने वाले चरित्र के भंडारण के लिए शून्य मुख्य कार्य के ऊपर पहले घोषित चर ।
#शामिल
अब के लिए आते हैं , जबकि पाश। इस लूप में, आवक बाइट्स को चार चर बाइट में संग्रहीत करें और जांचें कि आने वाली बाइट वैसी ही है जैसे हम अपने ट्रांसमीटर वाले हिस्से में लिखते हैं। यदि बाइट्स समान हैं, तो पोर्टब.0 को उच्च बनाएं और एलईडी को टॉगल करने के लिए PORTB.0 का न लें ।
जबकि (1) { बाइट = पिंड; if (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0; delay_ms (1000); }}}
प्रोजेक्ट बनाएं
हमारा कोड पूरा हो गया है। अब, हमें अपनी परियोजना बनानी होगी । जैसा दिखाया गया है बिल्ड आइकन पर क्लिक करें।
प्रोजेक्ट के निर्माण के बाद, डिबग-> Exe फ़ोल्डर में एक HEX फ़ाइल उत्पन्न होती है, जो उस फ़ोल्डर में पाई जा सकती है जिसे आपने अपनी परियोजना को बचाने के लिए पहले बनाया है। हम इस HEX फाइल को Atmega8 में अपलोड करने के लिए Sinaprog सॉफ्टवेयर का उपयोग करेंगे ।
Atmega8 पर कोड अपलोड करें
Atmega8 को प्रोग्राम करने के लिए दिए गए आरेख के अनुसार अपने सर्किट को कनेक्ट करें। USBASP प्रोग्रामर को FRC केबल के एक तरफ हुकअप और दूसरे पक्ष को नीचे वर्णित माइक्रोकंट्रोलर के SPI पिन से जोड़ा जाएगा:
- FRC महिला कनेक्टर का पिन 1 -> पिन 17, एटमेगा 8 का MOSI
- पिन 2 atmega8 यानी पिन 7 के Vcc से जुड़ा है
- पिन 5 atmega8 के रीसेट से जुड़ा यानी पिन 1
- Pin 7 atmega8 के SCK से जुड़ा हुआ है यानी Pin 19
- पिन 9 atmega8 यानी पिन 18 के MISO से जुड़ा
- पिन 8 atmega8 के जीएनडी से जुड़ा है यानी पिन 8
सर्किट आरेख के अनुसार ब्रेडबोर्ड पर शेष घटकों को कनेक्ट करें और साइनप्रोग खोलें ।
हम Sinaprog का उपयोग करके उपरोक्त उत्पन्न हेक्स फ़ाइल को अपलोड करेंगे , इसलिए इसे खोलें और डिवाइस ड्रॉप डाउन मेनू से Atmega8 चुनें। दिखाए गए अनुसार डिबग-> Exe फ़ोल्डर से HEX फ़ाइल चुनें ।
अब, प्रोग्राम पर क्लिक करें।
आप कर रहे हैं और आपके माइक्रोकंट्रोलर को प्रोग्राम किया गया है। रिसीवर की तरफ एक और Atmega प्रोग्राम करने के लिए समान चरणों का उपयोग करें।
पूरा कोड और प्रदर्शन वीडियो नीचे दिया गया है।