DC Motor Control Using an H-Bridge

DC Motor Control Using an H-Bridge

ဒီ Project မွာ H-Bridge IC ကို သုံးၿပီး DC Motor ကို ဘယ္လို Control လုပ္မလဲ ဆိုတဲ့ အေၾကာင္းကို ေဆြးေႏြးသြားပါမယ္။

DC Motor ကိုု Forward and Reverse Direction ႏွစ္မ်ိဳးလုံးသုံးလို႔ရပါတယ္။ Reverse Direction အေနနဲ႔ သုံးဖို႔ အတြက္က DC Motor ကိုု Current Direction ကိုေျပာင္းျပန္ေပးၿပီး သုံးနိုင္ပါတယ္။ အလြယ္ကူဆုံးနည္းကေတာ့ H-Bridge Motor ကို သုံးျခင္းပါ။ Texas Instruments L293NE (သို႔) Texas Instruments SN754410ကိုု သုံးၿပီး DC Motor ကို Control လုပ္နိုင္ပါတယ္။

လိုအပ္ေသာ ပစၥည္းမ်ား

(၁) Breadboard

(၂) 22-AWG ဝါယာႀကိဳး

(၃) Arduino UNO

(၄) LED Diodes

(၅) 10KOhm resistors

(၆) ခလုပ္တစ္ခု (Switch)

(၇) L293NE or SN754410 IC

(၈) 12V Power Supply

(၉) DC Motor တစ္လုံး

dc_motor

တကယ္ေတာ့ L293NE/SN754410 IC ေတြဟာ အေျခခံ အက်ဆုံး IC အမ်ိဳးအစားေတြပါ။ IC တစ္လုံးထဲမွာ Bridge ႏွစ္ခုပါတဲ့ အတြက္ Motor ႏွစ္ခုကို တၿပိဳင္ထဲ သုံးနိုင္ပါတယ္။ 1 Ampere Motor (4.5V to 36V) ေတြ အထိ Drive လုပ္နိုင္တယ္။ H-Bridge IC က Low Voltage Motor Drive အတြက္ပဲ အဆင္ေျပတာပါ။ High Voltage Motor ေတြအတြက္ေတာ့ အဆင္မေျပပါဘူး။

H-Bridge IC Datasheet မွာ Motor ကို ဘယ္လို Control လုပ္နိုင္သလဲဆိုတာကို ပုံနဲ႔ တကြရွင္းျပထားပါတယ္။ Circuit Design ကို နားလည္ခ်င္တယ္ဆိုရင္ေတာ့ Datasheet ေတြကို နားလည္ေအာင္ဖတ္ေစခ်င္ပါတယ္။

hbridgeic

 

l293d_blockdiagram

H-Bridge IC Pin နဲ႔ အလုပ္လုပ္ပုံေတြကေတာ့ ေအာက္ပါအတိုင္းျဖစ္ပါတယ္။

  • Pin 1 (1,2EN) enables and disables our motor whether it is give HIGH or LOW
  • Pin 2 (1A) is a logic pin for our motor (input is either HIGH or LOW)
  • Pin 3 (1Y) is for one of the motor terminals
  • Pin 4-5 are for ground
  • Pin 6 (2Y) is for the other motor terminal
  • Pin 7 (2A) is a logic pin for our motor (input is either HIGH or LOW)
  • Pin 8 (VCC2) is the power supply for our motor, this should be given the rated voltage of your motor
  • Pin 9-11 are unconnected as you are only using one motor in this lab
  • Pin 12-13 are for ground
  • Pin 14-15 are unconnected
  • Pin 16 (VCC1) is connected to 5V

H-Bridge Logic Table မွာ Motor ကို Left and Right ဘယ္လိုေျပာင္းနိုင္မလဲ ေျပာထားပါတယ္။ EN Pin က HIGH ျဖစ္ေနၿပီး 1A နဲ႔ 2A PIN ေတြကိုု LOW နဲ႔ HIGH ေပးထားရင္ Right Direction ျဖစ္ၿပီးေတာ့ EN Pin က HIGH ျဖစ္ေနၿပီး 1A နဲ႔ 2A PIN ေတြကို HIGH နဲ႔ LOW ေပးထားရင္ Left Direction ျဖစ္ပါတယ္။

Motor ကို ေရြးခ်ယ္တဲ့ေနရာမွာ 5V, 500mA Motor ျဖစ္မယ္ဆိုရင္ေတာ့ Arduino USB က 5V နဲ႔ပဲ အဆင္ေျပပါတယ္။ ဒီထက္ Voltage နဲ႔ Current မ်ားတဲ့ Motor ျဖစ္ရင္ေတာ့ External Power Supply လိုအပ္ပါတယ္။

အကယ္၍ Motor ON ထားတဲ့အခ်ိန္မွာ Arduino က Reset ျပန္ျပန္က်ေနရင္ Power Supply နဲ႔ GND ၾကားမွာ Decoupling Capacitor တစ္လုံးေလာက္ထည့္ပါ။ Power Supply မၿငိမ္လို႔ ျဖစ္တာပါ။ တန္ဖိုးကေတာ့ 10uF သို႔ 100uF သုံးပါ။

 

dcmotor_bb2

 

Coding

 

 

အေပၚက Coding စမ္းသပ္ၿပီးလို႔ အလုပ္လုပ္ၿပီ ဆိုရင္ analogWrite() function ကို စမ္းသပ္ေစခ်င္ပါတယ္။ Motor Enable Pin ကို analogWrite() ကို သုံးၿပီး PWM (Pulse Width Modulation) နဲ႔ စမ္းသပ္မယ္ဆိုရင္ Motor Speed ကို ေျပာင္းလဲနိုင္ေၾကာင္းသိပါလိမ့္မယ္။