इलेक्ट्रॉनिक्स में, सर्वो मोटर्स का उपयोग रोबोटिक्स प्रोजेक्ट्स में ज्यादातर उनकी सटीकता और आसान हैंडलिंग के कारण किया जाता है। सर्वो मोटर्स आकार में छोटे होते हैं और वे बहुत प्रभावी और ऊर्जा कुशल होते हैं। वे उच्च टोक़ प्रदान करते हैं और मोटर विनिर्देश के अनुसार वजन उठाने या धक्का देने के लिए उपयोग किया जा सकता है। इस ट्यूटोरियल में हम एसटीएम 32 एफ 103 सी 8 बोर्ड के साथ सर्वो मोटर और हाउ टू इंटरफ़ेस सर्वो के बारे में जानेंगे। एक पोटेंशियोमीटर को सर्वो मोटर की शाफ्ट, और कोण मूल्य को प्रदर्शित करने के लिए एक एलसीडी की स्थिति में अंतर करने के लिए भी हस्तक्षेप किया जाता है।
अवयव आवश्यक
- STM32F103C8 (ब्लू पिल) बोर्ड
- सर्वो मोटर (SG90)
- एलसीडी (16x2)
- तनाव नापने का यंत्र
- ब्रेड बोर्ड
- जम्पर तार
सर्किट आरेख और कनेक्शन
SMT32F103C8 पिन विवरण
में STM32F103C8, हम 10 है एडीसी पिन (PA0-PB1), और यहाँ हम के लिए केवल एक पिन (PA3) का उपयोग () analogread पोटेंशियोमीटर द्वारा मोटर के शाफ्ट स्थिति स्थापित करने के लिए। इसके अलावा STM32 (PA0, PA1, PA2, PA6, PA7, PA8, PA9, PA10, PB0, PB1, PB6, PB7, PB8, PB9) के 15 PWM पिन के बीच, एक पिन का उपयोग सर्वो को दाल प्रदान करने के लिए किया जाएगा। मोटर की पीडब्लूएम पिन (आमतौर पर यह नारंगी रंग की होती है)।
आप विस्तृत लेखों को नीचे पढ़कर PWM और ADC के बारे में अधिक जान सकते हैं:
- STM32F103C8 में ADC का उपयोग कैसे करें
- पल्स चौड़ाई मॉड्यूलेशन (PWM) STM32F103C8 में
STM32F103C8 और एलसीडी के बीच कनेक्शन
STM32F103C8 | एलसीडी |
GND | वीएसएस |
+ 5 वी | VDD |
पोटेंशियोमीटर सेंटर पिन करने के लिए | वि ० |
पीबी ० | रुपये |
GND | आरडब्ल्यू |
पीबी 1 | इ |
PB10 | डी 4 |
पीबी 11 | D5 |
PC13 | डी 6 |
PC14 | डी 7 |
+ 5 वी | ए |
GND | क |
सर्वो मोटर और STM32F103C8 के बीच संबंध
STM32F103C8 |
इमदादी |
+ 5 वी |
RED (+ 5 वी) |
PA0 |
ऑरेंज (PWM पिन) |
GND |
ब्राउन (GND) |
पोटेंशियोमीटर कनेक्शन
हमने यहां दो पोटेंशियोमीटर का उपयोग किया है
1. एलसीडी कंट्रास्ट को अलग करने के लिए दाईं ओर पोटेंशियोमीटर का उपयोग किया जाता है। इसमें तीन पिन हैं, लेफ्ट पिन + 5 वी के लिए है और राइट जीएनडी के लिए है और सेंटर पिन एलसीडी के V0 से जुड़ा है।
2. बाईं ओर पोटेंशियोमीटर का उपयोग एनालॉग इनपुट वोल्टेज को नियंत्रित करके सर्वो मोटर की शाफ्ट स्थिति को अलग करने के लिए किया जाता है, बाएं पिन में इनपुट 3.3V है और दाएं में GND और केंद्र आउटपुट STM32 के (PA3) से जुड़ा है
सर्वो मोटर के लिए STM32 प्रोग्रामिंग
हमारे पिछले ट्यूटोरियल की तरह, हमने FTDI प्रोग्रामर का उपयोग किए बिना USB पोर्ट के माध्यम से Arduino IDE के साथ STM32F103C8 को क्रमादेशित किया। हम इसे Arduino की तरह प्रोग्रामिंग कर सकते हैं। परियोजना के अंत में पूरा कोड नीचे दिया गया है।
पहले हमने सर्वो और एलसीडी फ़ंक्शंस के लिए लाइब्रेरी फ़ाइलों को शामिल किया है:
#शामिल
फिर एलसीडी डिस्प्ले के लिए पिन घोषित किया और इसे इनिशियलाइज़ किया। PWM और पोटेंशियोमीटर के लिए कुछ अन्य चर भी घोषित:
const int rs = PB0, en = PB1, d4 = PB10, d5 = PB11, d6 = PC13, d7 = PC14; लिक्विड क्रिस्टल एलसीडी (आरएस, एन, डी 4, डी 5, डी 6, डी 7); int servoPin = PA0; int potPin = PA3;
यहाँ हमने डेटाटाइप सर्वो के साथ वेरिएबल सर्वो बनाया है और इसे पहले घोषित PWM पिन से जोड़ा है।
सर्वो सर्वो; servo.attach (इमदादी);
फिर पिन PA3 से एनालॉग मान पढ़ें क्योंकि यह ADC पिन है जो एनालॉग वोल्टेज (0-3.3) को डिजिटल रूप (0-40%) में परिवर्तित करता है
analogRead (potPin);
जैसा कि डिजिटल आउटपुट 12-बिट रिज़ॉल्यूशन है, हमें डिग्री (0-170) में मान प्राप्त करने की आवश्यकता है, यह अधिकतम कोण 170 डिग्री के अनुसार एडीसी (0-4096) मान को विभाजित करता है इसलिए हम 24 के साथ विभाजित करते हैं ।
कोण = (पढ़ने / 24);
नीचे दिए गए कथन में सहायक मोटर को दिए गए कोण पर शाफ्ट को घुमाने के लिए बनाया गया है।
servo.write (कोण);
पूरा कोड नीचे दिया गया है और अच्छी तरह से टिप्पणियों द्वारा समझाया गया है।