Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

4 kademeli dimmer

Başlatan bbs2006, 13 Mart 2014, 15:48:39

bbs2006

Merhaba
4 butonlu12 voltulk dc lambanın parlaıklıgını azaltıp artırmak istiyorum..1 butona bastıgım zaman %25 artacak. tekrar 1. butona bastıgım zaman parlaklık azalacak. 1. butona satıktan sonra 2. butona bastıgım zaman parlaklık %50 artacak. 2. butona tekrar bastıgım zaman parlaklık azalacak. %25 düşecek. diğer butonlarad aynı bu şekilde çalışacak. buna ait bir program yazdım. programda bir sıkıntı var. bir bakabilirseniz sevinirim.

#include<16f628a.h>
#fuses  intrc,nowdt,noprotect,nowdt,noprotect
#use delay(clock=4000000)

void main(){
setup_ccp1(ccp_pwm);
setup_timer_2(T2_DIV_BY_16,624,1);   

set_pwm1_duty(0);
a:
if (input(pin_a0)==1){
set_pwm1_duty(625);
delay_ms(10);
goto kd1;
}
else 
goto a;
kd1:
if (input(pin_a0)==1){
set_pwm1_duty(0);
delay_ms(10);}
else

m:
if (input(pin_a1)==1){
set_pwm1_duty(1250);
delay_ms(10);
goto kd2;
}
else 
goto a;
kd2:
if (input(pin_a1)==1){
set_pwm1_duty(625);
delay_ms(10);}
else
r:
if (input(pin_a2)==1){
set_pwm1_duty(1875);
delay_ms(10);
goto kd3;
}
else 
goto r;
kd3:
if (input(pin_a2)==1){
set_pwm1_duty(1250);
delay_ms(10);}
else
t:
if (input(pin_a3)==1){
set_pwm1_duty(2500);
delay_ms(10);
goto kd4;
}
else 
goto t;
kd4:
if (input(pin_a3)==1){
set_pwm1_duty(1875);
delay_ms(10);}

}


100 hz için pwm değeri

%25 için  625
%50      1250
%75       1875
%100  2500   değerleririn alıyor.