perçin
Üye
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);}
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);}