Pada dasarnya, putaran motor dipengaruhi oleh besar kecilnya tegangan motor, arus jangkar,
tahanan jangkar dan medan magnet. Satu faktor yang sering digunakan untuk mengatur
kecepatan motor adalah dengan mengatur (dibuat sebagai variable) tegangan yang masuk ke
motor. Hal ini praktis digunakan karena variabel yang lain sudah tetap. Sebenarnya dua masalah
umum dalam mengontrol motor DC adalah bagaimana mengontrol arah dan kecepatan motor
tersebut.
Mudahnya, untuk mengatur kecepatan, kita bisa gunakan tegangan masukan motor yang
divariabel. Sedangkan untuk mengatur arah putar dapat menggunakan saklar manual atau relay
untuk mengubah arah arus yang masuk ke motor DC. Menggunakan saklar mekanik memberikan
kemudahan, namun memiliki kelemahan, yakni lambat dan tidak mungkin dihubungkan dengan
sebuah kontroler. Nah alternatif lain dalam kontrol kecepatan dan arah putar motor adalah
dengan menggunakan transistor. Transistor mempunyai respon yang cepat (orde mikro detik) dan
juga dapat dikontrol dengan mudah oleh kontroler (mikrokontroler misalnya) atau yang lain.
Untuk motor dengan daya besar dapat digunakan transistor daya, misalnya MOSFET atau yang
lain. apabila yang digunakan transistor, maka untuk mengatur tegangan yang masuk ke motor
dibutuhkan PWM (Pulse Width Modulation). Nah sebelum kita mempelajari PWM lebih jauh,
terlebih dahulu kita coba kontrol secara analog dengan menggunakan komponen - komponen
sederhana. Rangkaian di bawah ini di simulasikan dengan menggunakan Proteus V7.4. Untuk
memperjelas gambar rangkaian, klik thumbnail gambar bersangkutan.
1. Kontrol kecepatan putar motor dengan menggunakan transistor dan potensiometer
Mula-mula, kita coba dulu memberi tegangan ke motor. Gunakan komponen "Batt" dan
"Motor-DC". Ubah tegangan batt menjadi 12V (menyesuaikan motor DC) kemudian Run.
catatan : untuk langkah ini, dalam rangkaian sebenarnya sangat dianjurkan untuk TIDAK
digunakan karena tidak mampu memberikan daya yang cukup untuk mendriver motor.
Memang pada awalnya bisa digunakan, namun dalam waktu yang singkat, komponen akan
panas dan langsung rusak (saya pernah nyoba malah ampe gosong, hehe). Karena ini cuma
simulasi, boleh2 aja dicoba rangkaiannya.
untuk perbaikan, bisa ditambahkan transistor NPN BD139 , diode 4001, vcc, dan gnd. Oiya,
besarnya hambatan pot di ubah jadi 10K. Pot ini bertidak sebagai pembagi tegangan yang
mengatur besar kecilnya tegangan yang masuk ke basis mikrokontroller. Untuk penggunaan
selanjutnya, potensiometer ini bisa diganti dengan menggunakan sinyal PWM.
catatan : dalam penggunaannya, jenis transistor bergantung pada besar kecilnya motor yang akan
dikendalikan, terutama dalam hal konsumsi arus. Untuk contoh diatas, apabila digunakan
mendrive motor-motor kecil masih ok.
2. Kontrol arah putar motor dengan menggunakan saklar mekanik
untuk mengubah arah putar motor DC cukup ditambahkan 2 buah saklar sbb.
catatan : arah arus yang masuk ke motor dipengaruhi oleh posisi SW1 dan SW2. Apabila SW1
dan SW2 dalam keadaan yang sama, motor tidak akan berputar karena dikedua pinnya memiliki
kutub yang sama ( + semua atau - semua). Motor hanya akan berputar apabila posisi SW1 dan
SW2 saling berkebalikan dan putaran akan bebalik arah apabila posisi saklar juga dibalik.
Untuk mengatur arah putaran motor 1 (atas) yaitu dengan memberikan sinyal 1 atau 0 ke pin IN1
dan IN2. Sedangkan untuk mengatur kecepatan motor yaitu pada EN1 untuk ke motor 1. Sinyal 0
atau 1 ini dapat dihasilkan dari port mikrokontroler dengan mengaturnya sebagai output, yang
dapat langsung mengatur arah putaran. Sedangkan EN1 masukkannya berupa sinyal PWM.
PWM atau Pulse Width Modulation adalah suatu teknik modulasi sinyal dengan memvariasikan
lebar pulsanya. Berikut adalah contoh sinyal PWM,
Salah satu parameter yang perlu diatur pada sinyal PWM ini adalah periode sinyal dan lebar
pulsanya. Lebar pulsa dinyatakan dengan duty cycle yang merupakan persentase dari
perbandingan pulsa on (Ton) dengan Ttotal, sehingga %duty_cycle = Ton/Ttotal*100 (%). Untuk
mencoba membuat programnya dengan mikrokontroler AVR maka dapat dengan mudah
dilakukan menggunakan CodeVisionAVR.
Yang perlu diubah adalah parameter Clock Value 15.625 kHz, Mode Fast PWM top = 00FFh,
Out. A dan Out. B Non. Inverting. Dengan mengatur Clock Value 15.625 kHz maka periode
timer adalah 1/15.625 kHz = 64 uS. Maksudnya adalah kenaikan register Timer1 yaitu TCNT1
akan increment (naik satu kali) setiap 64 uS. Karena dipilih nilai top dari timer adalah 00FFh
atau 255 maka periode PWM total adalah sebesar 255*64 uS = 16,32 mS.
Untuk mengatur duty cycle yaitu dengan memasukan nilai ke register OCR (OCR1A atau
OCR1B) yang nilainya 0 255. Dimana Ton yang akan dihasilkan memiliki waktu sebesar
OCR*64 uS. Maka jika nilai OCR = 128, Ton adalah 128*64 uS = 8.192 ms. Untuk
membuktikannya dapat dilihat dengan menggunakan Osiloskop pada simulasi dengan Proteus.
Dimana prinsip kerjanya dapat dilihat pada gambar berikut
Dengan menjalankannya pada Proteus dan melihat tampilan sinyal pada osiloskop yaitu sebagai
berikut
Terlihat bahwa hasil yang diperoleh sesuai perhitungan yang dijelaskan pada paragraf
sebelumnya. Pada program ini motor bergerak pada kecepatan setengahnya karena duty cycle
yang diberikan adalah 50%.
Atur Potensiometer dengan cara mengklik pada panah untuk menambah kecepatan pada motor
DC