Posts Tagged ‘aplikasi pwm Atmega 8535’

Pengaturan Kecepatan Motor Dc Dengan Mikrokontroler [open-loop]

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.

Gambar 1

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.

Sumber :http://delta-electronic.com/article/wp-content/uploads/2008/09/an0082.pdf

===============================================================

PENGATURAN KECEPATAN MOTOR DC Berbasis Atmega8535

Skema dengan proteus:


Hasil simulasi dengan proteus:

Program Pengaturan Kecepatan Motor DC dengan Bascom AVR

$regfile = “m8535.dat”                                    ‘menggunakan Atmega8535 sebagai preprosesor

$crystal = 12000000                                      ‘menggunakan crystal clock 12 MHz

$eeprom                                                                     ‘menggunakan fasilitas eeprom Atmega8535

‘—————————inisialisasi lcd————————————

Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0

Config Lcd = 16 * 2 : Cursor Off

‘—————————inisialisasi pwm———————————–

Config Timer1 = Pwm , Pwm = 10 , Prescale = 64 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up       ‘pwm dengan settingan fast pwm 10 bit

‘—————————inisialisasi port——————————–

‘inisialisasi tombol

Config Portb = Input

‘—————————pull up internal——————————–

Portb.0 = 1

Portb.1 = 1

Portb.2 = 1

Portb.3 = 1

Config Portd = Output

‘alias logika motor

M1a Alias Portd.0

M1b Alias Portd.1

M2a Alias Portd.2

M2b Alias Portd.3

‘——————————alias——————————————–

‘alias tombol

Sw_ok Alias Pinb.3

Sw_cancel Alias Pinb.2

Sw_down Alias Pinb.1

Sw_up Alias Pinb.0

‘——————————————————————————-

Dim Pwm As Integer

Dim Pwm_eprom As Eram Integer

Home

Lcd “Fahmizal_dte2006”

Lowerline

Lcd “Cek fungsi PWM”

Wait 1

Do

Pwm = Pwm_eprom

If Sw_up = 0 Then : Incr Pwm : Waitms 10

End If

If Sw_down = 0 Then : Decr Pwm : Waitms 10

End If

If Pwm > 1023 Then : Pwm = 0 : Waitms 10

End If

If Pwm < 0 Then : Pwm = 1023 : Waitms 10

End If

Pwm_eprom = Pwm

Cls

Home

Lcd “tes uji pwm”

Lowerline

Reset M1a

Reset M2a

Set M1b

Set M2b

Pwm1a = Pwm

Pwm1b = Pwm

Lcd “nilai pwm:” ; Pwm1a : Waitms 100

Loop

End

nach berikut hasil video pengaturan sinyal PWM nya ^_^

===============================================================

bacaan terkait di blog ini:

1. mudah-belajar-mikro-dengan-simulasi-program-proteus klik disini

2. aplikasi-pwm-mikrokontroler-atmega8535 klik disini

===============================================================

Aplikasi PWM Mikrokontroler ATmega8535

PWM (Pulse Width Modulation) Atmega8535

PWM (Pulse Width Modulation) atau modulasi lebar pulsa adalah salah satu keunggulan Timer/Counter yangterdapat pada Atmega8535. Ketiga jenis Timer/Counter pada Atmega8535 dapat menghasilkan pulsa PWM. Pulsa PWM adalah sederetan pulsa yang lebar pulsanya dapat diatur. Pulsa PWM berfungsi mengatur kecepatan motor DC, mengatur gelap terang LED dan aplikasi lainnya. PWM adalah Timer mode Output Compare yang canggih. Mode PWM Timer juga dapat mencacah turun yang berlawanan dengan mode Timer lainnya yang hanya mencacah naik. Pada mode PWM tersebut, Timer mencacah naik hingga mencapai nilai TOP, yaitu 0xFF (255) untuk PWM 8 bit dan 0x3FF (1023) untuk PWM 10 bit. Timer/Counter 0 hanya memiliki PWM 8 bit, sedangkan pada Timer/Counter 1 memiliki 9 bit dan PWM 10 bit, dan Timer/Counter 2 memiliki PWM 8 bit.

Pemilihan mode PWM diseting melalui bit COM01 dan bit COM00 pada register TCCR. Saat COM00 clear dan COM01 set, pin OC0 clear sat timer mencacah diatas Compare Match dan pin OC0 set saat timer mencacah dibawah Compare Match atau non-inverting PWM. Kebalikannya, saat COM00 set dan COM01 juga set, maka pin OC0 set saat timer mencacah dibawah Compare Match atau disebut juga inverting PWM. Agar lebih jelas, perhatikan gambar berikut.

Pulsa PWM inverting dan non-inverting

Pemrograman PWM dengan BASCOM AVR

Fasilitas timer mikrokontroler digunakan untuk pengaturan PWM. Berikut ini pengujian fungsionalitas mikrokontroler Atmega 16 dalam membangkitkan PWM. Penggunanan PWM menggunakan fasilitas overflow pada timer/counter 1.

Listing program untuk mengeluarkan nilai PWM = 0 pada pin OC1A dan OC1B.

Config Timer1 = Pwm , Pwm = 10 , Prescale = 64 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down   ‘pwm dengan settingan fast pwm 10 bit, mode inverting

Do

Pwm1a = 0 ‘pin OC1A

Pwm1b = 0 ‘pin OC1B

Loop

End

Gambar Gelombang PWM saat 0%

Listing program untuk mengeluarkan nilai PWM = 512 pada pin OC1A dan OC1B.

Config Timer1 = Pwm , Pwm = 10 , Prescale = 64 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down   ‘pwm dengan settingan fast pwm 10 bit, mode inverting

Do

Pwm1a = 512 ‘pin OC1A

Pwm1b = 512 ‘pin OC1B

Loop

End

Gambar Gelombang PWM saat 50%

nach berikut hasil video pengaturan sinyal PWM nya ^_^

===============================================================

bacaan terkait di blog ini:

1. pengaturan-kecepatan-motor-dc-dengan-mikrokontroler klik disini