Bismillah
Sebenarnya
membuat PWM bisa dengan berbagai cara, tapi kali ini saya ingin membahas
tentang PWM yang dibuat dengan Timer Atmega.
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 ExitAkan 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);
}
};
}
Dan hasil simulasinya adalah sebagai berikut
Semoga Bermanfaat
trims ya mudah di mengerti
BalasHapusalhamdulillah, semoga bermanfaat
Hapusaslkm. bos klo ngedit file code vision yg sudah di compile gimana?
BalasHapuswa'alaykumussalam warahmatullah...
Hapusfile .hex nya kah? kalau file .hex nya saya belum pernah edit...
Makasih banyak gan, sangat membantu. sukses selalu
BalasHapussama2 gan, semoga bermanfaat...
Hapusgan kalo kluaran pwmnya pengen 6 buah gmna caranya?? misal ane pake porb.0 sampe 5 . . d atmega 16??
BalasHapusmohon bantuannya kakak yg baik hatii
bisa... pake timer... tapi itung itung sendiri. yang penting ngerti konsep dasar PWM insya Allah bisa
HapusTerimakasih mas, sangat membantu.
BalasHapuscara mengetahui frekuensi nya gmn ya???trus apa bisa frekuensinya diubah??
BalasHapusuntuk frekuensi di seting pada codeWizardAvr nya
Hapuscara mengetahui frekuensi nya gmn ya???,tru apa bisa frekuensinya diubah??
BalasHapusSangat membantu sekali terimakasih.
BalasHapusapakah saudara punya contoh program untuk mengatur kecepatan program pada motor BLDC?
alhamdulillah, maaf tidak ada
Hapuscara prgramnya mirip servo, pake pwm interrupt
Hapusmas 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