- सामग्री की आवश्यकता
- स्टेपर मोटर (28BYJ-48)
- ULN2003 मोटर चालक आईसी
- सर्किट आरेख और कनेक्शन
- STM32F103C8 के साथ स्टीपर मोटर को घुमाएगी
- स्टेपर मोटर के लिए प्रगतिशील STM32
स्टेपर मोटर ब्रशलेस डीसी मोटर है, जिसे छोटे कोणों में घुमाया जा सकता है, इन कोणों को स्टेप्स कहा जाता है। आम तौर पर स्टेपर मोटर 360 डिग्री रोटेशन को पूरा करने के लिए 200 चरणों का उपयोग करती है, इसका मतलब है कि प्रति चरण 1.8 डिग्री घूमती है। स्टेपर मोटर का उपयोग कई उपकरणों में किया जाता है, जिन्हें रोबोट, एंटेना, हार्ड ड्राइव आदि जैसे सटीक घूर्णी आंदोलन की आवश्यकता होती है। हम इसे उचित निर्देश देकर किसी भी विशेष कोण पर स्टेपर मोटर को घुमा सकते हैं। मुख्य रूप से दो प्रकार के स्टेपर मोटर्स उपलब्ध हैं, यूनिपोलर और बाइपोलर । एकध्रुवीय संचालित करने के लिए आसान है, नियंत्रण और भी आसान है। यहाँ इस ट्यूटोरियल में हम STM32F103C8 (ब्लू पिल) बोर्ड के साथ स्टेपर मोटर को बदल रहे हैं।
सामग्री की आवश्यकता
- STM32F103C8 (नीली गोली)
- स्टेपर मोटर (28BYJ-48)
- ULN2003 आईसी
- पोटेंशियोमीटर 10 कि
- ब्रेड बोर्ड
- जम्पर के तार
स्टेपर मोटर (28BYJ-48)
28BYJ-48 एक यूनिपोलर स्टेपर मोटर है जिसे 5V आपूर्ति की आवश्यकता होती है। मोटर में 4 कुंडल एकध्रुवीय व्यवस्था है और प्रत्येक कुंडल + 5 वी के लिए रेट किया गया है, इसलिए किसी भी माइक्रोकंट्रोलर जैसे कि अरुडुइनो, रास्पबेरी पाई, एसटीएम 32 के साथ इसे नियंत्रित करना अपेक्षाकृत आसान है। लेकिन हमें इसे चलाने के लिए UL2002003 जैसे मोटर ड्राइव आईसी की आवश्यकता है, क्योंकि स्टेपर मोटर्स उच्च वर्तमान का उपभोग करें और यह माइक्रोकंट्रोलर्स को नुकसान पहुंचा सकता है।
नोटिस करने के लिए एक और महत्वपूर्ण डेटा स्ट्राइड एंगल: 5.625 ° / 64 है। इसका मतलब यह है कि जब 8-चरण अनुक्रम में काम करने वाला मोटर प्रत्येक चरण के लिए 5.625 डिग्री ले जाएगा और एक पूर्ण घुमाव को पूरा करने के लिए 64 कदम (5.625 * 64 = 360) लगेगा। अन्य विनिर्देश नीचे दिए गए डेटाशीट में दिए गए हैं:
इसके अलावा अन्य Microcontrollers के साथ Stepper मोटर के साथ इंटरफेस की जाँच करें:
- Arduino Uno के साथ Stepper Motor का सामना करना पड़ रहा है
- रास्पबेरी पाई के साथ स्टेपर मोटर नियंत्रण
- 8051 माइक्रोकंट्रोलर के साथ स्टेपर मोटर इंटरफेसिंग
- PIC Microcontroller के साथ Stepper मोटर Interfacing
स्टेपर मोटर को बिना किसी माइक्रोकंट्रोलर के भी नियंत्रित किया जा सकता है, इस स्टेपर मोटर ड्राइवर सर्किट को देखें।
ULN2003 मोटर चालक आईसी
इसका उपयोग माइक्रोकंट्रोलर से प्राप्त दालों के अनुसार मोटर को चलाने के लिए किया जाता है। नीचे ULN2003 का चित्र चित्र है:
पिंस (IN1 से IN7) इनपुट पिन हैं और (OUT 1 से OUT 7) संबंधित आउटपुट पिन हैं। COM को आउटपुट डिवाइस के लिए आवश्यक सकारात्मक स्रोत वोल्टेज दिया जाता है। सर्किट डायग्राम अनुभाग में स्टेपर मोटर के आगे कनेक्शन नीचे दिए गए हैं।
सर्किट आरेख और कनेक्शन
नीचे सर्किट आरेख के लिए कनेक्शन स्पष्टीकरण है।
STM32F103C8 (ब्लू पिल)
जैसा कि हम नीचे दिए गए आरेख में देख सकते हैं, पीडब्लूएम पिन को तरंग प्रारूप (~) में दर्शाया गया है, 15 ऐसे पिन हैं जिनका उपयोग पल्स आउटपुट से स्टेपर मोटर के लिए किया जा सकता है। हमें केवल चार पिन चाहिए, हम उपयोग करते हैं (PA0 toPA3)।
ULM2003 मोटर चालक आईसी के साथ STM32F103C8
पिंस (PA0 से PA3) को आउटपुट पिन माना जाता है जो ULN2003 IC के इनपुट पिन (IN1-IN4) से जुड़े होते हैं।
STM32F103C8 का पिन |
ULN2003 आईसी के पिन |
PA0 |
1 में |
PA1 |
दो में |
PA2 |
IN3 |
PA3 |
IN4 |
5 वी |
कॉम |
GND |
GND |
ULN2003 आईसी स्टेपर मोटर (28BYJ-48) के साथ
ULN2003 IC का आउटपुट पिन (OUT1-OUT4) स्टेपर मोटर्स पिंस (ऑरेंज, येलो, पिंक और ब्लू) से जुड़ा है।
ULN2003 आईसी के पिन |
पाइप मोटर का पिन |
OUT1 |
संतरा |
OUT2 |
पीला |
OUT3 |
गुलाबी |
OUT4 |
नीला |
कॉम |
लाल |
STM32F103C8 पोटेंशियोमीटर के साथ
एक पोटेंशियोमीटर का उपयोग स्टेपर मोटर की गति निर्धारित करने के लिए किया जाता है।
तनाव नापने का यंत्र |
STM32F103C8 |
LEFT (INPUT) |
३.३ |
केंद्र (बाहर) |
PA4 |
राइट (GND) |
GND |
STM32F103C8 के साथ स्टीपर मोटर को घुमाएगी
स्टेपर मोटर के संचालन के लिए कुछ कदम नीचे दिए गए हैं:
- अलग-अलग पोटेंशियोमीटर द्वारा स्टेपर मोटर की गति निर्धारित करें।
- फिर ARDUINO IDE (टूल-> सीरियल मॉनिटर) या CTRL + SHIFT + M में मौजूद SERIAL MONITER के माध्यम से मैन्युअल रूप से दक्षिणावर्त (+ मान) या एंटीक्लॉकवाइज़ दिशा (-वेल्यूज़) में रोटेशन के लिए स्टेप्स दर्ज करें।
- धारावाहिक मॉनिटर में दिए गए इनपुट मूल्य के अनुसार, रोटेशन के कुछ चरण स्टेपर मोटर में होते हैं।
उदाहरण के लिए
सीरियल मॉनीटर में मूल्य दिया जाता है |
ROTATION |
2048 |
(360) CLK WISE |
1024 है |
(180) सीएलके वाइज |
512 |
(90) CLK WISE |
-2048 है |
(-360) ANTI CLK WISE |
-1024 |
(-180) ANTI CLK WISE |
-512 |
(-90) ANTI CLK WISE |
स्टेपर मोटर के लिए प्रगतिशील STM32
पिछले ट्यूटोरियल की तरह, हमने FTM प्रोग्रामर का उपयोग किए बिना USB पोर्ट के माध्यम से Arduino IDE के साथ STM32F103C8 प्रोग्राम किया। Arduino IDE के साथ STM32 प्रोग्रामिंग के बारे में जानने के लिए लिंक का अनुसरण करें। हम इसे Arduino की तरह प्रोग्रामिंग कर सकते हैं। प्रोजेक्ट के अंत में पूरा कोड दिया गया है।
पहले हमें स्टेपर लाइब्रेरी की फाइलों को शामिल करना होगा #include
#शामिल
तब हम परिभाषित करते हैं कि नहीं। रोटेशन पर पूरा करने के लिए कदम, यहाँ हम 32 का उपयोग करते हैं क्योंकि हम पूर्ण-चरण (4 चरण-अनुक्रम) का उपयोग कर रहे हैं (360/32 = 11.25 डिग्री)। तो एक कदम के लिए, शाफ्ट 11.25 डिग्री है जो समतल कोण है। 4 चरण अनुक्रम में, एक पूर्ण रोटेशन के लिए 4 चरणों की आवश्यकता होती है।
#define STEPS 32
हम हाफ स्टेप मोड का भी उपयोग कर सकते हैं जहां 8 चरण अनुक्रम (360/64 = 5.625) स्ट्राइड कोण है।
क्रांति प्रति चरण = 360 / STEP ANGLE
जैसा कि हम गति निर्धारित कर रहे हैं हमें PA4 से एनालॉग मूल्य लेना चाहिए जो कि पोटेंशियोमीटर से जुड़ा है। इसलिए हमें उसके लिए पिन की घोषणा करनी चाहिए
const int speedm = PA4
फिर हमने पूर्णांक प्रकार के चर में उन मानों को संग्रहीत करके एनालॉग मूल्य को डिजिटल में बदल दिया है, उसके बाद हमें गति सेट करने के लिए एडीसी मूल्यों को मैप करना होगा ताकि हम नीचे दिए गए कथन का उपयोग करें। ADM STM32 के साथ ADC का उपयोग करने के बारे में यहाँ और जानें।
int adc = analogRead (speedm); int result = map (adc , 0, 4096, 1, 1023);
गति निर्धारित करने के लिए, हम stepper.setSpeed (परिणाम) का उपयोग करते हैं ; हमारे पास (1-1023) की गति सीमा है।
मोटर से जुड़े पिन सेट करने के लिए हमें नीचे की तरह उदाहरण बनाना चाहिए। इन चरणों में सावधान रहें क्योंकि उनमें से अधिकांश इस पैटर्न में एक गलती करते हैं। वे गलत पैटर्न देते हैं और इसकी वजह से कॉइल्स को उर्जावान नहीं बनाया जा सकता है।
स्टेपर स्टेपर (STEPS, PA0, PA2, PA1, PA3);
सीरियल मॉनीटर से चरणों का मान प्राप्त करने के लिए नीचे दिए गए कथन का उपयोग किया जाता है। उदाहरण के लिए हमें एक पूर्ण रोटेशन (32 * 64 = 2048) के लिए 2048 मानों की आवश्यकता है जो 64 है गियर अनुपात और 32 एक रोटेशन के लिए आधा चरण अनुक्रम होगा।
घुमाना = सिरियल.परसेन्ट ();
नीचे दिए गए कोड का उपयोग उदाहरण को कॉल करने और मोटर को चलाने के लिए किया जाता है। यदि घूमने का मूल्य 1 है तो यह फ़ंक्शन स्टेपर को एक बार कॉल करता है और एक चाल चलता है।
stepper.step (घुमाना);
प्रदर्शन वीडियो के साथ पूरा कोड नीचे दिया गया है। इसके अलावा सभी स्टेपर मोटर से संबंधित परियोजनाओं की जांच करें, जिसमें विभिन्न अन्य माइक्रोकंट्रोलर के साथ इंटरफेस है