How to control the speed of a DC motor using arduino

यदि आप arduino से किसी DC Motor की speed control करना चाहते हैं तो इस पोस्ट को ध्यान से पढ़ें speed control करने के लिए हम pwm का use करेंगे | What is PWM ?
Click here for English Version

जैसा कि मैंने आपको पिछली पोस्ट (What is L293d motor driver ?) में बताया था कि arduino से किसी motor को कैसे drive करते हैं यदि अपने वो पढ़ी और experiment किया है तो आपको ये पोस्ट बड़ी आसानी से समझ आएगी यदि आपने वो post नहीं पढ़ी तो उस पोस्ट को पहले पढ़ें और experiment करें |

What is L293d motor driver ? Run dc motor using arduino

subscribe करें ताकि new post की जानकारी आपको मिलती रहे

Enter your email address:

Delivered by FeedBurner

क्या क्या चाहिए ?

1 x arduino board

1 x DC Motor

1 x Breadboard

1 x potentiometer (10K)

1 x L293d IC

1 x battery

Circuit तैयार करें –

ये circuit पिछली Post में बने circuit जैसा ही है बस इसमें मैंने एक potentiometer को जोड़ दिया है इसी potentiometer को घुमाने पर DC Motor की speed कम या ज्यादा होगी|potentiometer की बीच वाली पिन को मैंने arduino की analog pin A0 से जोड़ा है |

DC motor speed control circuit

pwm क्या है और कैसे work करता है ?

Arduino में code upload करें  –

DC Motor की speed control करने के लिए हम pwm(Pulse Width Modulation) signal का use करेंगे जो कि analogWrite  function से होगा और इसके लिए हमें arduino की pwm pins use करनी होंगी |arduino में जो पिन pwm signal generate कर सकती हैं उनके सामने ये निशान ~ बना होता है pin 3, 5, 6, 9, 10 and 11 pwm signal generate कर सकती हैं |

// DC motor speed control arduino code
// Created by : Yogesh
// Date : 13 Dec 2017
// http://migdreem.com
// fb page : http://facebook.com/migdreem
const int sig_1 = 5;
const int sig_2 = 6;
const int a_pin = A0;
int pot_val = 0;
int motor_speed = 0;

void setup() {
  pinMode(sig_1, OUTPUT);
  pinMode(sig_2, OUTPUT);
}
void loop() {
  pot_val = analogRead(a_pin);
  motor_speed = map(pot_val, 0, 1023, 0, 255);
  analogWrite(sig_1, motor_speed);
  digitalWrite(sig_2, LOW);
}

Code को समझें –

const int sig_1 = 5;
const int sig_2 = 6;
const int a_pin = A0;
int pot_val = 0;
int motor_speed = 0;

सबसे पहले हमने 5 variables माने हैं sig_1, sig_2, a_pin, pot_val, motor_speed. इनमें जिनकी value कभी change नहीं होगी उनको हमने const int, type का और जिनकी value change होगी उनको int, type का माना है |

5 और 6 pin का use इसलिए किया है क्योंकि ये pwm pins हैं |

void setup() {
  pinMode(sig_1, OUTPUT);
  pinMode(sig_2, OUTPUT);
}

sig_1, sig_2 को OUTPUT में set किया|

  pot_val = analogRead(a_pin);
  motor_speed = map(pot_val, 0, 1023, 0, 255);

potentiometer की value read करने के लिए analoRead function का use किया और उसे pot_val नाम के variable में store किया | अब चूंकि ये analog value (0 – 1023) है इसलिए इसे हमें 8 bit में convert करना पडेगा इसके लिए हमने map function का use कर motor_speed variable में store किया |

  analogWrite(sig_1, motor_speed);
  digitalWrite(sig_2, LOW);

अब  sig_1 से हमने pwm  signal analogWrite का use कर generate किया और sig_2 को Low कर दिया | यदि आप sig_2 से pwm signal generate करें और sig_1 को Low कर दें तो मोटर उल्टी घूमने लगेगी |

यदि कोई परेशानी हो तो comment में लिखें और अच्छा लगा हो तो Subscribe जरूर करें |

§ Thank You ! §

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *

  • MIGDREEM.COM