Điều khiển góc mở của Triac để thay đổi độ sáng của bóng đèn
Xin chào các bạn, hôm nay mình xin giới thiệu với các bạn về cách điều khiển góc mở của Triac. Cụ thể của tôi ở đây là điều khiển độ sáng của bóng đèn thông qua vi điều khiển . Mạch của mình có dùng MOC3021 và một mạch cầu dùng để phát hiện điểm 0 của dòng điện xoay chiều 220V.
Mạch cầu dùng để phát hiện điểm 0 của điện xoay chiều 220V
Tín hiệu tại hai đầu của Diode Zener 5V
Tín hiệu tại điểm INVDK
Khi tín hiệu vào bằng 1 chúng ta delay một khoảng thời gian ( thời gian delay sẽ được thay đổi thông qua việc vặn biến trở nó sẽ nằm trong khoảng từ 1ms->9ms bời vì chu kỳ của điện áp 220V là 20ms ). Khoảng thời gian delay này sẽ quyết định độ sáng của bóng đèn. Sau khi delay chúng ta sẽ cho tín hiệu OUTVDK bằng 1( để mở Triac ) sau đó cho bằng 0 luôn ( delay 1ms rồi cho về 0)
unsigned int read_adc(unsigned char adc_input) { ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA|=0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCW; } void main(void) { // Port C initialization // Func6=In Func5=In Func4=In Func3=In Func2=Out Func1=In Func0=In // State6=T State5=T State4=T State3=T State2=1 State1=T State0=T PORTC=0x00; DDRC=0x02; // ADC initialization // ADC Clock frequency: 1000.000 kHz // ADC Voltage Reference: AREF pin ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x83; OUT = 0; while (1) { val = read_adc(5); TimeDL = val/100; if (TimeDL==10) { OUT=0; } else { if (IN) { delay_ms(TimeDL); OUT = 1; delay_ms(1); OUT = 0; } } } }
Mạch điều khiển góc mở của Triac dùng MOC3021
Khi tín hiệu tại OUTVDK lên 1 thì tại điểm G của Triac sẽ có dòng làm cho hai đầu A2 và A1 của Triac thông với nhau. Khi tín hiệu tại OUTVDK về 0 thì A2 và A1 sẽ đóng khi điện áp xoay chiều về 0 ( tức là chênh lệch điện áp giữa A2 và A1 là 0 ).
Nhận xét
Đăng nhận xét