Pwm yang sering kalian sebut sebagai Pulse with modulation sekarang bisa kalian buat sendiri dengan menggunakan mikrokontroler CvAvr.Nah penjelasan detil kenapa saya menggunakan Phcorrect TOP = 0x00FF. Ini artinya saya menggunakan mode pencacah gelombang penuh dengan 8 bit PWM atau maximal pwm adalah 255.Untuk menghasilkan gelombang yang baik kita hanya perlu melakukan setingan seperti pada gambar dan petunjuk dibawah ini saja.
Kalian cukup membuka Codewizard avr ,tak perlu membuka datasheet .Di codewizard kalian bisa seting-seting jenis Pwm apa yang akan kalian pakai dan kalian bisa lihat hasilnya di proteus , sama seperti yang saya contohkan dibawah .
Setelah ini kalian Save hasilnya kemudian compile dan jalankan programnya di proteus kalian.Karena pwmnya non invert jadi gelombangnya seperti di bawah ini . untuk lebih jelasnya kalian bisa coba sendiri di Pc kalian , apa perbedaan invert dan non invert.
#include <mega32.h>
// Declare your global variables here
void main(void)
{
// Port D initialization
// Func7=In Func6=In Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=0 State4=0 State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x30;
/
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 250.000 kHz
// Mode: Ph. correct PWM top=0x00FF
// OC1A output: Non-Inv.
// OC1B output: Non-Inv.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0xA1;
TCCR1B=0x03;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
while (1)
{
OCR1AL=100; // hasil dari dutty cycle dan frekuensinya kalian bisa lihat simulasi diatas
}
}
untuk lebih jelasnya dan lebih praktisnya , kalian bisa download programnya langsung di bawah ini
Download program PWM AVR
Download simulasi proteus Pwm
0 komentar:
Post a Comment