PIC Lesson: DC Motor
DC Motor adalah motor elektrik yang menggunakan arus terus (DC – Direct Current). DC Motor mempunyai dua terminal sahaja. Motor akan berpusing apabila dua terminal tersebut diberikan voltan mengikut keperluannya misalnya 12V. Arah pusingannya pula bergantung kepada polarity bekalan.

Bagi mengawal DC Motor menggunakan microcontroller, H-bridge driver digunakan. H-bridge driver contohnya L293 atau L298. L298 adalah untuk kegunaan arus motor yang lebih tinggi. Dengan driver ini, terdapat dua input yang membolehkan mengawal arah pusingan motor sama ada pusingan jam ataupun lawan pusingan jam. Juga terdapat input enable yang membolehkan mengawal kelajuan motor dengan memberikan PWM kepada pin tersebut. Di bawah adalah litar DC Motor menggunakan L298.

Kelajuan motor diukur dalam revolutions perminute (rpm) ataupun bilangan pusingan dalam satu minit. Bagi mengira pusingan per minit, encoder bersama dengan infrared sensor digunakan. Encoder adalah plate yang mempunyai bilah yang diletakkan supaya berpusing bersama shaft motor. Infrared akan membaca bilah-bilah tersebut untuk menghasilkan pulse. Ianya bergantung kepada bilangan bilah encoder tersebut.
Misalnya, saya menggunakan encoder yang mempunyai 8 bilah. Oleh itu, 1 pusingan motor akan menghasilkan 8 pulse. Bagaimana ingin menukarkan kepada unit rpm.
Di dalam program PIC, tetapkan jangka masa untuk mengira bilangan pulse. Misalnya dalam jangka masa 0.5 saat. Di dalam masa 0.5s, apabila motor berpusing akan menghasilkan x bilangan pulse. Pengiraan rpm adalah seperti rumus di bawah.

Contoh program mengawal dua DC Motor adalah seperti di bawah. Menggunakan program PWM PIC Lesson, mengawal arah pusingan motor dan kelajuan motor.
Berikut adalah videonya.
Post ini telah menerima 5,312 views sejak dikeluarkan pada 1:16 AM, Monday, 30th August 2010
Category: PIC Lesson Tags: Motor, PWM
ws, FDH. Contoh di atas dah ditunjukkan rotary encoder. Lebih drpd tu, saya x boleh nak tolong.
Salam,En.Shahrul. Info yg diberikan sgt berguna. Saya akan memanfaatkannya sebaik mungkin. But I want to ask sumthing here. Sy meggunakan rotary encoder produk dr Cytron dan telahpun sambungkn encoder ini pada PIC. tetapi saya xdapat generated pulses yg sebetulnya. Blh bantu saya dalam masalah ini? saya meggunakan software MicroC.
ws, bridge diode mmg diperlukan dlm litar DC Motor. Sila rujuk datasheet L298.
assalam en shahrul, boleh saya tahu apa kegunaan KBP306G itu?
You study for your own. See Low Cost RF Module or XBee Module.
wanna asking, my project is lawn mover controlled by RF module. can U help me in source code. I used PIC16F877A connect to L293D to relay then motor, because my motor use high current, U can see my project block diagram at here>> http://www.electronic-circuits-diagrams.com/forum/viewtopic.php?t=4962&sid=90d50542ab44bbc451b4127e4c29c51b
ws, nuraini. LCD_PULSE() bukan mana2 pin, ini adalah function untuk bagi pulse pada pin LCD_EN. Baca Lesson LCD.
Assalam en shahrul…saya menghadapi masalah dengan software simulation cicuit ini,sy menggunakan proteus tp x dpt output yg diharapkn…motor bergerak tapi tiada display pd lcd…sy kurang fhm dengan connection pd
#define LCD_PULSE() ((LCD_EN=1),(LCD_EN=0))….lcd pulse ini perlu disambung pada kaki mana pada pic?