Daha önce paylaştığım "12f675 ile triyak kontrol" başlık altındaki kodlar denenmiş bir dimmer devresinin kodlarıdır.
Bazı kardeşlerimin bunu bir triyak'ı açma kapama olarak algılamış olabileceklerini
düşünerek kodları tektardan veriyorum . "delay_us)" u değişrirerek başlangıç
ve bitiş noktasını ayarlayabilirsiniz..."moc3021" kullanmayı unutmayınız.
//**************TRİYAK KONTROL **************//
#fuses INTRC_IO, NOWDT, NOMCLR, PROTECT, NOBROWNOUT
#include <math.h>
#use delay(clock=4000000)
#define timer 1
int16 adc;
int i=0;
#int_timer0
void zero_crossing()
{
set_timer0(timer);
set_adc_channel(0);
adc=read_adc();
if(input(pin_a1)==0)
{
i++;
while(input(pin_a1)==0)
{i=i;}
delay_us(adc*50);
output_high(pin_a2);
delay_us(11);
output_low(pin_a2);
}}
void main()
{
setup_adc(ADC_CLOCK_INTERNAL );
setup_adc_ports( AN0_analog);
delay_ms(1);
set_adc_channel(0);
setup_timer_0(RTCC_INTERNAL | RTCC_DIV_1);
set_timer0(timer);
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
while(1);}