Tuesday, August 11, 2015

Homemade H-Bridge Motor Driver for Arduino Robots.

Homemade H-Bridge Motor Driver for Arduino Robots.



අද ලිපියෙන් බලමු කොහොමද Arduino භාවිතයෙන් DC Motor එකක් drive කරන්නේ කියල.

 
සරල ධාරා මෝටරයක් Arduino එකට කෙලින්ම සම්බන්ධ කරන්නේ නැහැ. හේතුව තමයි Arduino එක තුල භාවිතා වෙන්නේ 5V විභව අන්තරයක් සහිත සාමාන්‍යයෙන් අඩු ඇම්පියර් ප්‍රමාණයක විදුලියක්. නමුත් සමහර අවස්තා වලදී අපිට 12V වැනි විදුලියක් අවශ්‍ය මෝටර් ධාවනය කිරීමට අවශ්‍ය වෙනවා. මේ සදහා කෙලින්ම Arduino හා සම්බන්ධ කළහොත් අඩු ධාරාවක් ලැබීම නිසා මොටරයේ කාර්යක්ෂමතාව අඩු වීම සහ සමහර විට Arduino එකට හානි පවා සිදු විය හැකි බව ඔබට වැටහෙනවා ඇති.

සාමාන්‍යයෙන් එක් මෝටරයක් නිශ්චිත දිශාවකට පමණක් ධාවනය කිරීමට අවශ්‍ය වූ විට ඒ සදහා Arduino මගින් ප්‍රතිදානය වන ධාරාව ට්‍රාන්සිස්ටරයක් මගින් වර්ධනය කර මෝටරය සදහා ලබාදිය හැකි වෙනවා. පහත රූපයේ දැක්වෙන්නේ ඒ සදහා අවශ්‍ය පරිපත සටහන.

නමුත් මෙම පරිපථය මගින් මෝටරය ධාවනය වන්නේ එක් දිශාවකට පමණි. මේ අනුව ඔබට වැටහෙනවා ඇති මෝටර් වල දිශාව වෙනස් කිරීමට සහ මෝටර් විවිධ වේග වලින් භ්‍රමණය කිරීමට තරමක් වැඩිදියුණු කල පරිපථයක් අවශ්‍ය බව. පහත දැක්වෙන්නේ එවැනි ආකාරයට සැලසුම් කල පරිපථයක්.


මේ සදහා L298N IC එක භාවිතා කරනවා.



මෙම IC එක පිළිබදව වැඩිදුර තොරතුරු මෙහි Datasheet මගින් ලබාගත හැක. මෙතනින් Datasheet එක Download කරගන්න.

පහතින් බලන්න පුළුවන් අපි නිර්මාණය කරන්න යන පරිපථයේ පරිපත සටහන.




මුලින්ම පරිපථය Project Bord එකක හදල වැඩ කරනවද කියල බලන්න. පසුව vero bord එකක් හෝ Dot Board එකක් මත පරිපථය ගොඩනගන්න.
මෙම පරිපථය මඟින් මෝටර් දෙකක් වෙන වෙනම පාලනය කරන්න පුළුවන්. ඒ වගේම තවත් වැදගත් දෙයක් තමයි IC එකට අනිවාර්යයෙන්ම Heatzink එකක් සවි කරන්න.
පහතින් බලාගන්න පුලුවන් මම නිර්මානය කරපු පරිපතය.



දැන් මෙම පරිපථය නිවරදිව ක්‍රියා කරනවද කියල පරික්ෂා කරමු.




 PIN
 FUNCTION
 2
 MOTOR 1 RIGHT
4
 MOTOR 1 LEFT
3
 MOTOR 1 SPEED
5
 MOTOR 2 RIGHT
7
 MOTOR 2 LEFT
6
 MOTOR 2 SPEED



Arduino එකේ Digital Pins වලට මේ ආකාරයට H Bridge Motor Driver කොටස සම්බන්ධ කරගන්න. Arduino එකේ gnd එක ද Motor Driver එකේ gnd සමග සම්බන්ධ කරගන්න.
මෙහි +5V ලෙස දක්වා ඇති අග්‍රය සම්බන්ධ කල යුත්තේ භාහිර විදුලි සැපයුමකටයි. මේ සදහා බැටරියක් භාවිතා කරන්න පුළුවන්. +5V අග්‍රය බැටරියේ +අග්‍රය සමග ද බැටරියේ - අග්‍රය gnd සමගද සම්බන්ධ කරගන්න.   
මීට අදාළ code කොටස  නිර්මාණය කරගන්නේ කෙසේදැයි දැන් සලකා බලමු.
පරිපථය Arduino එක සමග සම්බන්ධ කිරීමෙන් පසු Arduino එකේ 2,3,4,5 pins HIGH හෝ LOW බවට පත් කිරීමෙන් මෝටර් වල බ්‍රමණ දිශාව වෙනස් කිරීමට ද 6 හා 7 අග්‍ර වලට ලබාදෙන අගයන් වෙනස් කිරීම මගින් ඊට අදාළ මොටරයේ වේගය ද වෙනස් කරන්න පුළුවන්.
 දැන් පහත code එක Arduino එකට Upload කරන්න



 මෙහිදී  මෝටර දෙකම මුලින්ම එක් දිශාවකට තත්පර 3 ක කාලයක් බ්‍රමණය වේ. පසුව තවත් තත්පර 3 ක් ප්‍රති විරුද්ධ දිශාවට බ්‍රමණය වේ. 
11 සහ 12 පේලි වල විශේෂයක් පවතී. එනම් මෝටර් වල වේගය පාලනය කිරීමට  analogWrite() භාවිතා කර තිබීමයි. මෙමගින් 0 සහ 255 අතර අගයක් එම අග්‍ර වලට ලබා දේ. මේ සදහා ඇති අගයන් සුදුසු පරිදි වෙනස් කිරීමෙන් මෝටර් වල වේගය වෙනස් කල හැක.  එමෙන්ම අවශ්‍ය පරිදි 2,4,5,7 අග්‍ර HIGH හෝ LOW බවට පත් කිරීමෙන් මෝටර් වල බ්‍රමණ දිශාව වෙනස් කරගත හැක.

මේ පිලිබදව ගැටළු තිබේ නම් එකක් Comment මගින් ඉදිරිපත් කරන්න.


9 comments:

  1. Speed eka adu wedi wenne .voltage eka adu wedi welada netnam .voltage eka kedi kedi ewillada

    ReplyDelete
    Replies
    1. kedi kedi ena eka nisa, ekata kyane PWM(Pulse Width Modulation) kiyala

      Delete
  2. Speed eka adu wedi wenne .voltage eka adu wedi welada netnam .voltage eka kedi kedi ewillada

    ReplyDelete
  3. http://www.electronics-tutorials.ws/blog/pulse-width-modulation.html
    mathanadi bhawitha wenne PWM (Pulse Width Modulation). oya voltage eka kadi kadi enawa kiyala adahas kareth mekama wenna ona.

    ReplyDelete
  4. congrats nice job you have done

    ReplyDelete
  5. methana bawitha wela thiyana capacitor saha resistors diagram eke nahane

    ReplyDelete