Điều khiển góc mở của Triac để thay đổi độ sáng của bóng đèn

Thảo luận trong 'Các Modul Cơ Bản' bắt đầu bởi Dukebk.dt7, 10 Tháng mười hai 2012.

Users Viewing Thread (Users: 0, Guests: 1)

  1. Đăng ngày 10 Tháng mười hai 2012 #1

    Dukebk.dt7

    Member

    Số bài viết: 59
    Đã được thích: 31
    Điểm thành tích: 18
    Giới tính: Nam
    Tiền:
    $3,183
    Hi!
    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.
    [IMG]
    Mạch cầu dùng để phát hiện điểm 0 của điện xoay chiều 220V


    [IMG]
    Tín hiệu tại hai đầu của Diode Zener 5V
    [IMG]
    Tín hiệu tại điểm INVDK
    Tín hiệu tại điểm INVDK cho ta thấy khi điện áp xoay chiều 220V về giá trị 0 thì xung tín hiệu lúc đó tại INVDK sẽ là 5V. Chúng ta sẽ cho tín hiệu này vào VĐK và xử lý.
    [IMG]
    Vi điều khiển
    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)
    Mã:
    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;
                }
            }
    }
    }

    [IMG]
    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 ).

    [IMG]
    Điện áp đầu ra tại RL

    Việc phát hiện được điểm 0 của điện áp 220V sẽ giúp chúng ta đóng mở được trong từng chu kỳ của điện 220V thay vì đóng và mở mỗi chu kỳ ( việc này có ừng dụng rất nhiều trong việc điều khiển động cơ xoay chiều )

    [IMG]
    Đây là sản phẩm nhỏ của mình

    Video :
  2. Đăng ngày 10 Tháng mười hai 2012 #2

    quang.dt7bk

    Nhóm MCU

    Số bài viết: 320
    Đã được thích: 290
    Điểm thành tích: 63
    Giới tính: Nam
    Tiền:
    $116,800
    Thử điều khiển động cơ xem sao!
  3. Đăng ngày 10 Tháng mười hai 2012 #3

    dan.nvan

    Nhóm MCU

    Số bài viết: 83
    Đã được thích: 110
    Điểm thành tích: 33
    Giới tính: Nam
    Tiền:
    $18,795
    Co video ko ban
  4. Đăng ngày 10 Tháng mười hai 2012 #4

    quang.dt7bk

    Nhóm MCU

    Số bài viết: 320
    Đã được thích: 290
    Điểm thành tích: 63
    Giới tính: Nam
    Tiền:
    $116,800
    Vẫn ko hiểu đoạn điều khiển góc mở của Triac lắm
  5. Đăng ngày 11 Tháng mười hai 2012 #5

    Arsenal_FC

    New Member

    Số bài viết: 7
    Đã được thích: 1
    Điểm thành tích: 3
    Giới tính: Nam
    Tiền:
    $560
    @ quang.dt7bk: Mình cũng chưa hiểu lắm.Giống ON, OFF đầu ra theo delay.
    Có phải góc mở quyết định bằng thời gian delay để cho OUTVĐK qua các mức không.Nếu thế thì nó vẫn hình sin chứ, trể thời gian ~ trể pha thôi. U~=A.cos(wt+x1) trể thì U~=A.cos(wt+x1+x2).Không biết có gì sai không.
    Bạn chủ Topic nói rõ hơn nhé.
    quang.dt7bk thích bài này.
  6. Đăng ngày 11 Tháng mười hai 2012 #6

    NamKira

    Nhóm MCU

    Số bài viết: 188
    Đã được thích: 220
    Điểm thành tích: 63
    Giới tính: Nam
    Tiền:
    $23,593
    Chủ topic đã đăng bài viết thì chắc đã làm chủ được mọi thứ :)

    Mình sẽ hỗ trợ bạn ấy làm video nhanh nhất có thể , lúc ấy các bạn sẽ rõ hơn :cool:
    Dukebk.dt7 thích bài này.
  7. Đăng ngày 11 Tháng mười hai 2012 #7

    Le Van Dao

    New Member

    Số bài viết: 2
    Đã được thích: 1
    Điểm thành tích: 3
    Giới tính: Nam
    Tiền:
    $0
  8. Đăng ngày 11 Tháng mười hai 2012 #8

    Dukebk.dt7

    Member

    Số bài viết: 59
    Đã được thích: 31
    Điểm thành tích: 18
    Giới tính: Nam
    Tiền:
    $3,183
    Ở đây mình đã có 1 mạch để phát hiện điểm 0 của U~. Nếu như U~=0 thì mình sẽ delay 1 khoảng thời gian t1. Thời gian t1 này chính là thời gian kéo dài điểm 0 của đầu ra chứ không phải làm trễ đi như bạn hiểu. Giả sử trong 1 nửa chu kỳ (từ t=0ms ->10ms) U~=A.cos(wt+x1) thì điện áp tại RL sẽ là từ 0->t1 sẽ là bằng 0 còn từ t1->t2 thì U~=A.cos[w(t-t1)+x1], như thế điện áp vào và điện áp tại RL là cùng pha với nhau chứ không phải là trễ pha.
  9. Đăng ngày 11 Tháng mười hai 2012 #9

    bienhou

    Member

    Số bài viết: 70
    Đã được thích: 15
    Điểm thành tích: 8
    Giới tính: Nam
    Tiền:
    $443
    điều chỉnh triac thực chất cũng chỉ là đc xung pwm, tần số điện dân dụng là 50 Hz => chu kỳ = 0.02s.
    Bây h ta chỉ cần tạo 1 xung có độ rộng là 0.02s bằng cách tính toán timer.
    Nửa chu kỳ đầu ( 0,01s) Triac được mở nếu có xung dương kích vào cực Gate còn nửa chu kỳ sau nó sẽ tự khóa.
    Như vậy ta chỉ cần điều khiển xung ON hợp lý trong khoảng 0.01s ban đầu là đk được góc mở Triac.
    Mạch phát hiện điểm 0 chính là để đồng pha vs tần số 50hz.
    Khi phát hiện mức điện áp 0v thì timer bắt đầu chạy.
    sinhviencabiet and quang.dt7bk like this.
  10. Đăng ngày 19 Tháng mười hai 2012 #10

    chuong

    Member

    Số bài viết: 86
    Đã được thích: 10
    Điểm thành tích: 8
    Giới tính: Nam
    Tiền:
    $380
    cho em hỏi là nếu cái chân INVDK đưa vào chân INT0 thì điều khiển có được không, kiểu dạng như điều khiển ngắt ngoài. Còn đầu vào của diode cầu thì dùng 12v AC thay cho 220v được không.
  11. Đăng ngày 19 Tháng mười hai 2012 #11

    Dukebk.dt7

    Member

    Số bài viết: 59
    Đã được thích: 31
    Điểm thành tích: 18
    Giới tính: Nam
    Tiền:
    $3,183
    Cái chân INVDK bạn có thể sử dụng INT0 được, cái đấy chỉ do code của mình xử lý như thế nào thôi mà. Còn đầu vào của diode cầu nếu bạn dùng AC 12v thay cho 220 thì AC 220v thì nguồn AC 12v củabạn phải có cùng pha với cái nguồn AC mà bạn điều khiển bóng đèn (tức là không bị trễ hơn hay sớm hơn vì đây là phát hiện điểm 0 của nguồn bóng đèn nếu khác pha nhau thì điểm 0 của nguồn 12v lại không là điểm 0 của nguồn kia)
  12. Đăng ngày 20 Tháng mười hai 2012 #12

    chuong

    Member

    Số bài viết: 86
    Đã được thích: 10
    Điểm thành tích: 8
    Giới tính: Nam
    Tiền:
    $380
    nguồn 220v của em đưa vào biến áp và nguồn vào của bên triac . Từ biến áp này em chuyển thành 12v AC. Từ 12v AC em đưa qua diode cầu.
    [IMG]
  13. Đăng ngày 20 Tháng mười hai 2012 #13

    chuong

    Member

    Số bài viết: 86
    Đã được thích: 10
    Điểm thành tích: 8
    Giới tính: Nam
    Tiền:
    $380
    đây là mạch sơ đồ nguyên lí mà em dùng lúc trước. Nhưng không hiểu sao vẫn không bắt được điểm 0 được anh ah. Hay phải làm 1 mạch điểm 0 giống như anh thì mới đúng
  14. Đăng ngày 20 Tháng mười hai 2012 #14

    Dukebk.dt7

    Member

    Số bài viết: 59
    Đã được thích: 31
    Điểm thành tích: 18
    Giới tính: Nam
    Tiền:
    $3,183
    Bạn có đo được oscilo của mạch kia không gửi cho mình coi được không
    chuong thích bài này.
  15. Đăng ngày 20 Tháng mười hai 2012 #15

    chuong

    Member

    Số bài viết: 86
    Đã được thích: 10
    Điểm thành tích: 8
    Giới tính: Nam
    Tiền:
    $380
    :( không có anh. em học bên cơ điện tử nhưng lại biết rất ít về mấy cái oscilo này. Em chỉ đưa mạch cho anh xem thử thôi. Em đã làm với cái sơ đồ nguyên lí kia rồi. Nhưng nó không chạy, không hiểu sao nữa anh ah
  16. Đăng ngày 20 Tháng mười hai 2012 #16

    chuong

    Member

    Số bài viết: 86
    Đã được thích: 10
    Điểm thành tích: 8
    Giới tính: Nam
    Tiền:
    $380
    [IMG][/IMG]
  17. Đăng ngày 20 Tháng mười hai 2012 #17

    Dukebk.dt7

    Member

    Số bài viết: 59
    Đã được thích: 31
    Điểm thành tích: 18
    Giới tính: Nam
    Tiền:
    $3,183
    Có gì để mai mình thử làm 1 cái như mạch của bạn rồi đo xem nó thế nào:D
    chuong thích bài này.
  18. Đăng ngày 20 Tháng mười hai 2012 #18

    chuong

    Member

    Số bài viết: 86
    Đã được thích: 10
    Điểm thành tích: 8
    Giới tính: Nam
    Tiền:
    $380
    oh thế cảm ơn anh nhiều nhé, nếu em đặt bên anh luôn thì thế nào anh. Do em muốn làm luôn 1 cái kit gồm những phần trong đồ án em luôn ý
  19. Đăng ngày 20 Tháng mười hai 2012 #19

    chuong

    Member

    Số bài viết: 86
    Đã được thích: 10
    Điểm thành tích: 8
    Giới tính: Nam
    Tiền:
    $380
    1 vi điều khiển, 1 lcd 16x2, 1 ds1820, mạch công suất, thêm mạch xác định điểm 0 này nữa ^^
  20. Đăng ngày 20 Tháng mười hai 2012 #20

    Dukebk.dt7

    Member

    Số bài viết: 59
    Đã được thích: 31
    Điểm thành tích: 18
    Giới tính: Nam
    Tiền:
    $3,183
    Có gì bạn cứ đến hỏi xem thế nào chứ mình không biết
    chuong thích bài này.

Chia sẻ trang này