AVR ATmega8 Sistem Timer pada ATmega 8 dapat dipergunakan untuk membangkitkan sinyal PWM Terdapat 3 sumber PWM (melalui pin OC1A, OC1B, dan OC2 yg ada di PB.1, PB.2, PB.3) Timer 2 dapat digunakan untuk membangkitkan sinyal PWM 8 bit, karena Timer 2 adalah timer/counter 8 bit Timer 1 dapat digunakan untuk membangkitkan sinyal PWM 16 bit, karena timer 1 adalah timer/counter 16 bit Dapat dipilih dua mode PWM Fast PWM Phase Correct PWM Kuliah SBM 2016 12
AVR ATmega8 Fast PWM Timer 2 Kuliah SBM 2016 13
AVR ATmega8 Fast PWM Timer 2, digunakan untuk membangkitkan sinyal PWM frekuensi tinggi, karena sinyal yg digunakan adalah single slope(berbeda dgn PWM lainnya). Sinyal single slope ini diperoleh dari counter yang menaikkan cacahannya dari BOTTOM (00h) s/d MAX (FFh/255) kemudian memulai lagi dari BOTTOM dan seterusnya. Pada mode non-inverting, kondisi pin Output Compare (OCn) akan di-clear (dinolkan) ketika terjadi Compare Match (nilai yg sama) antara TCNTn dan OCRn, serta di-set (dibuat bernilai 1) pada saat BOTTOM. Pada mode inverting, kondisi output di-set saat Compare Match dan di-clear saat BOTTOM. Timing diagram untuk mode fast PWM tampak pd halaman sebelumnya. Diagram tersebut menunjukkan bagaimana PWM non-inverting dan PWM inverting. Garis horizontal kecil pada slope(sisi miring) TCNTn menunjukkan terjadinya compare match antara OCRn dan TCNTn. Sinyal PWM, yaitu gelombang kotak dengan duty cycle yg dapat diubah/diatur adalah sinyal yg muncul pada pin OCn Kuliah SBM 2016 14
AVR ATmega8 Untuk mengubah duty cycle yg harus dilakukan adalah dengan mengubah nilai OCRn, semakin besar nilai OCRn maka duty cycle juga akan semakin besar. Jika OCRn bernilai 0 maka diperoleh duty cycle 0%,jika bernilai 255 akan diperoleh duty cycle 100%. Tegangan maximal yg bisa diperoleh dari keluaran PWM mikrokontroler hanya terbatas 5 Vdc, namun jika sinyal PWM ini digunakan untuk mengendalikan rangkaian driver yg memiliki tegangan catu lebih dari 5 Vdc, kita dapat memperoleh tegangan yg bervariasi yg lebih besar dari 5 Vdc.(Tegangan keluaran tersebut akan merupakan hasil perkalian duty cycle dengan tegangan catu) Kuliah SBM 2016 15
AVR ATmega8 Phase Correct PWM Timer 2 Kuliah SBM 2016 16
AVR ATmega8 Phase Correct PWM Timer 2 secara prinsip hampir sama dengan fast PWM, namun sinyal yg digunakan sinyal dual slope. Sinyal dual slope ini diperoleh dari counter yang menaikkan cacahannya dari BOTTOM (00h) s/d MAX (FFh/255) kemudian menghitung mundur/turun dari MAX ke BOTTOM dan naik lagi menuju MAX dan seterusnya Kuliah SBM 2016 17
AVR ATmega8 Untuk PWM yg menggunakan Timer 1, secara prinsip sama dengan Timer 2, namun batas cacahan MAX bernilai 16 bit, yaitu FFFFh/65535 dan Register yg digunakan untuk mengatur duty cycle yaitu OCR1A dan OCR1B juga memiliki lebar 16 bit Dengan kata lain Timer 1 menyediakan pembangkit PWM yg jauh lebih teliti karena menggunakan register 16 bit. Kuliah SBM 2016 18
Contoh Aplikasi Untuk dapat menggerakkan motor DC diperlukan rangkaian driver Sesuaikan tegangan dan arus rangkaian driver dengan motor DC yg digunakan Rangkaian dapat disusun dari sejumlah transistor dan dioda Dapat pula digunakan IC driver motor, misalnya: L293D, L298 Kuliah SBM 2016 19
L298 Kemasan yang ada Kuliah SBM 2016 20
L298 Blok Diagram Kuliah SBM 2016 21
L298 Fungsi tiap Pin Kuliah SBM 2016 22
L298 Pengaturan Motor Kuliah SBM 2016 23
Modul L298 Untuk memudahkan bisa digunakan modul L298 sbb Kuliah SBM 2016 24
Contoh Koneksi dengan UADUINO Kuliah SBM 2016 25
LOGIKA PENGENDALIAN MOTOR Perhatikan PORT ATMEGA 8 yang terhubung ke IN1, IN2, ENA, IN3, IN4 dan ENB dari L298 PORTB.0==IN1, PORTB.3==IN2, PORTB.1==ENA, PORTB.4==IN3, PORTB.5==IN4, PORTB.2==ENB Untuk memutar motor yang kita lakukan adalah memberika logika yang sesuai pada masing-masing PORT tersebut di atas IN1 dan IN2 serta ENA untuk mengatur Motor Kanan IN3 dan IN4 serta ENB untuk mengatur Motor Kiri Kuliah SBM 2016 26
PENGATURAN KECEPATAN MOTOR Untuk dapat mengatur kecepatan putar motor maka kita lakukan pengaturan pada ENA dan ENB Kita berikan sinyal PWM pada ENA dan ENB Kecepatan Motor diatur dengan mengatur duty cycle PWM pada ENA dan ENB Kita bangkitkan sinyal PWM dengan PWM Timer 1 ATMEGA8 Gunakan yang sederhana yaitu FAST PWM Kuliah SBM 2016 27
PENGATURAN KECEPATAN MOTOR Dengan bantuan Codewizard Pengaturan kecepatan dilakukan dengan mengubah nilai register OCR1A dan OCR1B Kuliah SBM 2016 28
Referensi www.hpinfotech.com CodeVisionAVR User manual M. Ary Heryanto, Ir. Wisnu Adi P, Pemrograman Bahasa C untuk Mikrokontroler ATmega 8535, Penerbit Andi ATMEL, 2003, AVR Technical documentation Series, Atmel Kuliah SBM 2016 29