Check the new version here

Popular channels

Dimmer con PIC16F887

Teoría



Código en PIC C Compiler CCS

#include <16F887.h>
#device ADC=10
#use delay(internal=4000000)
#include <lcd.c>
#use fast_io(c)
int32 angulo = 0, valordigital = 0, retardo = 0;
#INT_EXT
void EXT_isr(void)
{
output_c(0b0);
delay_us(retardo);
output_c(0b1);
}
void main()
{
set_tris_c(0b00000000);
output_c(0b00000000);
lcd_init();
setup_adc_ports(sAN0);
setup_adc(ADC_CLOCK_INTERNAL);
enable_interrupts(INT_EXT);
enable_interrupts(GLOBAL);
while(TRUE)
{
valordigital = read_adc();
angulo = (180 * valordigital)/1023.0;
retardo = ((((8.3333333 * angulo)/180))*1000);
lcd_gotoxy(1,1);
printf(lcd_putc,"%Lu ",angulo) ;
}
}

Diagrama electrónico en Proteus



Gráficas



Señal amarilla: Señal rectificada

Señal roja: detección de cruce por cero

Señal azul: Señal de angulo de disparo

Señal verde: Señal en la carga
0
1
0
0
1Comment
      GIF
      New