- स्टेपर मोटर
- ARM7-LPC2148 के साथ एक स्टेपर मोटर को घुमाएगी
- अवयव आवश्यक
- स्टेपर मोटर (28BYJ-48)
- ULN2003 स्टेपर मोटर ड्राइवर
- सर्किट आरेख
- स्टेपर मोटर के लिए ARM7-LPC2148 प्रोग्रामिंग
आज के स्वचालन में दुनिया में स्टेपर मोटर और इमदादी मोटर एम्बेडेड सिस्टम में दो सबसे अधिक इस्तेमाल की जाने वाली मोटर हैं। दोनों का उपयोग विभिन्न स्वचालन मशीनों जैसे कि रोबोटिक हथियार, सीएनसी मशीन, कैमरा आदि में किया जाता है। इस ट्यूटोरियल में हम देखेंगे कि ARM7-LPC2148 के साथ स्टेपर मोटर को कैसे इंटरफ़ेस करें और इसकी गति को कैसे नियंत्रित करें। यदि आप ARM7 में नए हैं तो ARM7-LPC2148 और इसके प्रोग्रामिंग टूल्स के बारे में जानकर शुरुआत करें।
स्टेपर मोटर
स्टेपर मोटर ब्रशलेस डीसी मोटर है, जिसे छोटे कोणों में घुमाया जा सकता है, इन कोणों को स्टेप्स कहा जाता है । हम इसके पिनों को डिजिटल दालों को देकर स्टेपपर मोटर स्टेप को घुमा सकते हैं। स्टेपर मोटर्स सस्ती हैं और बीहड़ डिजाइन हैं। डिजिटल दालों की आवृत्ति को बदलकर मोटर की गति को नियंत्रित किया जा सकता है।
स्टेटर वाइंडिंग के प्रकार के आधार पर दो प्रकार के स्टेपर मोटर्स उपलब्ध हैं: UNIPOLAR और BIPOLAR । यहाँ हम UNIPOLAR स्टेपर मोटर का उपयोग कर रहे हैं जो कि सबसे अधिक इस्तेमाल की जाने वाली स्टेपर मोटर है । स्टेपर मोटर को घुमाने के लिए हमें एक क्रम में स्टेपर मोटर के कॉइल को सक्रिय करना होगा। घूर्णी संचालन के आधार पर उन्हें दो मोडों में वर्गीकृत किया गया है:
- पूर्ण चरण मोड: (4-चरण अनुक्रम)
- स्टेपिंग पर एक-चरण (WEP STEPPING)
- दो-चरण कदम पर
- आधा चरण मोड (8-चरण अनुक्रम)
स्टेपर मोटर और इसके संचालन के बारे में अधिक जानने के लिए, लिंक का अनुसरण करें।
ARM7-LPC2148 के साथ एक स्टेपर मोटर को घुमाएगी
यहां हम फुल स्टेप का उपयोग करेंगे : स्टीमर मोटर को ARM7-LPC2148 के साथ घुमाने के लिए एक या एक कदम पर मोड का उपयोग करें
इस विधि में हम एक समय में केवल एक कॉइल (LPC2148 का एक पिन) को सक्रिय करेंगे। यदि पहला कॉइल ए छोटे समय के लिए सक्रिय होता है, तो शाफ्ट अपनी स्थिति को बदल देगा और फिर कॉइल बी उसी समय के लिए सक्रिय हो जाएगा और शाफ्ट फिर से अपनी स्थिति बदल देगा। इसी तरह, कुंडल सी और फिर कुंडल डी शाफ्ट को आगे बढ़ने के लिए सक्रिय है। यह स्टेपर मोटर के शाफ्ट को एक बार में एक कॉइल को सक्रिय करके चरण दर चरण घुमाता है।
इस विधि से हम एक क्रम में कुंडल को सक्रिय करके शाफ्ट कदम को घुमाते हैं। इसे चार चरण अनुक्रम कहा जाता है क्योंकि यह चार चरण लेता है।
आप नीचे दिए गए मानों के अनुसार HALF STEP विधि (8-अनुक्रम विधि) का उपयोग करके स्टेपर मोटर को घुमा सकते हैं ।
कदम |
कुंडल ए |
कुंडल बी |
कुंडल सी |
कुंडल डी |
1 |
1 |
० |
० |
० |
२ |
1 |
1 |
० |
० |
३ |
० |
1 |
० |
० |
४ |
० |
1 |
1 |
० |
५ |
० |
० |
1 |
1 |
६ |
० |
० |
० |
1 |
। |
1 |
० |
० |
1 |
। |
1 |
० |
० |
० |
अवयव आवश्यक
हार्डवेयर:
- ARM7-LPC2148
- ULN2003 मोटर चालक आईसी
- एलईडी - 4
- STEPPER मोटर (28BYJ-48)
- ब्रेड बोर्ड
- कनेक्टिंग तार
सॉफ्टवेयर:
- कील uVision5
- फ्लैसिक मैजिक टूल
स्टेपर मोटर (28BYJ-48)
28BYJ-48 स्टेपर मोटर पहले से ही ऊपर की तस्वीर में दिखाया गया है। यह एक यूनीपोलर स्टेपर मोटर है जिसे 5V आपूर्ति की आवश्यकता होती है। मोटर में 4 कुंडल एकध्रुवीय व्यवस्था है और प्रत्येक कुंडल + 5 वी के लिए रेट किया गया है, इसलिए किसी भी माइक्रोकंट्रोलर जैसे कि अरुडुइनो, रास्पबेरी पाई, एसटीएम 32, एआरएम आदि को नियंत्रित करना अपेक्षाकृत आसान है।
लेकिन हमें इसे चलाने के लिए ULN2003 जैसे मोटर ड्राइव आईसी की आवश्यकता है, क्योंकि स्टेपर मोटर्स उच्च धारा का उपभोग करते हैं और इससे माइक्रोकंट्रोलर को नुकसान हो सकता है।
28BYJ-48 के विनिर्देश नीचे डेटाशीट में दिए गए हैं:
इसके अलावा अन्य Microcontrollers के साथ Stepper मोटर के साथ इंटरफेस की जाँच करें:
- Arduino Uno के साथ Stepper Motor का सामना करना पड़ रहा है
- रास्पबेरी पाई के साथ स्टेपर मोटर नियंत्रण
- 8051 माइक्रोकंट्रोलर के साथ स्टेपर मोटर इंटरफेसिंग
- PIC Microcontroller के साथ Stepper मोटर Interfacing
- MSP430G2 के साथ स्टेपर मोटर को इंटरफैस करना
स्टेपर मोटर को बिना किसी माइक्रोकंट्रोलर के भी नियंत्रित किया जा सकता है, इस स्टेपर मोटर ड्राइवर सर्किट को देखें।
ULN2003 स्टेपर मोटर ड्राइवर
अधिकांश स्टेपर मोटर्स केवल चालक मॉड्यूल की मदद से संचालित होंगे। ऐसा इसलिए है क्योंकि नियंत्रक मॉड्यूल (हमारे मामले में LPC2148) मोटर को संचालित करने के लिए अपने I / O पिन से पर्याप्त वर्तमान प्रदान करने में सक्षम नहीं होगा। इसलिए हम एक बाहरी मॉड्यूल जैसे ULN2003 मॉड्यूल का उपयोग स्टेपर मोटर चालक के रूप में करेंगे ।
इस परियोजना में, हम ULN2003 मोटर चालक आईसी का उपयोग करेंगे । आईसी का पिन आरेख नीचे दिया गया है:
Pins (IN1 से IN7) माइक्रोकंट्रोलर आउटपुट को जोड़ने के लिए इनपुट पिन हैं और OUT1 OUT7 के लिए स्टेपर मोटर्स इनपुट को जोड़ने के लिए संबंधित आउटपुट पिन हैं। COM को पॉज़िटिव सोर्स वोल्टेज दिया जाता है जो आउटपुट डिवाइसों के लिए और बाहरी पावर इनपुट सोर्स के लिए आवश्यक होता है।
सर्किट आरेख
एआरएम -7 एलपीसी 2148 के साथ स्टेपर मोटर को इंटरफेस करने के लिए सर्किट आरेख नीचे दिया गया है
UL72003 मोटर चालक आईसी के साथ ARM7-LPC2148
LPC2148 के GPIO पिन (P0.7 से P0.10) को आउटपुट पिन माना जाता है जो ULN2003 IC के इनपुट पिन (IN1-IN4) से जुड़े होते हैं।
LPC2148 पिंस |
ULN2003 आईसी के पिन |
P0.7 |
1 में |
P0.8 |
दो में |
P0.9 |
IN3 |
P.10 |
IN4 |
5 वी |
कॉम |
GND |
GND |
Stepper मोटर (28BYJ-48) के साथ ULN2003 आईसी के कनेक्शन
ULN2003 IC का आउटपुट पिन (OUT1-OUT4) स्टेपर मोटर्स पिंस (नीला, गुलाबी, पीला और नारंगी) से जुड़ा हुआ है।
ULN2003 आईसी पिनएस |
पाइप मोटर का पिन |
OUT1 |
नीला |
OUT2 |
गुलाबी |
OUT3 |
पीला |
OUT4 |
संतरा |
कॉम |
RED (+ 5 वी) |
ULN2003 के IN1 से IN4 के साथ एल ई डी
चार LED (LED1, LED2, LED4, LED 4) एनोड पिन क्रमशः IN1, IN2, IN3 और ULN2003 के IN4 के साथ जुड़े हुए हैं और LED के कैथोड जीएनसी से जुड़े हुए हैं जो LPC2148 से दालों को इंगित करना है। हम प्रदान की गई दालों के पैटर्न को नोट कर सकते हैं। पैटर्न अंत में संलग्न प्रदर्शन वीडियो में दिखाया गया है ।
स्टेपर मोटर के लिए ARM7-LPC2148 प्रोग्रामिंग
ARM7-LPC2148 प्रोग्राम करने के लिए हमें keil uVision और Flash Magic टूल की आवश्यकता है। हम माइक्रो यूएसबी पोर्ट के माध्यम से ARM7 स्टिक को प्रोग्राम करने के लिए USB केबल का उपयोग कर रहे हैं। हम Keil का उपयोग करके कोड लिखते हैं और एक हेक्स फ़ाइल बनाते हैं और फिर HEX फाइल को फ्लैश मैजिक का उपयोग करते हुए ARM7 स्टिक में लाते हैं। काइल uVision और फ्लैश मैजिक को स्थापित करने के बारे में अधिक जानने के लिए और उनका उपयोग कैसे करें लिंक का पालन करें ARM7 LPC2148 माइक्रोकंट्रोलर के साथ शुरुआत करें और इसे Keil uVision का उपयोग करके प्रोग्राम करें।
एआरएम 7 के साथ स्टेपर मोटर को नियंत्रित करने का पूरा कोड इस ट्यूटोरियल के अंत में दिया गया है, यहां हम इसके कुछ हिस्सों की व्याख्या कर रहे हैं।
1. उपयोग करने के लिए पूर्ण चरण-एक चरण पर विधि हम आदेश नीचे शामिल करने के लिए की जरूरत है। इसलिए हम प्रोग्राम में निम्नलिखित लाइन का उपयोग करते हैं
अहस्ताक्षरित चार घड़ी = {0x1,0x2,0x4,0x8}; // दक्षिणावर्त रोटेशन के लिए कमांड अहस्ताक्षरित चार anticlockwise = {0x8,0x4,0x2,0x1}; // एंटीलॉकवाइज रोटेशन के लिए कमांड
2. PORT0 पिन को आउटपुट के रूप में आरंभ करने और उन्हें LOW पर सेट करने के लिए निम्न पंक्तियों का उपयोग किया जाता है
PINSEL0 = 0x00000000; // सेटिंग PORT0 पिन IO0DIR - = 0x00000780; // सेटिंग पिन P0.7, P0.8, P0.9, P0.10 OUTPUT IO0CLR = 0x00000780 के रूप में; // L0 के रूप में P0.7, P0.8, P0.9, P0.10 पिन सेट करना
3. सेट पोर्ट पिन (P0.10 को P0.7) उच्च अनुसार दक्षिणावर्त इस का उपयोग करके आदेशों के लिए देरी से पाश
for (int j = 0; j
के लिए एक ही विरोधी घड़ी वार
for (int z = 0; z;
4. स्टेपर मोटर के रोटेशन की गति को बदलने के लिए देरी का समय बदलें
देरी (0x10000); // रोटेशन की गति (0x10000) बदलने के लिए इस मान को बदलें - पूर्ण गति (0x50000) - धीमी (0x90000) को धीमा करें-पिछले की तुलना में धीमा करें। इसलिए देरी से बढ़ने से हम रोटेशन की गति कम करते हैं।
5. एक पूर्ण रोटेशन के लिए चरणों की संख्या को नीचे दिए गए कोड के साथ बदला जा सकता है
int no_of_steps = 550; // आवश्यक मान के लिए चरणों की संख्या रोटेशन (550 एक पूर्ण रोटेशन देता है)
मेरे स्टेपर मोटर के लिए, मुझे पूर्ण रोटेशन के लिए 550 और आधे रोटेशन के लिए 225 कदम मिले। इसलिए अपनी आवश्यकताओं के अनुसार इसे बदलें।
6. इस फ़ंक्शन का उपयोग विलंब समय बनाने के लिए किया जाता है ।
शून्य विलंब (अहस्ताक्षरित int value) // देरी उत्पन्न करने के लिए फ़ंक्शन { अहस्ताक्षरित int z; for (z = 0; z;
प्रदर्शन वीडियो के साथ पूरा कोड नीचे दिया गया है।