Interruptor crepuscular con pic

Hola amigos bueno quisiera q me aconsejaran sobre un circuito crepuscular con un pic tengo una idea pero me falla en el diagrama porque lo unico q me hace es bajar la intensidad pero la fotoresistencia no me hace nada...
anexo el programa:
#include<16F883.h>
#fuses INTRC_IO,NOMCLR,NOWDT,NOPROTECT,PUT,NOLVP,NOBROWNOUT
#use delay(clock=8000000)

#use fast_io(A)
#use fast_io(B)
#use fast_io(C)
#use fast_io(E)

#byte PUERTO_A=0x05
#byte PUERTO_B=0x06
#byte PUERTO_C=0x07
#byte PUERTO_E=0x09

#bit RA0=0x05.0
#bit RA1=0x05.1
#bit RA2=0x05.2
#bit RA3=0x05.3
#bit RA4=0x05.4
#bit RA5=0x05.5
#bit RA6=0x05.6
#bit RA7=0x05.7

#bit RBO=0x06.0
#bit RB1=0x06.1
#bit RB2=0x06.2
#bit RB3=0x06.3
#bit RB4=0x06.4
#bit RB5=0x06.5
#bit RB6=0x06.6
#bit RB7=0x06.7

#bit RC0=0x07.0
#bit RC1=0x07.1
#bit RC2=0x07.2
#bit RC3=0x07.3
#bit RC4=0x07.4
#bit RC5=0x07.5
#bit RC6=0x07.6
#bit RC7=0x07.7

#bit RE3=0x09.0

int luzambiente=0;

void inicializar(void){
setup_port_a(sAN0);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);

setup_ccp1(CCP_PWM);
setup_timer_2(T2_DIV_BY_16,255,1);

set_tris_a(0b11111111);
set_tris_b(0b00000000);
set_tris_c(0b11111011);
set_tris_e(0b11111111);
}
void main(){
inicializar();
while(TRUE){
set_adc_channel(1);
delay_ms(3);
luzambiente=read_adc();

if(luzambiente<=173) //esta oscuro
{
set_adc_channel(0);
delay_ms(3);
PUERTO_B=read_adc();

set_pwm1_duty(PUERTO_B);

}
else
{ set_pwm1_duty(0);
}
}//Fin del While
}//Fin del Main
 
Atrás
Arriba