Arduino के साथ DC मोटर की गति को कैसे नियंत्रित करें

जॉन नुसी द्वारा

अपने डीसी मोटर पर अधिक नियंत्रण की आवश्यकता है? आप फ्लाई पर मोटर का पूरा नियंत्रण देने के लिए डीसी मोटर में कुछ इनपुट डालने के लिए Arduino के लिए MotorControl स्केच का उपयोग कर सकते हैं।



मोटरकंट्रोल स्केच

जब भी आपको अपनी मोटर की गति को नियंत्रित करने की आवश्यकता हो, आपको अपने सर्किट में एक पोटेंशियोमीटर जोड़ने की आवश्यकता होती है।



आप की जरूरत है:

अपने पोटेंशियोमीटर को रखने के लिए अपने ब्रेडबोर्ड पर एक स्थान खोजें। पोटेंशियोमीटर का केंद्रीय पिन एक जंप वायर का उपयोग करके वापस पिन 9 से जुड़ा होता है, और शेष दो पिन एक तरफ 5V और दूसरी तरफ GND से जुड़े होते हैं।

छवि0.jpg

5V और GND दोनों तरफ हो सकते हैं, लेकिन उन्हें स्विच करने से वह मान उल्टा हो जाएगा जो पोटेंशियोमीटर Arduino को भेजता है। यद्यपि पोटेंशियोमीटर मोटर के समान शक्ति और जमीन का उपयोग करता है, ध्यान दें कि वे अलग सर्किट हैं जो दोनों Arduino के माध्यम से संचार करते हैं।

image1.jpg

सर्किट बनाने के बाद, एक नया Arduino स्केच खोलें और इसे किसी अन्य यादगार नाम से सहेजें, जैसे कि myMotorControl। फिर निम्न कोड टाइप करें।

  int  potPin = A0;  int  motorPin = 9;  int  potValue = 0;  int  motorValue = 0; void setup() { Serial.begin(9600); } void loop() { potValue =  analogRead  (potPin); motorValue =  map  (potValue, 0, 1023, 0, 255);  analogWrite  (motorPin, motorValue); Serial.print('potentiometer = ' );  Serial.print  (potValue); Serial.print('t motor = ');  Serial.println  (motorValue);  delay  (2); }

स्केच टाइप करने के बाद, इसे सेव करें और किसी भी सिंटैक्स त्रुटियों को उजागर करने के लिए कंपाइल बटन पर क्लिक करें। .

यदि स्केच सही ढंग से संकलित होता है, तो स्केच को अपने बोर्ड पर अपलोड करने के लिए अपलोड पर क्लिक करें। जब यह अपलोड हो जाता है, तो आपको पोटेंशियोमीटर का उपयोग करके अपनी मोटर को नियंत्रित करने में सक्षम होना चाहिए। पोटेंशियोमीटर को एक दिशा में घुमाने से मोटर की गति तेज हो जाती है; इसे दूसरी तरफ मोड़ने से यह धीमा हो जाता है।

मोटरकंट्रोल स्केच ब्रेकडाउन

यह स्केच AnalogInOutSerial स्केच पर एक भिन्नता है और सर्किट पर आप क्या नियंत्रित और निगरानी कर रहे हैं यह बेहतर ढंग से इंगित करने के लिए कुछ नाम परिवर्तनों के साथ ठीक उसी तरह काम करता है।

केटामाइन किसके लिए प्रयोग किया जाता है

हमेशा की तरह, आप स्केच में उपयोग किए गए विभिन्न चर घोषित करते हैं। आप पोटेंशियोमीटर पिन असाइन करने के लिए पॉटपिन का उपयोग करते हैं और मोटर को सिग्नल भेजने के लिए मोटरपिन का उपयोग करते हैं। potValue चर का उपयोग पोटेंशियोमीटर के कच्चे मान को संग्रहीत करने के लिए किया जाता है और motorValue चर उस परिवर्तित मान को संग्रहीत करता है जिसे आप मोटर को स्विच करने के लिए ट्रांजिस्टर में आउटपुट करना चाहते हैं।

  int  potPin = A0;  int  motorPin = 9;  int  potValue = 0;  int  motorValue = 0;

MotorControl स्केच को कैसे ट्वीक करें

आप पा सकते हैं कि एक न्यूनतम गति है जिसके बाद मोटर बस गुनगुनाएगी। यह ऐसा इसलिए करता है क्योंकि इसमें घूमने की पर्याप्त शक्ति नहीं है। MotorControl स्केच का उपयोग करके मोटर को भेजे गए मानों की निगरानी करके, आप मोटर को चालू करने और अनुकूलित करने के लिए मोटर का न्यूनतम मान पा सकते हैंमोटर वैल्यूमोटर को उसकी वास्तविक सीमा के भीतर मोड़ने के लिए।

range की सीमा ज्ञात करने के लिएमोटर वैल्यू, इन चरणों का पालन करें:

  1. मोटरकंट्रोल स्केच अपलोड होने के साथ, अपनी Arduino विंडो के शीर्ष दाईं ओर सीरियल मॉनिटर बटन पर क्लिक करें।

    सीरियल मॉनिटर विंडो आपको पोटेंशियोमीटर मान और उसके बाद मोटर को भेजे जाने वाले आउटपुट मान को इस तरह से दिखाएगी:

    पोटेंशियोमीटर = 1023 मोटर = 255

    जैसे ही आप पोटेंशियोमीटर घुमाते हैं, ये मान एक लंबी सूची में प्रदर्शित होते हैं और अपडेट होते हैं। यदि आप सूची को नीचे स्क्रॉल करते हुए नहीं देखते हैं, तो सुनिश्चित करें कि ऑटोस्क्रॉल विकल्प चुना गया है।

  2. अपने पोटेंशियोमीटर को 0 के मान को पढ़ने से शुरू करते हुए, अपने पोटेंशियोमीटर को बहुत धीरे-धीरे घुमाएं जब तक कि गुनगुनाहट बंद न हो जाए और मोटर घूमने लगे।

    वैलियम और ज़ानाक्स में क्या अंतर है
  3. इस बिंदु पर प्रदर्शित मूल्य को नोट करें।

  4. एक का प्रयोग करेंअगरमोटर को गति बदलने के लिए कहने के लिए कथन केवल तभी होता है जब मान मोटर को घुमाने के लिए आवश्यक न्यूनतम गति से अधिक हो, जैसा कि निम्नानुसार है:

    (सेवा मेरे)। अपने कोड का वह भाग ढूंढें जो लिखता हैमोटर वैल्यूमोटर को:

      analogWrite  (motorPin, motorValue);

    (बी)। इसे निम्नलिखित कोड के साथ बदलें:

      if  (motorValue > yourValue) {      analogWrite  (motorPin, motorValue); }  else  {      digitalWrite  (motorPin, LOW); }
  5. अब बदलेंआपका मूल्यजिस नंबर से आपने नोट किया है।

    यदि मानमोटर वैल्यूइससे अधिक है, मोटर गति करता है। इससे कम होने पर पिन लिखा होता हैकमताकि यह पूरी तरह बंद हो जाए। आप भी टाइप कर सकते हैंएनालॉगराइट (मोटरपिन, 0)एक ही काम को पूरा करने के लिए। इस तरह के छोटे अनुकूलन आपके प्रोजेक्ट को सुचारू रूप से चलाने में मदद कर सकते हैं, बिना किसी व्यर्थ गति या मूल्यों के।

दिलचस्प लेख