Penggunaan motor DC dewasa ini sudah  sangatlah umum, salah satu kelebihan motor DC adalah relatif gampang  didapat dan mudah diatur kecepatan putarnya. Secara umum pengaturan  kecepatan motor DC adalah dengan menggunakan cara analog. Pada artikel  kali ini akan dibahas contoh cara mengatur kecepatan motor DC dengan  menggunakan mikrokontroller.
Mikrokontroler yang digunakan adalah Tipe  AVR dari Atmel seperti mikrokontroler Atmega 8535, 16, 32. Informasi  kecepatan motor akan ditampilkan pada modul LCD HD4480. Sedangkan  sebagai driver motor menggunakan modul driver motor IC L298.
Cara pengaturan kecepatan yang digunakan  adalah dengan menggunakan teknik PWM (Pulse Width Modulation), salah  satu teknik untuk mengatur kecepatan motor DC yang umum digunakan.  Dengan menggunakan PWM kita dapat mengatur kecepatan yang diinginkan  dengan mudah. Teknik PWM untuk pengaturan kecepatan motor adalah,  pengaturan kecepatan motor dengan cara merubah-rubah besarnya duty cycle  pulsa. Pulsa yang yang berubah ubah duty cycle-nya inilah yang  menentukan kecepatan motor. Besarnya  amplitudo dan frekuensi pulsa adalah tetap, sedangkan besarnya duty  cycle berubah-ubah sesuai dengan kecepatan yang diinginkan, semakin  besar duty cylce maka semakin cepat pula kecepatan motor, dan sebaliknya  semakin kecil duty cycle maka semakin pelan pula kecepatan motor.  Sebagai contoh bentuk pulsa yang dikirimkan adalah seperti pada gambar  1, pulsa kotak dengan duty cycle pulsa 50%. Sedangkan sebagai contoh  bentuk pulsa PWM adalah seperti pada gambar 2.
Seperti pada gambar 1, semakin besar duty cycle pulsa kotak, maka semakin lama pula posisi logika high. Jika motor diatur agar berjalan ketika diberi logika high,   maka jika memberi pulsa seperti pada gambar 1 diatas, maka motor akan   berada pada kondisi “nyala-mati-nyala-mati” sesuai dengan bentuk pulsa   tersesebut. Semakin lama motor berada pada kondisi “nyala” maka semakin   cepat pula kecepatan motor tersebut. Motor akan berputar dengan   kecepatan maksimum jika mendapat pulsa dengan duty cycle 100%. Dengan   kata lain motor mendapat logika high terus menerus.
Dengan mengatur besarnya duty cycle pulsa kotak yang dikirimkan, kita dapat mengatur banyaknya logika high  yang diberikan pada motor, dengan kata lain mengatur lamanya waktu   motor untuk berputar dalam satu periode pulsa. Jika lamanya waktu motor   untuk berputar dalam satu periode pulsa ini berubah maka kecepatan   purtaran motor juga akan berubah, sesuai dengan duty cycle atau waktu motor untuk berputar dalam satu periode pulsa.
===============================================================PENGATURAN KECEPATAN MOTOR DC Berbasis Atmega8535
Skema dengan proteus:

Hasil simulasi dengan proteus:

Program Pengaturan Kecepatan Motor DC dengan Bascom AVR
1 $regfile = “m8535.dat” ’menggunakan Atmega8535 sebagai preprosesor 2 $crystal = 12000000 ’menggunakan crystal clock 12 MHz 3 $eeprom 'menggunakan fasilitas eeprom Atmega8535 4 5 ‘—————————inisialisasi lcd———————————— 6 7 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0 8 Config Lcd = 16 * 2 : Cursor Off 9 10 ‘—————————inisialisasi pwm———————————– 11 12 Config Timer1 = Pwm , Pwm = 10 , Prescale = 64 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up ‘pwm dengan settingan fast pwm 10 bit 13 14 ‘—————————inisialisasi port——————————– 15 16 ‘inisialisasi tombol 17 Config Portb = Input 18 19 ‘—————————pull up internal——————————– 20 21 Portb.0 = 1 22 Portb.1 = 1 23 Portb.2 = 1 24 Portb.3 = 1 25 Config Portd = Output 26 ‘alias logika motor 27 M1a Alias Portd.0 28 M1b Alias Portd.1 29 M2a Alias Portd.2 30 M2b Alias Portd.3 31 32 ‘——————————alias——————————————– 33 34 ‘alias tombol 35 Sw_ok Alias Pinb.3 36 Sw_cancel Alias Pinb.2 37 Sw_down Alias Pinb.1 38 Sw_up Alias Pinb.0 39 40 ‘——————————————————————————- 41 42 Dim Pwm As Integer 43 Dim Pwm_eprom As Eram Integer 44 Home 45 Lcd “Fahmizal_dte2006″ 46 Lowerline 47 Lcd “Cek fungsi PWM” 48 Wait 1 49 50 Do 51 Pwm = Pwm_eprom 52 If Sw_up = 0 Then : Incr Pwm : Waitms 10 53 End If 54 If Sw_down = 0 Then : Decr Pwm : Waitms 10 55 End If 56 If Pwm > 1023 Then : Pwm = 0 : Waitms 10 57 End If 58 If Pwm < 0 Then : Pwm = 1023 : Waitms 10 59 End If 60 Pwm_eprom = Pwm 61 Cls 62 63 Home 64 Lcd “tes uji pwm” 65 Lowerline 66 Reset M1a 67 Reset M2a 68 Set M1b 69 Set M2b 70 Pwm1a = Pwm 71 Pwm1b = Pwm 72 Lcd “nilai pwm:” ; Pwm1a : Waitms 100 73 Loop 74 End





mas... boleh mintak gambar skematik pwm nya yang di proteus itu??? soalnya kurang jelas...
BalasHapus