- पल्स चौड़ाई मॉडुलन (PWM)
- Arduino का उपयोग करके ATtiny13 प्रोग्रामिंग
- अवयव आवश्यक
- सर्किट आरेख और कार्य
सर्वो मोटर पल्स चौड़ाई मॉड्यूलेशन (पीडब्लूएम) के प्रमुख पर काम करती है और इसके रोटेशन का कोण इसके नियंत्रण पिन पर लागू पल्स की अवधि से नियंत्रित होता है। यहाँ इस ट्यूटोरियल में हम PWM तकनीक का उपयोग करके ATtiny13 microcontroller के साथ एक सर्वो मोटर को नियंत्रित करेंगे । इसलिए आगे जाने से पहले हम पहले PWM, सर्वो मोटर और Arduino Board के साथ ATtiny13 प्रोग्राम कैसे करें, इसके बारे में जानेंगे ।
पल्स चौड़ाई मॉडुलन (PWM)
पल्स चौड़ाई मॉड्यूलेशन (पीडब्लूएम) को डिजिटल स्रोत का उपयोग करके एनालॉग सिग्नल उत्पन्न करने के लिए एक विधि के रूप में परिभाषित किया गया है। एक PWM सिग्नल में दो मुख्य घटक होते हैं- कर्तव्य चक्र और आवृत्ति। ये घटक इसके व्यवहार को परिभाषित करते हैं। ड्यूटी चक्र एक उच्च अवस्था में सिग्नल की मात्रा का वर्णन करता है। इसे एक चक्र पूरा करने में लगने वाले कुल समय के प्रतिशत के रूप में दर्शाया जाता है।
ड्यूटी साइकिल = समय चालू करें / (समय चालू करें + बंद समय चालू करें)
आवृत्ति परिभाषित करती है कि पीडब्लूएम कितनी तेजी से एक चक्र पूरा करता है और उच्च और निम्न राज्यों के बीच सिग्नल स्विच कितनी तेजी से होता है। 100 हर्ट्ज की आवृत्ति का अर्थ है प्रति सेकंड 100 चक्र। एक डिजिटल सिग्नल को चालू और बंद करके एक तेज दर पर और एक निश्चित कर्तव्य चक्र के साथ, आउटपुट एक स्थिर वोल्टेज एनालॉग सिग्नल की तरह दिखाई देगा। पीडब्लूएम के शक्तिशाली लाभों में से एक यह है कि बिजली की हानि बहुत कम है।
सभी इमदादी मोटर सीधे + 5 वी आपूर्ति के साथ काम करते हैं, लेकिन हमें वर्तमान में मोटर की खपत पर ध्यान देना होगा। अगर हम दो से अधिक सर्वो मोटर का उपयोग कर रहे हैं तो एक उचित इमदादी ढाल को डिजाइन किया जाना चाहिए।
सर्वो को Attiny13 से कनेक्ट करने से पहले, आप इस सर्वो मोटर परीक्षक सर्किट की मदद से अपने सर्वो का परीक्षण कर सकते हैं। यहां हमने कई माइक्रोकंट्रोलरों के साथ सर्वो मोटर को बाधित किया है:
- ARM7-LPC2148 के साथ सर्वो मोटर में हस्तक्षेप करना
- MSP430G2 के साथ सर्वो मोटर में हस्तक्षेप करना
- Arduino के साथ कई सर्वो मोटर्स को नियंत्रित करना
- MPLAB और XC8 का उपयोग करके PIC माइक्रोकंट्रोलर के साथ सर्वो मोटर को इंटरफैस करना
- रास्पबेरी पाई के साथ सर्वो मोटर नियंत्रण
- Arduino ड्यू के साथ सर्वो मोटर नियंत्रण
- AVR माइक्रोकंट्रोलर Atmega16 के साथ सर्वो मोटर इंटरफैसिंग
Arduino का उपयोग करके ATtiny13 प्रोग्रामिंग
Attiny13 को Arduino Uno या किसी अन्य Arduino बोर्ड का उपयोग करके प्रोग्राम किया जा सकता है। जैसा कि नीचे दिए गए चित्र में दिखाया गया है, Arduino Uno से Attiny13 कनेक्ट करें।
- Arduino 5V - ATtiny13 पिन 8
- Arduino GND - ATtiny13 pin 4
- Arduino पिन 13 - ATtiny13 पिन 7
- Arduino पिन 12 - ATtiny13 पिन 6
- Arduino पिन 11 - ATtiny13 पिन 5
- Arduino पिन 10 - ATtiny13 पिन 1
Arduino ATtiny13 प्रोग्राम करने के लिए एक प्रोग्रामर के रूप में सेट है। यह ArduinoISP स्केच को Arduino पर अपलोड करके किया जाता है। यह Arduino स्केच Arduino IDE में उदाहरणों के अंदर उपलब्ध है। Arduino IDE खोलें और फ़ाइलें> उदाहरण> ArduinoISP पर जाएं ।
अब ArduinoISP के लिए कार्यक्रम पॉप अप होगा। कार्यक्रम को Arduino Uno पर अपलोड करें।
Arduino Uno अब Attiny13 प्रोग्राम करने के लिए तैयार है। लेकिन हमें इसकी कोर फाइल्स को इनस्टॉल करके Attiny सेट करना होगा। ऐसा करने के लिए Arduino IDE में फ़ाइल >> प्राथमिकताएं पर जाएं
फिर एक नई विंडो पॉप-अप होगी। और " अतिरिक्त बोर्ड प्रबंधक URL " में नीचे लिंक जोड़ें और "ओके" पर क्लिक करें।
"Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json"
अब अपने Arduino IDE में Tools >> Board >> Boards Manager में जाएं
फिर एक और विंडो पॉप-अप होगी जहां सर्च बॉक्स टाइप 'अटेंशन' में आपको "DIY ATtiny" मिलेगा फिर 'इंस्टॉल' बटन पर क्लिक करें (मैं पहले से ही इसे इंस्टॉल कर चुका हूं, यही कारण है कि ग्रे रंग में इंस्टॉल बटन)
ATtiny 13 की प्रोग्रामिंग शुरू करने के लिए, हमें इसे बूटलोडर को जलाना चाहिए । उसके लिए, टूल्स> बोर्ड> ATtiny13 पर जाएं।
अब टूल्स> प्रोसेसर वर्जन पर जाएं और देखें कि क्या एटीटीनी का सही वर्जन चुना गया है। अपनी चिप के आधार पर या तो ATtiny13 या ATtiny13a का चयन करें।
इसके बाद टूल्स मेनू के नीचे बर्न बूटलोडर बटन पर क्लिक करें।
बूटलोडर को जलाने के बाद, एटिनी अब प्रोग्राम करने के लिए तैयार है । अब आप अपना प्रोग्राम अपलोड कर सकते हैं।
अवयव आवश्यक
- ATtiny13 माइक्रोकंट्रोलर
- सर्वो मोटर
- तनाव नापने का यंत्र
- + 5 वी बैटरी
- Arduino IDE
- तारों को जोड़ना
सर्किट आरेख और कार्य
ATtiny13 के साथ पॉट का उपयोग करके एक सर्वो मोटर को नियंत्रित करने के लिए सर्किट आरेख नीचे दिया गया है।
नीचे कनेक्शन दिए गए हैं
- ATtiny13 के 5 को पिन करने के लिए सर्वो मोटर नियंत्रण पिन से कनेक्ट करें
- ATtiny13 के 4 पिन करने के लिए इमदादी मोटर की जमीन को कनेक्ट करें
- ATtiny13 के 8 पिन करने के लिए इमदादी मोटर के VCC कनेक्ट करें
- ATtiny13 के 7 को पिन करने के लिए पोटेंशियोमीटर के मध्य पिन को कनेक्ट करें
- पोटेंशियोमीटर के पहले और तीसरे पिन को VCC और GND से कनेक्ट करें।
- ATtiny13 के पिन 8 में + 5V बैटरी के पॉजिटिव को कनेक्ट करें
- ATtiny13 के पिन 4 में + 5V बैटरी के नकारात्मक को कनेक्ट करें
एक पोटेंशियोमीटर ATtiny13 के पिन 7 (PB2) से जुड़ा है और सर्वो मोटर का नियंत्रण तार 5 (PB0) से जुड़ा है।
यहाँ पोटेंशियोमीटर मान को पढ़ा जाता है और इसे 0 और 180 के बीच के मान में बदल दिया जाता है। फिर इस कोण के मान को माइक्रोसेकंड में बदल दिया जाता है और गणना की गई माइक्रोसेकंड की देरी के साथ सर्वो मोटर के नियंत्रण पिन को एक पल्स दिया जाता है। अब सर्वो मोटर नीचे दिए गए वीडियो में दिखाए गए अनुसार पोटेंशियोमीटर के मूल्य के अनुसार बदल जाएगी।