Cara pengaturan keluaran tegangan DC yang digunakan adalah dengan
menggunakan teknik PWM (Pulse Width Modulation), sebenarnya PWM merupakan salah satu teknik untuk mengatur kecepatan motor DC yang umum
digunakan. Dengan menggunakan PWM kita dapat mengatur kecepatan yang diinginkan
dengan mudah. Teknik PWM untuk pengaturan kecepatan motor adalah, pengaturan
kecepatan motor dengan cara merubah-rubah besarnya duty cycle pulsa.
Pulsa yang yang berubah ubah duty cycle-nya inilah yang menentukan
kecepatan motor. Besarnya amplitudo dan frekuensi pulsa adalah tetap, sedangkan
besarnya duty cycleberubah-ubah sesuai dengan kecepatan yang diinginkan,
semakin besar duty cylce maka semakin cepat pula kecepatan motor, dan
sebaliknya semakin kecil duty cycle maka semakin pelan pula kecepatan
motor. Sebagai contoh bentuk pulsa yang dikirimkan adalah seperti pada gambar berikut, pulsa kotak dengan duty cycle pulsa 50%.
Dengan teknik PWM saya mencoba untuk menghasilkan output
tegangan DC, variabel tegangan DC output dapat diubah-ubah dengan masukan ADCnya. Untuk
jelasnya dapat dilihat pada skematik berikut.
Listing programnya:
/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.3 Standard
Project : PWM using out tegangan DC
Date : 20/05/2014
Author : Bakhtiar. ST
Company : Politeknik Negeri Lhokseumawe
Comments:
Chip type : ATmega8535
Program type : Application
AVR Core Clock frequency: 12.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 128
*****************************************************/
#include <mega8535.h>
#include <delay.h>
#define ADC_VREF_TYPE 0x20
#define directionA PORTB.3
void adc_init()
{
ADCSRA=0X86; //ADC enable, ADC interrupt enable, set prescaller to 64
}
unsigned char getdata(unsigned char chno)
{
ADMUX=0X60; //right align the ADC result
ADMUX|=chno; //select the ADC channel
ADCSRA|=0X40; //start ADC convertion
delay_ms(1); //give some time delay to complit the ADC convertion
return ADCH;
}
void main()
{
//unsigned char pot=0;
adc_init();
SREG=SREG|0x80; //global interrupt enable
DDRB=0XFF; //set data direction as output
TCCR0=TCCR0|0x7A; //fast pwm,inverting mode,8 prescaler
while(1)
{
delay_ms(100);
OCR0= getdata(0); //read value from pot to OCR0
};
}
Untuk jelasnya uduh aja disini: Link 1 atau Link 2 Berbagi sangat menyenangkan email: tiar.poli@gmail.com
http://downloads.ziddu.com/download/23822330/PWM-DENGAN-OUPUT-TEGANGAN-DC.rar.html
Atau: http://www.4shared.com/rar/zl3KTD_sba/PWM_DENGAN_OUPUT_TEGANGAN_DC.html?
Atau: http://www.4shared.com/rar/zl3KTD_sba/PWM_DENGAN_OUPUT_TEGANGAN_DC.html?
Tidak ada komentar:
Posting Komentar