6.b - Dc motor hız kontrolü (PWM)


/***** DC-MOTOR HIZ KONTROLÜ Yazan: Burak TASASIZ *****/
/************************************************
YAZILIMIN İŞLEVİ: B portunun RB0, RB1
bacakları L293D entegresinin sırasıyla IN1, IN2
bacaklarına bağlanıyor. Ayrıca
Mikrodenetleyicinin RA7 bacağına buton bağlanıyor.
Böylelikle butona basılmadığı zaman dc-motor
%70 doluluk oranı ve 100 Mhz'lik PWM ile sürülüyor,
butona basıldığı zaman ise %90 doluluk oranı ve
100 Mhz'lik PWM ile sürülüyor.
************************************************/

#include <16f628a.h>
#FUSES NOWDT, INTRC, NOPUT, NOPROTECT, NOBROWNOUT, NOMCLR, NOLVP, NOCPD
#use delay(clock=4000000)

void main()
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);

set_tris_b(0x00); /*B Portunun tüm bacakları çıkış olarak ayarlanıyor.*/
output_b(0x00); //Port temizlemesi

set_tris_a(0xFF); /*A Portunun 7. bacağı giriş olarak ayarlanıyor.*/
output_a(0x00); //Port temizlemesi

While(1)//Sonsuz döngü
{
if(input(pin_a7))//Butona basılmışsa,
{
output_b(0x01);
delay_ms(9);
output_b(0x00);
delay_ms(1);
/*%90 doluluk oranı ve 100 Mhz'lik PWM*/
}
else//Butona basılmamışsa,
{
output_b(0x01);
delay_ms(7);
output_b(0x00);
delay_ms(3);
/*%70 doluluk oranı ve 100 Mhz'lik PWM*/
}
}

}

Hiç yorum yok:

Yorum Gönder