- पल्स चौड़ाई मॉडुलन:
- आवश्यक सामग्री
- सर्किट आरेख
- कोड और स्पष्टीकरण
- Arduino का उपयोग कर डीसी मोटर का स्पीड कंट्रोल
डीसी मोटर रोबोटिक्स और इलेक्ट्रॉनिक्स प्रोजेक्ट्स में सबसे ज्यादा इस्तेमाल की जाने वाली मोटर है। डीसी मोटर की गति को नियंत्रित करने के लिए हमारे पास विभिन्न विधियां हैं, जैसे गति को तापमान के आधार पर स्वचालित रूप से नियंत्रित किया जा सकता है लेकिन इस परियोजना में डीसी मोटर की गति को नियंत्रित करने के लिए पीडब्लूएम विधि का उपयोग किया जाएगा। यहाँ इस Arduino मोटर स्पीड कंट्रोल प्रोजेक्ट में, गति को पोटेंशियोमीटर के नॉब को घुमाकर नियंत्रित किया जा सकता है।
पल्स चौड़ाई मॉडुलन:
PWM क्या है? PWM एक ऐसी तकनीक है जिसके इस्तेमाल से हम वोल्टेज या बिजली को नियंत्रित कर सकते हैं। इसे और सरल रूप से समझने के लिए, यदि आप मोटर चलाने के लिए 5 वोल्ट लगा रहे हैं, तो मोटर कुछ गति के साथ आगे बढ़ेगी, अब यदि हम 2 वोल्टेज से लागू वोल्टेज को कम करते हैं, तो हम मोटर पर 3 वोल्ट लागू करते हैं तो मोटर की गति भी कम हो जाती है। इस अवधारणा का उपयोग प्रोजेक्ट में PWM का उपयोग करके वोल्टेज को नियंत्रित करने के लिए किया जाता है। हमने इस लेख में PWM के बारे में विस्तार से बताया है। इस सर्किट को भी देखें जहां PWM का उपयोग एलईडी की चमक को नियंत्रित करने के लिए किया जाता है: 1 वाट एलईडी डिमर।
% कर्तव्य चक्र = (TON / (TON + TOFF)) * 100 कहां, T ON = वर्ग तरंग का उच्च समय T OFF = वर्ग तरंग का कम समय
अब यदि किसी समय के दौरान आकृति में स्विच लगातार बंद रहता है तो उस दौरान मोटर लगातार चालू रहेगा। यदि स्विच 8ms के लिए बंद है और 10ms के चक्र पर 2ms के लिए खोला गया है, तो मोटर केवल 8ms समय में चालू होगा। अब औसत टर्मिनल 10 मी की अवधि के दौरान = समय को चालू करें / (समय चालू करें + बंद समय चालू करें), इसे कर्तव्य चक्र कहा जाता है और यह 80% (8 / (8 + 2)) है, इसलिए औसत आउटपुट वोल्टेज बैटरी वोल्टेज का 80% होगा। अब मानव आंख यह नहीं देख सकती है कि मोटर 8ms के लिए है और 2ms के लिए बंद है, इसलिए ऐसा लगेगा जैसे DC मोटर 80% गति के साथ घूम रहा है।
दूसरे मामले में, स्विच 5ms के लिए बंद है और 10ms की अवधि में 5ms के लिए खोला गया है, इसलिए आउटपुट पर औसत टर्मिनल वोल्टेज बैटरी वोल्टेज का 50% होगा। यह कहें कि यदि बैटरी वोल्टेज 5V है और कर्तव्य चक्र 50% है, तो औसत टर्मिनल वोल्टेज 2.5V होगा।
तीसरे मामले में कर्तव्य चक्र 20% और औसत टर्मिनल वोल्टेज बैटरी वोल्टेज का 20% है।
हमने अपने कई प्रोजेक्ट्स में Arduino के साथ PWM का इस्तेमाल किया है:
- पीडब्लूएम का उपयोग करके अरुडिनो आधारित एलईडी डिमर
- Arduino का उपयोग कर तापमान नियंत्रित फैन
- Arduino का उपयोग कर डीसी मोटर नियंत्रण
- Arduino और TRIAC का उपयोग करके AC फैन स्पीड कंट्रोल
आप PWM पर आधारित विभिन्न परियोजनाओं से गुजरकर PWM के बारे में अधिक जान सकते हैं।
आवश्यक सामग्री
- Arduino UNO
- डीसी यंत्र
- ट्रांजिस्टर 2N2222
- पोटेंशियोमीटर 100k ओम
- संधारित्र 0.1uF
- ब्रेड बोर्ड
- कूदते तार
सर्किट आरेख
पीडब्लूएम का उपयोग करके Arduino DC मोटर स्पीड कंट्रोल के लिए सर्किट आरेख नीचे है:
कोड और स्पष्टीकरण
Arentino DC Motor Control के लिए पोटेंशियोमीटर का उपयोग करने का पूरा कोड अंत में दिया गया है।
नीचे दिए गए कोड में, हमने वेरिएबल c1 और c2 को इनिशियलाइज़ किया है और पोटेंशियोमीटर आउटपुट के लिए एनालॉग पिन A0 और 'pwm' के लिए 12 वें पिन को असाइन किया है ।
int pwmPin = 12; int pot = A0; int c1 = 0; int c2 = 0;
अब, नीचे दिए गए कोड में, आउटपुट के रूप में पिन A0 को इनपुट और 12 (जो PWM पिन है) के रूप में सेट करें।
शून्य सेटअप () { pinMode (pwmPin, OUTPUT); // पिन 12 को आउटपुट पिनोड (पॉट, INPUT) घोषित करता है ; // इनपुट के रूप में पिन A0 घोषित करता है }
अब, शून्य लूप () में, हम analogRead (पॉट) का उपयोग करके एनालॉग वैल्यू (A0 से) पढ़ रहे हैं , और इसे वेरिएबल c2 में सेव कर रहे हैं। फिर, 1024 से c2 मान घटाएं और परिणाम को c1 में सहेजें। फिर PWM पिन को 12 वें Arduino High से बनाते हैं और फिर मूल्य c1 की देरी के बाद उस पिन को LOW बनाते हैं। फिर से, मूल्य c2 की देरी के बाद लूप जारी रहता है।
1024 से एनालॉग मूल्य को घटाने का कारण, Arduino Uno ADC 10-बिट रिज़ॉल्यूशन (इसलिए 0 - 2 ^ 10 = 1024 मूल्यों से पूर्णांक मान) है। इसका अर्थ है कि यह 0 और 5 वोल्ट के बीच के इनपुट वोल्टेज को 0 और 1024 के बीच पूर्णांक मानों में मैप करेगा। इसलिए यदि हम anlogValue को (5/1024) में इनपुट करते हैं , तो हमें इनपुट वोल्टेज का डिजिटल मान मिलता है। यहां जानें कि कैसे Arduino में ADC इनपुट का उपयोग करें।
शून्य लूप () { c2 = analogRead (पॉट); c1 = 1024-c2; digitalWrite (pwmPin, HIGH); // सेट पिन 12 उच्च देरीमाइक्रोसेकंड (सी 1); // c1 uS ( उच्च समय) digitalWrite (pwmPin, LOW) की प्रतीक्षा करता है ; // सेट पिन 12 LOW देरीमाइक्रोसेकंड (c2); // c2 uS (कम समय) के लिए प्रतीक्षा करता है }
Arduino का उपयोग कर डीसी मोटर का स्पीड कंट्रोल
इस सर्किट में, DC मोटर की गति को नियंत्रित करने के लिए, हम PWK सिग्नल के कर्तव्य चक्र को बदलने के लिए 100K ओम पोटेंशियोमीटर का उपयोग करते हैं। 100K ओम पोटेंशियोमीटर Arduino UNO के एनालॉग इनपुट पिन A0 से जुड़ा है और DC मोटर Arduino (जो PWM पिन है) के 12 वें पिन से जुड़ा है । Arduino प्रोग्राम का काम बहुत सरल है, क्योंकि यह एनालॉग पिन A0 से वोल्टेज को पढ़ता है। पोटेंशियोमीटर का उपयोग करके एनालॉग पिन पर वोल्टेज विविध है। कुछ आवश्यक गणना करने के बाद कर्तव्य चक्र को उसके अनुसार समायोजित किया जाता है।
उदाहरण के लिए, यदि हम एनालॉग इनपुट को 256 मान देते हैं, तो उच्च समय 768ms (1024-256) और LOW का समय 256ms होगा। इसलिए, इसका सीधा मतलब है कि शुल्क चक्र 75% है। हमारी आंखें इतनी उच्च आवृत्ति दोलन नहीं देख सकती हैं और ऐसा लगता है कि 75% गति के साथ मोटर लगातार चालू है। तो यह है कि हम Arduino का उपयोग करके मोटर स्पीड कंट्रोल कैसे कर सकते हैं ।