PWM (Pulse Width Modulation) adalah suatu teknik pengendalian lebar denyut gelombang kotak. jadi lebar denyut gelombang kotak itu dapat kita ubah-ubah sesuai keingingan. lalu tujuanya untuk apa? tentu anda bertanya-tanya. salah satu contoh aplikasi PWM adalah mengatur kecepatan putaran motor. motor dapat berputar pelan, sedang, dan cepat karena tegangan yang dicatukan bisa berubah-ubah. nah dengan PWM kita bisa menghasilkan tegangan yang bisa kita ubah-ubah. nah sudah sedikit faham kan mengenai Pengertian dan Cara Kerja PWM ini.
contoh lain penerapan PWM adalah pengendalian nyala sebuah lampu. lampu bisa dibuat redup, sedang, terang, atau sangat terang. contoh yang lain pada penerapan SMPS (Switch Mode Power Supply) dimana pengendalian tegangan output menggunakan Teknik PWM.
dan dalam pembahasan kali ini saya akan berbagi pengalaman bagaimana menghasilkan sinyal PWM untuk nanti kita terapkan pada Motor DC. jadi Motor DC bisa kita atur kecepatan putarnya dengan cara mengubah-ubah lebar denyutnya. perbedaan lebar denyut ini sering disebut dengan Duty Cycle, dan dinyatakan dalam Prosentase (%). Duty Cyle 50% berarti lebar denyut akan sama.
untuk menghasilkan sinyal PWM akan kita gunakan Mikrokontroler Atmega8A. Atmega8A mempunyai output PWM sebanyak 3 buah, yaitu OC1A, OC1B, dan OC2. untuk mempermudah kita pilih salah satu saja yaitu OC1A. jadi nanti kita akan menggunakan pin OC1A ini untuk menghasilkan sinyal PWM. dan sinyal PWM yang kita hasilkan nanti akan kita aplikasikan untuk mengendalikan Motor DC.
OK...langsung ke Pemrogramannya, perhatikan potongan kode dibawah ini
'kode ini untuk mengatur timer1 sebagai PWM 10 bit
Config Timer1 = Pwm , Pwm = 10 , Compare_a_pwm = Clear_up , Prescale = 1
'ubah nilai ocr1a ini untuk menghasilkan nilai output PWM yg berbeda-beda
Ocr1a = 100
'menampilkan text "uji oba pwm"
Locate 1 , 1 : Lcd " Uji Coba PWM "
'kode diantara do.....loop akan selalu di kerjakan(main loop)
Do
'menampilkan text "OCR1A" ke LCD baris ke2
Locate 2 , 1 : Lcd "OCR1A"
'menampilkan nilai ocr1a saat ini
Locate 2 , 7 : Lcd Ocr1a
Loop
'selesai
End
tampilan di IDE Bascom-AVR akan seperti di bawah ini
contoh lain penerapan PWM adalah pengendalian nyala sebuah lampu. lampu bisa dibuat redup, sedang, terang, atau sangat terang. contoh yang lain pada penerapan SMPS (Switch Mode Power Supply) dimana pengendalian tegangan output menggunakan Teknik PWM.
dan dalam pembahasan kali ini saya akan berbagi pengalaman bagaimana menghasilkan sinyal PWM untuk nanti kita terapkan pada Motor DC. jadi Motor DC bisa kita atur kecepatan putarnya dengan cara mengubah-ubah lebar denyutnya. perbedaan lebar denyut ini sering disebut dengan Duty Cycle, dan dinyatakan dalam Prosentase (%). Duty Cyle 50% berarti lebar denyut akan sama.
untuk menghasilkan sinyal PWM akan kita gunakan Mikrokontroler Atmega8A. Atmega8A mempunyai output PWM sebanyak 3 buah, yaitu OC1A, OC1B, dan OC2. untuk mempermudah kita pilih salah satu saja yaitu OC1A. jadi nanti kita akan menggunakan pin OC1A ini untuk menghasilkan sinyal PWM. dan sinyal PWM yang kita hasilkan nanti akan kita aplikasikan untuk mengendalikan Motor DC.
buatlah skema seperti diatas menggunakan proteus, jika kamu masih asing dengan proteus dan pemrograman Mikrokontroler AVR, kamu bisa membaca pada postingan Pemrograman Mikrokontroler untuk pemula.
OK...langsung ke Pemrogramannya, perhatikan potongan kode dibawah ini
'kode ini untuk mengatur timer1 sebagai PWM 10 bit
Config Timer1 = Pwm , Pwm = 10 , Compare_a_pwm = Clear_up , Prescale = 1
'ubah nilai ocr1a ini untuk menghasilkan nilai output PWM yg berbeda-beda
Ocr1a = 100
'menampilkan text "uji oba pwm"
Locate 1 , 1 : Lcd " Uji Coba PWM "
'kode diantara do.....loop akan selalu di kerjakan(main loop)
Do
'menampilkan text "OCR1A" ke LCD baris ke2
Locate 2 , 1 : Lcd "OCR1A"
'menampilkan nilai ocr1a saat ini
Locate 2 , 7 : Lcd Ocr1a
Loop
'selesai
End
tampilan di IDE Bascom-AVR akan seperti di bawah ini
ketikan atau cukup kamu copas kode diatas ke Bascom-AVR, lakukan Compilasi dan jalankan di Proteus. perhatikan putaran Motor. setelah itu kamu ganti nilai OCR1A menjadi 500 misalnya, amati putaran Motor. lalu kamu rubah nilai OCR1A ke 1023, amati putaran Motor.
tentu kita tidak menginginkan perubahan kecepatan motor ini dengan cara diatas, kita ingin menggunakan tombol UP dan Down. untuk itu kita harus menambahkan kode yang menangani penekanan tombol, dan kode pengambilan keputusan jika tombol UP maupun Down ditekan. perhatikan kode yang ada dibawah ini,
'kode ini untuk mengatur timer1 sebagai PWM 10 bit
Config Timer1 = Pwm , Pwm = 10 , Compare_a_pwm = Clear_up , Prescale = 1
'mengatur pinb.6 & 7 menjadi input tombol
Ddrb.6 = 0
Ddrb.7 = 0
Portb.6 = 1
Portb.7 = 1
'ubah nilai ocr1a ini untuk menghasilkan nilai output PWM yg berbeda-beda
Ocr1a = 100
'menampilkan text "uji coba pwm"
Locate 1 , 1 : Lcd " Uji Coba PWM "
'kode diantara do.....loop akan selalu di kerjakan(main loop)
Do
'menampilkan text "OCR1A" ke LCD baris ke2
Locate 2 , 1 : Lcd "OCR1A"
'menampilkan nilai ocr1a saat ini
Locate 2 , 7 : Lcd Ocr1a
'penanganan tombol untuk menaikan nilai OCR1A (mempercepat putaran)
If Pinb.7 = 0 Then
Incr Ocr1a
End If
'penanganan tombol untuk menurunkan nilai OCR1A (menurunkan putaran)
If Pinb.6 = 0 Then
Decr Ocr1a
End If
Loop
'selesai
End
tampilan sesungguhnya di Bascom-AVR seperti dibawah ini. perhatikan kode yang dilingkari
copas kode tersebut dan jalankan di Proteus, kemudian untuk mengatur kecepatan motor tinggal kamu gunakan Button Up dan Down. perhatikan putaran motor saat UP maupun Down
demikian Sob... Pengertian dan Cara Kerja PWM. dengan cara sederhana ini semoga dapat membantu pemahaman tentang apa itu PWM. dan jika memgiginkan mengatur intensitas Lampu Led misalnya, kamu tinggal ganti saja komponen Motor tersebut dengan sebuah Lampu Led.
Artikel Terkait
Pengertian dan Cara Kerja PWM
4/
5
Fauzi hp
1 komentar:
aydgyhasfdghgahwdaw
Reply]\