Pengertian PWM
Salah satu cara untuk mengatur kecepatan putar motor dc adalah dengan metode modulasi
lebar pulsa atau dalam bahasa inggris disebut pulse width modulation disingkat PWM.
Gambar 1 menunjukan ilustrasi PWM, 100%, 50%, dan 75%. Sumbu vertical menunjukan
besarnya tegangan dan sumbu horizontal menunjukan waktu. x menandakan tegangan
maksimum dari suatu sistem.
Ekivalensi
Nah motor itu kan berputar disebabkan karena adanya fluks magnet yang menimbulkan gaya
gerak (hukum faraday). Dirumuskannya kaya persamaan di bawah ini.
Dimana;
N = Kecepatan Putar
V = Tegangan Input
Ia = Arus Jangkar
Ra = Hambatan Jangkar
K = Konstanta Motor
R dan K bernilai konstan alias tidak bisa dirubah. Merubah nilai I sukar dilakukan, dan yang
paling mudah adalah dengan mengatur besar tegangan (V). Hubungannya dengan PWM
adalah. (Perhatikan Gambar 1).
Dimana Vs = Suplai tegangan di driver Motor. Cek disini untuk tahu skematiknya.
Wiring
Sekarang saatnya kita melakukan percobaan untuk mengatur kecepatan motor. Beberapa
komponen yang harus kita siapkan adalah:
1. Arduino UNO, MEGA, Leonardo.
2. Driver Motor
3. Motor DC 12V
4. Catu Daya/Battery 12V
Nah dari ke-4 komponen itu kita hubungkan seperti gambar di bawah ini.
Program
Setelah selesai wiring, proses selanjutnya adalah menulis program di Arduino IDE. Silakan
gunakan
contoh
program
di
bawah
ini
pada
Arduino
temen-temen.
Hal yg harus terjadi adalah:
1. Motor berputar searah jarum jam dari putaran lambat, sedang, cepat, dan sangat cepat.
2. Motor berputar berbalik arah jarum jam dari putaran lambat, sedang, cepat, dan sangat
cepat.
3. Begitu seterusnya.
view plainprint?
1. int dir1 = 4; // inisiai pin untuk motor kiri
2. int pwm1 = 5;
3. int pwm2 = 6; // inisiai pin untuk motor kanan
4. int dir2 = 7;
5. int i;
6.
7. void setup()
8. {
9.
digitalWrite(dir1, LOW);
23.
analogWrite(pwm1, i);
24.
digitalWrite(dir2, LOW);
25.
analogWrite(pwm2, i);
26.
delay(15);
27. }
28. // putar Motor dari kecepatan rendah ke kecepatan tinggi dengan arah sebaliknya
29. for (i=255; i >= 0; i -= 1)
30. {
31.
digitalWrite(dir1, HIGH);
32.
analogWrite(pwm1, i);
33.
digitalWrite(dir2, HIGH);
34.
analogWrite(pwm2, i);
35.
delay(15);
36. }
37. }