Langsung ke konten utama

Membuat PWM Atmega dari Timer dengan CodeVisionAVR


Bismillah

Sebenarnya membuat PWM bisa dengan berbagai cara, tapi kali ini saya ingin membahas tentang PWM yang dibuat dengan Timer Atmega.

Jalankan Aplikasi CodeVisionAVR versi 1.xx.x, lalu buatlah project baru



 Klik OK

 Klik Yes


Pada kesempatan kali ini saya memakai Atmega32 dengan Clock 8 MHz, kemudian klik bagian Timers



Yang saya gunakan sebagai PWM adalah Timer0, seting parameter seperti gambar diatas!
Kemudian pilih menu file, pilih Generate, Save and Exit


Akan muncul jendela warning

 
 Klik yes

 Beri nama file “pwm” (bebas namanya) klik save

 Beri nama file “pwm” (bebas namanya) klik save

 Beri nama file “pwm” (bebas namanya) klik save



Jendela editor diatas berisikan code inisial awal untuk membuat PWM, seperti biasa hapus semua code diatas kemudian ganti dengan code berikut

#include <mega32.h>    
#include <delay.h>  

#define pwm OCR0        //OCR0 adalah output untuk PWM
                        //OCR0 diberi nilai dari 0-255
                        //karena PWM yang digunakan adalah 8 bit

// Declare your global variables here    
unsigned char i=0;

void main(void)
{
// Declare your local variables here

// setingan untuk OC0 sebagai output karena berada pada PINB.4
// posisi OC0 tidak bisa diubah, harus berada pada PINB.4, coba lihat datasheet atmega32

PORTB=0x00;
DDRB=0x08;

//setingan register untuk membangkitkan PWM dari Timer0
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 8000.000 kHz
// Mode: Phase correct PWM top=FFh
// OC0 output: Non-Inverted PWM
TCCR0=0x61;
TCNT0=0x00;
OCR0=0x00;
 
while (1)
      {
      // Place your code here
      for(i=0;i<255;i++)// PWM akan dijalankan dengan variasi antara 0-255 dengan interval 100 ms
        {
        pwm=i;
        delay_ms(100);
        }
      };
}

Kemudian compile dengan menekan shift+F9 pada keyboard, hasil nya yaitu file *.hex saya simulasikan dengan proteus dengan rancangan seperti berikut


Dan hasil simulasinya adalah sebagai berikut


 
 Semoga Bermanfaat

Komentar

  1. aslkm. bos klo ngedit file code vision yg sudah di compile gimana?

    BalasHapus
    Balasan
    1. wa'alaykumussalam warahmatullah...

      file .hex nya kah? kalau file .hex nya saya belum pernah edit...

      Hapus
  2. Makasih banyak gan, sangat membantu. sukses selalu

    BalasHapus
  3. gan kalo kluaran pwmnya pengen 6 buah gmna caranya?? misal ane pake porb.0 sampe 5 . . d atmega 16??

    mohon bantuannya kakak yg baik hatii

    BalasHapus
    Balasan
    1. bisa... pake timer... tapi itung itung sendiri. yang penting ngerti konsep dasar PWM insya Allah bisa

      Hapus
  4. Terimakasih mas, sangat membantu.

    BalasHapus
  5. cara mengetahui frekuensi nya gmn ya???trus apa bisa frekuensinya diubah??

    BalasHapus
    Balasan
    1. untuk frekuensi di seting pada codeWizardAvr nya

      Hapus
  6. cara mengetahui frekuensi nya gmn ya???,tru apa bisa frekuensinya diubah??

    BalasHapus
  7. Sangat membantu sekali terimakasih.
    apakah saudara punya contoh program untuk mengatur kecepatan program pada motor BLDC?

    BalasHapus
    Balasan
    1. cara prgramnya mirip servo, pake pwm interrupt

      Hapus
  8. mas saya masih bingung dengan pwm ini, gimana ya caranya kalau mau ngeluarin pwmnya sebanyak 3 buah y padahal pin keluarannya cuma 2 kan mas?

    BalasHapus

Posting Komentar

Postingan populer dari blog ini

Menggunakan USART / UART di CodeVision AVR

Sudah lama saya tidak menulis di blog, dan kali ini saya akan berbagi sedikit pengalaman saya mengenai USART/UART di mikrokontroler AVR ATMEGA series. Kesempatan kali ini saya akan menggunakan Atmega8 dan mengaktifkan fitur USARTnya dengan CodeVision AVR versi 1.xx.x Jalankan aplikasi Codevision kemudian pada menu file pilih new, nanti akan muncul jendela create new file pilih project dan klik OK, akan muncul jendela confirm klik yes,

Menggunakan ADC Mikrokontroler ATmega 32 dengan CodeVision

Sebenarnya cara ini bisa dipakai untuk mikrokontroler Atmega seri lainnya juga. Saya kali ini akan menggunakan ADC Atmega32 dengan menggunakan CodeVision AVR. Langsung saja buka aplikasi CodeVision AVR kemudian buat project baru setelah itu akan muncul jendela CodeWizard AVR