Arduino - डीसी मोटर
इस अध्याय में, हम Arduino Board (UNO) के साथ विभिन्न प्रकार के मोटर्स को इंटरफेस करेंगे और आपको दिखाएंगे कि मोटर को कैसे कनेक्ट करें और इसे अपने बोर्ड से ड्राइव करें।
तीन अलग-अलग प्रकार की मोटरें हैं -
- डीसी यंत्र
- सर्वो मोटर
- स्टेपर मोटर
एक डीसी मोटर (डायरेक्ट करंट मोटर) मोटर का सबसे सामान्य प्रकार है। डीसी मोटर्स में आम तौर पर सिर्फ दो लीड होते हैं, एक सकारात्मक और एक नकारात्मक। यदि आप इन दोनों लीड्स को सीधे बैटरी से जोड़ते हैं, तो मोटर घूम जाएगी। यदि आप लीड स्विच करते हैं, तो मोटर विपरीत दिशा में घूमेगा।
Warning- सीधे Arduino बोर्ड पिन से मोटर न चलाएं। इससे बोर्ड को नुकसान हो सकता है। ड्राइवर सर्किट या आईसी का उपयोग करें।
हम इस अध्याय को तीन भागों में विभाजित करेंगे -
- बस अपनी मोटर स्पिन करें
- मोटर की गति को नियंत्रित करें
- डीसी मोटर के स्पिन की दिशा को नियंत्रित करें
अवयव आवश्यक
आपको निम्नलिखित घटकों की आवश्यकता होगी -
- 1x Arduino UNO बोर्ड
- 1x PN2222 ट्रांजिस्टर
- 1x छोटा 6V डीसी मोटर
- 1x 1N4001 डायोड
- 1x 270। रेसिस्टर
प्रक्रिया
सर्किट आरेख का पालन करें और नीचे दिए गए चित्र में दिखाए अनुसार कनेक्शन बनाएं।
एहतियात
संबंध बनाते समय निम्नलिखित सावधानियां बरतें।
सबसे पहले, सुनिश्चित करें कि ट्रांजिस्टर सही तरीके से जुड़ा हुआ है। ट्रांजिस्टर के सपाट हिस्से को अरुडिनो बोर्ड का सामना करना चाहिए जैसा कि व्यवस्था में दिखाया गया है।
दूसरा, डायोड का धारीदार अंत छवि में दिखाए गए व्यवस्था के अनुसार + 5 वी पावर लाइन की ओर होना चाहिए।
स्पिन ControlArduino कोड
int motorPin = 3;
void setup() {
}
void loop() {
digitalWrite(motorPin, HIGH);
}
नोट करने के लिए कोड
ट्रांजिस्टर एक स्विच की तरह काम करता है, मोटर को शक्ति को नियंत्रित करता है। Arduino pin 3 का उपयोग ट्रांजिस्टर को चालू और बंद करने के लिए किया जाता है और इसे स्केच में 'मोटरपिन' नाम दिया जाता है।
परिणाम
जब Arduino पिन नंबर 3 उच्च हो जाता है तो मोटर पूरी गति से घूमेगा।
मोटर गति नियंत्रण
निम्नलिखित एक डीसी मोटर का योजनाबद्ध आरेख है, जो Arduino बोर्ड से जुड़ा है।
Arduino कोड
int motorPin = 9;
void setup() {
pinMode(motorPin, OUTPUT);
Serial.begin(9600);
while (! Serial);
Serial.println("Speed 0 to 255");
}
void loop() {
if (Serial.available()) {
int speed = Serial.parseInt();
if (speed >= 0 && speed <= 255) {
analogWrite(motorPin, speed);
}
}
}
नोट करने के लिए कोड
ट्रांजिस्टर एक स्विच की तरह काम करता है, मोटर की शक्ति को नियंत्रित करता है। Arduino pin 3 का उपयोग ट्रांजिस्टर को चालू और बंद करने के लिए किया जाता है और इसे स्केच में 'मोटरपिन' नाम दिया जाता है।
जब कार्यक्रम शुरू होता है, तो यह आपको मोटर की गति को नियंत्रित करने के लिए मान देने के लिए प्रेरित करता है। आपको सीरियल मॉनिटर में 0 और 255 के बीच एक मान दर्ज करना होगा।
। लूप ’फ़ंक्शन में, सीरियल I Serial.parseInt’ कमांड का उपयोग सीरियल मॉनिटर में पाठ के रूप में दर्ज संख्या को पढ़ने और इसे function int ’में बदलने के लिए किया जाता है। आप यहां कोई भी नंबर टाइप कर सकते हैं। अगली पंक्ति में 'अगर' स्टेटमेंट बस इस नंबर के साथ एक एनालॉग लिखता है, अगर संख्या 0 और 255 के बीच है।
परिणाम
डीसी मोटर सीरियल पोर्ट के माध्यम से प्राप्त मूल्य (0 से 250) के अनुसार विभिन्न गति के साथ स्पिन करेगा।
स्पिन दिशा नियंत्रण
डीसी मोटर के स्पिन की दिशा को नियंत्रित करने के लिए, लीड को इंटरचेंज किए बिना, आप एक सर्किट का उपयोग कर सकते हैं जिसे ए कहा जाता है H-Bridge। एच-ब्रिज एक इलेक्ट्रॉनिक सर्किट है जो मोटर को दोनों दिशाओं में चला सकता है। एच-पुलों का उपयोग कई अलग-अलग अनुप्रयोगों में किया जाता है। सबसे आम एप्लिकेशन में से एक रोबोट में मोटर्स को नियंत्रित करना है। इसे एच-ब्रिज कहा जाता है क्योंकि यह इस तरह से जुड़े चार ट्रांजिस्टर का उपयोग करता है कि योजनाबद्ध आरेख "एच" की तरह दिखता है।
हम यहां L298 H-Bridge IC का उपयोग करेंगे। L298 डीसी मोटर्स और स्टेपर मोटर्स की गति और दिशा को नियंत्रित कर सकता है, और एक साथ दो मोटर्स को नियंत्रित कर सकता है। इसकी वर्तमान रेटिंग प्रत्येक मोटर के लिए 2A है। इन धाराओं पर, हालांकि, आपको हीट सिंक का उपयोग करने की आवश्यकता होगी।
अवयव आवश्यक
आपको निम्नलिखित घटकों की आवश्यकता होगी -
- 1 × L298 पुल IC
- 1 × डीसी मोटर
- 1 × Arduino UNO
- 1 × ब्रेडबोर्ड
- 10 × जम्पर तार
प्रक्रिया
Arduino Uno बोर्ड में DC मोटर इंटरफ़ेस का योजनाबद्ध आरेख निम्नलिखित है।
उपरोक्त आरेख दिखाता है कि दो मोटर्स को नियंत्रित करने के लिए L298 आईसी को कैसे कनेक्ट किया जाए। प्रत्येक मोटर के लिए तीन इनपुट पिन होते हैं, Input1 (IN1), Input2 (IN2), और Motor1 और Input3, Input4 के लिए Enable1 (EN1) और Motor2 के लिए Enable2।
चूंकि हम इस उदाहरण में केवल एक मोटर को नियंत्रित कर रहे हैं, हम Ar29ino को IN1 (पिन 5), IN2 (पिन 7) और L298 IC के Enable1 (पिन 6) से जोड़ेंगे। पिन 5 और 7 डिजिटल हैं, अर्थात ऑन या ऑफ इनपुट, जबकि पिन 6 को मोटर की गति को नियंत्रित करने के लिए पल्स-चौड़ाई संग्राहक (PWM) सिग्नल की आवश्यकता होती है।
निम्न तालिका से पता चलता है कि IN1 और IN2 के डिजिटल मूल्यों के आधार पर मोटर किस दिशा में मुड़ जाएगी।
1 में | दो में | मोटर व्यवहार |
---|---|---|
ब्रेक | ||
1 | आगे | |
1 | पिछड़े | |
1 | 1 | ब्रेक |
IC L298 का पिन IN1 Arduino के 8 पिन से जुड़ा है जबकि IN2 पिन 9 से जुड़ा है। Arduino के ये दो डिजिटल पिन मोटर की दिशा को नियंत्रित करते हैं। IC का EN A पिन, Arduino के PWM पिन 2 से जुड़ा है। यह मोटर की गति को नियंत्रित करेगा।
Arduino पिन 8 और 9 के मानों को सेट करने के लिए, हमने digitalWrite () फ़ंक्शन का उपयोग किया है, और पिन 2 का मान सेट करने के लिए, हमें analogWrite () फ़ंक्शन का उपयोग करना होगा।
कनेक्शन चरण
- 5V और IC के ग्राउंड को क्रमशः 5V और Arduino के ग्राउंड से कनेक्ट करें।
- आईसी के 2 और 3 को मोटर से कनेक्ट करें।
- Arduino के 8 को पिन करने के लिए IC के IN1 को कनेक्ट करें।
- Arduino के 9 को पिन करने के लिए IC के IN2 को कनेक्ट करें।
- Arduino के 2 पिन करने के लिए IC का EN1 कनेक्ट करें।
- सेंड को IC के एक पिन को जमीन से कनेक्ट करें।
- Arduino USB केबल का उपयोग करके Arduino कनेक्ट करें और Arduino IDE सॉफ़्टवेयर का उपयोग करके Arduino पर प्रोग्राम अपलोड करें।
- बिजली की आपूर्ति, बैटरी, या यूएसबी केबल का उपयोग करके Arduino बोर्ड को शक्ति प्रदान करें।
Arduino कोड
const int pwm = 2 ; //initializing pin 2 as pwm
const int in_1 = 8 ;
const int in_2 = 9 ;
//For providing logic to L298 IC to choose the direction of the DC motor
void setup() {
pinMode(pwm,OUTPUT) ; //we have to set PWM pin as output
pinMode(in_1,OUTPUT) ; //Logic pins are also set as output
pinMode(in_2,OUTPUT) ;
}
void loop() {
//For Clock wise motion , in_1 = High , in_2 = Low
digitalWrite(in_1,HIGH) ;
digitalWrite(in_2,LOW) ;
analogWrite(pwm,255) ;
/* setting pwm of the motor to 255 we can change the speed of rotation
by changing pwm input but we are only using arduino so we are using highest
value to driver the motor */
//Clockwise for 3 secs
delay(3000) ;
//For brake
digitalWrite(in_1,HIGH) ;
digitalWrite(in_2,HIGH) ;
delay(1000) ;
//For Anti Clock-wise motion - IN_1 = LOW , IN_2 = HIGH
digitalWrite(in_1,LOW) ;
digitalWrite(in_2,HIGH) ;
delay(3000) ;
//For brake
digitalWrite(in_1,HIGH) ;
digitalWrite(in_2,HIGH) ;
delay(1000) ;
}
परिणाम
मोटर पहले 3 सेकंड के लिए क्लॉकवाइज़ (CW) दिशा में और फिर 3 सेकंड के लिए काउंटर-क्लॉकवाइज़ (CCW) चलाएगा।