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

33 responses to this post.

  1. Mo nanya nih lowongan y klo d ui link y pa nih??
    hehe…
    cie fahmi kpn nih d lntik y wordpress y…
    udh da skuran ga nih……

    Balas

  2. Posted by eddy ismanto on Juli 13, 2010 at 3:47 pm

    Mas,
    gimana cara untuk menghitung/counter jumlah pulsa yang diterima dalam waktu satu menit dan ditampilkan di LCD???
    mohon bantuannya,
    Email j ke
    eddyismanto@ymail.com

    Balas

  3. Posted by rizal on Desember 23, 2010 at 8:19 pm

    mas, bleh minta rangkaian USB downloader+firmware sma driverny buat windows 7 dong.
    thank you.

    Balas

  4. Bos, ini aku sharekan untuk mengakses PWM dengan ATMEGA16 menggunakan codevision
    http://iswanto.staff.umy.ac.id/2011/02/27/mengakses-pwm-atmega16-dengan-codevision/

    Balas

  5. Posted by praditya on Maret 17, 2011 at 4:17 pm

    mas, saya mau bikin sinyal picu bwt inverter 50Hz SPWM, caranya gmn y mas? thx

    Balas

  6. […] pengaturan kecepatan yang digunakan adalah dengan menggunakan teknik PWM (Pulse Width Modulation), salah satu teknik untuk mengatur kecepatan motor DC yang umum digunakan. […]

    Balas

  7. Posted by zainal muttaqin on September 10, 2011 at 3:33 pm

    mas,aq butuh contoh program pembacaan encoder pada avr 8535.bisa bantu gak?

    Balas

  8. Posted by bingung on Oktober 21, 2011 at 11:32 pm

    infonya sangat membantu 😀
    mo nanya nih mas.. masih awam banget.. mdh2an tauu. biar arah motor dc itu puterannya berbalik arah gmana yah ngontrolnya?? jadi abis berputer ke arah kanan dalam waktu tertentu.. dia balik berputer ke arah berlawanan dan seterusnnya secara bergantian.. gmana yah ^^

    Balas

    • pada prinsipnya untuk mengatur arah putaran motor dc dapat dilakukan dengan membalik tegangan yg masuk ke sikat motor ato arah arus yg masuk ke jangkar motor kita balik, tapi cara ini dapat meribetkan kita, oleh karena itu kita gunakan driver motor (IC l293d, l298 konfigurasi h-bridge transistor) yang dapat mengatur arah putar dan kecepatan putar motor dengan prinsip PWM 😀

      Balas

    • Posted by jumadi on Oktober 19, 2014 at 2:48 pm

      Pakai relay kaki 8 lebih mudah mas bro…..

      Balas

  9. Posted by mario on Desember 11, 2011 at 4:06 pm

    cara mengatur kecepetan motor brushless g mana ya?? mohon pencerahaannya

    Balas

  10. Posted by mario on Januari 3, 2012 at 12:46 am

    oohh gitu ya mass..kalau ic buat bridge tipe motor brushless ap tu mas ??:D

    Balas

  11. kemaren ane cuma beli mas driver motor brushlessnya… jadi tinggal program aja mas more information : http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1523

    Balas

  12. Mas sy refer ya blognya 🙂 trims http://ngooprek.com/blog/tutorials/

    Balas

  13. Posted by fery on Februari 28, 2012 at 8:29 am

    Assalamu’alaykum. Mas boleh nanya nggak?? Minimum system Untuk ATMEGA8535 itu beli langsung jadi ada nggak ya??

    maaf mas sy kurang tahu, maklum baru belajar mikrokontroler.. 🙂
    Sy bermukim disekitar wilayah surabaya dan sidoarjo..

    Balas

  14. Posted by tommy on Maret 24, 2012 at 11:34 pm

    mas mau tanya
    gimana caranya ngeluarin frekwensi dari atmeega8535 dan bisa di atur freqwensinya pake potensio tp bukan kaya PWM,prinsipnya simulasi encoder
    tnx

    Balas

  15. Posted by nanda on Maret 28, 2012 at 8:27 pm

    q mau tanya…
    bedanya Aplikasi PWM Mikrokontroler Atmega8535 ma ATmega16 tu pa??????

    Balas

  16. Posted by ellan on Mei 22, 2012 at 4:22 pm

    mas mau nanya… saya punya masalah dengan arah putaran motor menggunakan PWM. bagaimana cara mengubah arah putaran motor??? terima kasih… mungkin mas bisa memberikan jawaban dengan contoh program… 😀

    Balas

  17. mas tolong buat kan program line follower menggunakan atmega 8535 dengan bahasa C Avr donk…………lg butuh mas…???

    plishhh……….mas lg butuh ne???

    kirim ke email ne: rawiananakmarkas@gmail.com

    Balas

  18. Posted by cosaba on Oktober 14, 2012 at 8:25 pm

    klo mengotrol kecepatan motor dengan input dari output sinyal emg yang berbeda-beda bagaimana caranya

    Balas

  19. […] pengaturan kecepatan yang digunakan adalah dengan menggunakan teknik PWM(Pulse Width Modulation), salah satu teknik untuk mengatur kecepatan motor DC yang umum digunakan. […]

    Balas

  20. siapa tau dijawab.. sy masih disuruh ngerangkai simulasi dengan menggunakan atmeg8535, sensor PIR, sensor LM35, dan motor dc.. judul tugas akhir sy adalah “sistem kontrol lampu dan pendingin ruangan berbasis mikro kontroler” nah sy sudah tau pin timer/counter dpat mengatur kecepatan motor dengan mode PWM tp yg sy ingin tanyakn jd timer brapa yg bs dijadiin input untuk mengatur kecepatan motor…?? maaf gagal paham :’)

    Balas

  21. Ada berapa channel PWM mas yang bisa digunakan di mikrokontroler?

    Balas

Tinggalkan komentar