Em làm mạch điều khiển góc mở triac thông qua arduino, ở đây em dùng 1 mạch cầu phát hiện điểm 0 của của dòng điện xoay chiều 220V
Mạch cầu phát hiện điểm 0
Mạch kích triac
Khi phát hiển điểm 0 thì INVKD = HIGH, chân này e đưa vào hàm ngắt của arduino (ngắt cạnh lên)
Code arduino như sau:
khi tín hiệu INVDK = HIGH thì em cho delay 1 khoảng t ( 0ms - 9ms, vì tần số của 220V là 50Hz => 1 chu kì bằng 20ms), khoảng t này dùng để kéo dài điểm 0 của đầu ra (e điều chỉnh khoảng t bằng biến trở), sau khi delay thì e cho OUTVDK bằng HIGH, delay 1 ms rồi cho bằng LOW luôn
Nhưng khi test mạch thực tế thì lại ko dc như v. Khi chỉnh khoảng t = 0 thì đèn sáng, còn t khác 0 thì đèn tắt hẳn luôn chứ không giảm độ sáng.
Mạch e test:
Bị như v là do nguyên nhân nào ạ??? rất mong mọi người giúp đỡ
P/s: e tham khảo theo bài này ạ: http://hocdientu.vn/threads/dieu-khi...-bong-den.168/
Mạch cầu phát hiện điểm 0
Mạch kích triac
Khi phát hiển điểm 0 thì INVKD = HIGH, chân này e đưa vào hàm ngắt của arduino (ngắt cạnh lên)
Code arduino như sau:
Code:
unsigned int val = 0; unsigned int TimeDL = 0; #define IN_D 2 #define OUT_D 3 void setup() { Serial.begin(9600); pinMode(OUT_D, OUTPUT); pinMode(IN_D, INPUT); pinMode(A0, INPUT); digitalWrite(OUT_D, LOW); } void cross_zero() { delay(TimeDL); digitalWrite(OUT_D, HIGH); delay(1); digitalWrite(OUT_D, LOW); } void loop() { attachInterrupt(0, cross_zero, RISING); val = analogRead(A0); TimeDL = val/100; if(TimeDL >= 10) { digitalWrite(OUT_D, LOW); } Serial.print(val); Serial.print(" "); Serial.println(TimeDL); }
Nhưng khi test mạch thực tế thì lại ko dc như v. Khi chỉnh khoảng t = 0 thì đèn sáng, còn t khác 0 thì đèn tắt hẳn luôn chứ không giảm độ sáng.
Mạch e test:
Bị như v là do nguyên nhân nào ạ??? rất mong mọi người giúp đỡ
P/s: e tham khảo theo bài này ạ: http://hocdientu.vn/threads/dieu-khi...-bong-den.168/
Comment