Dalam Projek ini menggunakan mikrokontroler ATMega 16 sebagai display menggunakan LCD 16×2 Output yang akan dikontrol kecepatannya yaitu mneggunakan motor DC sebagai inputnya menggunakan Potensiometer dan Driver motornya memakain IC L298. Untuk mengatur suatu kecepatan motor yaitu disini menggunakan menggunakan teknik Pulse Width Modulation atau biasa disebut dengan PWM yaitu dengan mengatur duty cyclenya. Duty cycle itu sendiri menyatakan presentase keadaan logika high dalam satu periode sinyal.
Selama satu siklus atau satu periode jika waktu sinyal pada keadaan high sama dengan low maka dapat dikatakan sinyal mempunyai duty cycle 50%. Semakin besar duty cycle atau keadaan high dalam satu periode maka motor akan berputar semakin cepat begitu juga sebaliknya.
Pada projek ini pengaturan duty cyclenya berasal dari input Potensiometer. Potensiometer ini dihubungkan dengan pin ADC mikrokontroler. Hasil dari konversi nilai Analog ke digital dari potensio ditampilkan pada LCD. Semakin besar nilai potensio maka motor akan berputar semakin cepat. Timer/counter 1 digunakan untuk membangkitkan 2 channel Pulse Width Modulation (PWM) yang masing-masing berdiri sendiri atau tidak tergantung satu sama lainnya. Timer Mode yang digunakan yaitu mode Fast PWM 8 bit. Fast PWM memberikan pulsa PWM frekuensi tinggi. Fast PWM berbeda dengan mode PWM lain, Fast PWM berdasarkan operasi single slope. Counter menghitung dari BOTTOM hingga TOP kemudian kembali lagi mulai menghitung berawal dari BOTTOM. Output mode FAST PWM Timer 1 ini yaitu pada Pin OC1A (PORTD.5) dan Pin OC1B (PORTD.4) yang dihubungkan dengan ENA dan ENB pada driver motor L298D.
Schematic Rangkaian :
Setting Codevision AVR :
Programnya adalah sebagai berikut :
Cara kerja mode Fast PWM 8 bit pada program ini yaitu membandingkan isi register TCNT1 dengan register OCR1A dan OCR1B ( berasal dari nilai konversi ADC channel 0 dan 1) untuk menghasilkan keluaran PWM. Isi register TCNT1 akan mencacah naik setiap interval waktu tertentu detak clock crystal sesuai pengaturan TCCR1B sampai bernilai maksimum yaitu 0x00FF(255). Selama nilai register TCNT1 lebih kecil dari data pembanding yaitu OCR1A atau OCR1B maka keluaran pin OC1A dan OC1B akan high dan jika nilai TCNT1 sudah melebihi data pembanding OCR1A atau OCR1B maka keluaran pin OC1A dan OC1B akan low. Jika nilai TCNT1 sudah mencapai maksimum yaitu 0x00FF (255) maka nilai TCNT1 akan reset kembali menjadi 0×0000.
PWM A ( Output pin OC1A) :
PWM B ( Output pin OC1B) :
Register TCCR1A disii 0xA1 berarti mode Fast PWM 8-bit dengan pola keluaran OC1A dan OC1B adalah high selama TCNT1 lebih kecil dari OCR1A-OCR1B dan low setelah TCNT1 melebihi OCR1A-OCR1B. Register TCCR1B diisi 0x0D berarti skala clock 1024. Sehingga jika frekuensi kristal yang digunakan adalah 11.0592 MHz maka akan menghasilkan PWM dengan frekuensi 42 Hz atau dengan periode 23.7 ms atau mendekati 24 ms. Perhitungannya adalah sebagai berikut :
Jika dinyatakan dengan periode :
menyimpan data hasil konversi ADC channel 1 ke variabel data1.
Subrutin untuk menjalankan Motor1 dengan nilai pwm tertentu. Memiliki argumen yang diberi nama motor1. Argumen ini untuk mengatur kecepatan motor1. Pada program utama “kec1(data1) “ menunjukkan data hasil konversi yaitu data1 digunakan untuk mengatur nilai OCR1AL sehingga kecepatan motor dapat berubah-ubah sesuai dengan nilai hasil konversi `ADC Channel 1.
menyimpan data hasil konversi ADC channel 2 ke variabel data2.
Subrutin untuk menjalankan Motor2 dengan nilai pwm tertentu. Memiliki argumen yang diberi nama motor2. Argumen ini untuk mengatur kecepatan motor2. Pada program utama “kec2(data2) “ menunjukkan data hasil konversi yaitu data2 digunakan untuk mengatur nilai OCR1BL sehingga kecepatan motor 2 dapat berubah-ubah sesuai dengan nilai hasil konversi ADC Channel 2.
Digunakan untuk menampilkan data hasil konversi ADC pada LCD 16×2.
Menghitung periode sinyal PWM pada osciloscope :
Mungkin itu saja dari saya..apabila masih kurang lengkap harap saran dan kritiknya, maklum masih newbie nih : ).
Referensi : http://www.musbikhin.com/kontrol-kecepatan-motor-dc-melalui-potensiometer
Referensi : http://www.musbikhin.com/kontrol-kecepatan-motor-dc-melalui-potensiometer
Belum ada tanggapan untuk "Kontrol Kecepatan Motor DC Melalui Potensiometer"
Posting Komentar