logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Sterowanie jasnością żarówki 100W triakiem BT138 z Moc3023 i Atmegą - niestabilność

noel200 14 Mar 2016 17:24 4032 10
  • #1 15522981
    noel200
    Poziom 26  
    Witam, zrobiłem sobie pewne urządzenie i tam z atmegi chcę sterować jasnością żarówki 100W. Traka wsadziłem Bt138 sterowanego z moc3023, a ten z atmegi.
    Działa to, ale niestabilnie. Powyżej poboru 80w mocy przez żarówkę, po kilku minutach słychać jakieś trzaski jakby iskrzenie styków i w końcu żarówka gaśnie. Po chwili jak znów ją włączę to to samo. Gdy w programie wyjście uC które jest połączone z moc po prostu włączę na stałe, to żarówka świeci pełną jasnością, ale po kilku minutach sytuacja się powtarza. Gdy podam na moc 5V zworką z L7805 to też podobnie, jednak świeciła żarówka 10 min i tylko trzeszczało trochę, ale nie zgasła.
    Poniżej schemat, bo mam wrażenie to to tu coś kuleje, a nie w programie.
    Sterowanie jasnością żarówki 100W triakiem BT138 z Moc3023 i Atmegą - niestabilność
    Przedwczoraj zmieniłem rezystory, bo ten na wejściu moc był 1k, a ten przed triakiem 470k. Teraz jest jakby lepiej, ale wciąż nie tak jak powinno.
    Co jest w schemacie źle? Obciążenie rezystancyjne w postaci żarówki, więc taka prosta aplikacja myślałem, że będzie działać.
  • #2 15523008
    mariann
    Poziom 38  
    Witam
    noel200 napisał:
    po kilku minutach słychać jakieś trzaski jakby iskrzenie styków i w końcu żarówka gaśnie.

    Sprawdź połączenia, bo pewnie gdzieś nie łączy dobrze. Może w oprawce żarówki? Nie wiem jak to masz połączone. Lutowane czy skręcane?
    Pozdrawiam
  • #3 15523033
    anders11
    Poziom 30  
    Skoro jest już detekcja zera podawana na mikrokontroler to
    druga detekcja na MOC3023 jest już zbędna ,a nawet szkodliwa.
    Wymień tego optotriaka na model bez detekcji
  • #4 15523177
    noel200
    Poziom 26  
    anders11 napisał:
    Skoro jest już detekcja zera podawana na mikrokontroler to
    druga detekcja na MOC3023 jest już zbędna ,a nawet szkodliwa.
    Wymień tego optotriaka na model bez detekcji

    Znaczy... bo nie kumam. Tlp504 "mówi" dla uC kiedy sinus przechodzi przez zero, później w programie jest odmierzony odpowiedni odcinek czasu i podaję sygnał na MOC. Po odmierzeniu 20us przestaję wysyłać sygnał na moc, a ten przy przechodzeniu prze zero wyłącza triaka. Czy nie tak to działa? Jeżeli nie będę miał sygnału z Tlp to skąd wiedzieć kiedy załączyć Moc?
    Nie chodzi tylko o włącz/wyłącz, ale także o sterowanie jasnością.

    Dodano po 11 [minuty]:

    mariann napisał:
    Sprawdź połączenia, bo pewnie gdzieś nie łączy dobrze. Może w oprawce żarówki? Nie wiem jak to masz połączone. Lutowane czy skręcane?

    Triak i moc na płytce lutowane, a reszta połączeń przewodami z tulejkami i zaciśnięta porządnie. Jestem prawie pewien, że ten dźwięk jest z triaka.
    W trakcie gdy to się zaczyna dziać triak i moc są praktycznie zupełnie zimne.
  • Pomocny post
    #5 15523450
    anders11
    Poziom 30  
    noel200 napisał:
    Jeżeli nie będę miał sygnału z Tlp to skąd wiedzieć kiedy załączyć Moc?


    TLP504 zostaw , wymień tego MOC-a na takiego bez detekcji
    To detekcja z TLP 504,podana na mikrokontroler określa moment włączania a wyłączanie
    na triaku przebiega automatycznie w zerze , tzn gdy zabraknie sygnału sterującego
    to triak i tak będzie przewodził aż do zaniku napięcia na elektrodach czyli przechodzenia przez zero
    Natomiast załączanie sterowane dwoma detektorami ,które mogą mieć przesunięcia fazowe
    będzie powodowało błędne działanie układu
  • #6 15523500
    noel200
    Poziom 26  
    Aha, czyli to triak się automatycznie wyłącza w zerze. A ja myślałem, że to moc tak działa.
    A na jaki np. moc zmienić? Mam jeszcze MOC3041. Pasowałby?
  • #7 15523723
    anders11
    Poziom 30  
    Np MOC3020 nie posiada sensora przejścia przez zero
    Podany przez Ciebie MOC3041 posiada sensor więc się nie nadaje
  • #8 15524104
    noel200
    Poziom 26  
    W ds moc3020 jedyna różnica jaką znalazłem pomiędzy obecnym moc3023 to prąd diody. W ds moc3041 jest napisane "zero cross". Przy 3023 tego nie ma. Co to więc oznacza?
  • Pomocny post
    #9 15524357
    Loker
    Poziom 39  
    "Zero cross" - detekcja przejścia przez zero - optotriak włączy się przy przejściu przez zero.
    Tak na marginesie - jeśli sterujesz fazowo obciążenie rezystancyjne to dołóż dławik w szereg, bo upalisz triaka (di/dt).
  • #10 15528530
    perlon
    Poziom 20  
    Coś Panowie wpuszczacie kol.noel200 w maliny. MOC3023 podobnie jak 3020,3021 i 3022 nie ma detekcji przejścia przez zero. Tak więc jak najbardziej do sterowania fazowego się nada. Przy obciążeniu rezystancyjnym żadne gasiki raczej nie są potrzebne. I pytanie do kol.Loker. Gdzie znajdę informację o konieczności zastosowania dławika przy obciążeniu rezystancyjnym? Która strona DS'a i jak powinien być dobierany?
  • #11 15528767
    noel200
    Poziom 26  
    perlon napisał:
    MOC3023 podobnie jak 3020,3021 i 3022 nie ma detekcji przejścia przez zero.

    No właśnie też mi się tak wydawało. Czytałem notę trzy razy, ale nic nie znalazłem.
    perlon napisał:
    Przy obciążeniu rezystancyjnym żadne gasiki raczej nie są potrzebne.

    Tu też tak myślałem. Aplikację zrobiłem na podstawie ds na obciążenie rezystancyjne, a triaka dobrałem tak by wytrzymał prąd zimnej 200W żarówki.
    Kto wie, może jednak są jakieś nieznane mi zasady, które warto stosować, a które nie ją jasno opisane. W każdym razie dalej testuję.
    Wczoraj podłączyłem z zewnętrznego zasilacza 5V na bramkę triaka. Tak samo po około 20minutach żarówka zaczęła mrugać, aż zgasła. Włączanie i wyłączanie 5V nie dawało rezultatu, ale jak ruszyłem oprawką żarówki to się zapaliła. Zmieniłem więc na inną i było dobrze. Dziś tamtą oprawkę połączyłem na krótko, wymieniłem przewody i testuję, ale pod wyzwalaniem z uC, tylko kod zmieniłem, tak by świeciła cały czas na 100%.

    Dodano po 2 [godziny] 13 [minuty]:

    Testuję dalej. Jakiś kwiatek mi wyszedł. Teraz już żarówka świeci stabilnie. Chyba ten adapter na żarówkę nie łączył.
    W każdym razie dobrze się składa, że moderator przeniósł temat do programowania. Mam taką część kodu:
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    Przerwanie INT0 to z układu detekcji zera sieci. Pojawia się ono minimalnie przed zerem, więc na początek wyłączam triaka, zwiększam pewien licznik (czyli 100 razy na sekundę), dziele na 1200 i wynika z tego, że zmienna "jasność1" osiągnie wartość 100 po 1200sekund czyli 20 minutach. Owa zmienna "jasnosć1" decyduje która wartość tablicy zostanie pobrana i wstawiona do Timera1. Ten odmierzy wartość czasu za załącza triaka.
    Kwiatek polega na tym, że jeżeli podstawię ręcznie wartość 49 do zmiennej "jasnosć1" z tablicy powinna zostać pobrana wartość 15562 a jest pobrana wartość 2338 czyli ostatnia. Co jest nie tak, bo nie rozumiem nic z tego.
    Gdy zmienię program, tak, że linijka:
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod

    ma postać taką:
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod

    To układ działa jak należy. Zmienna "jasność1" oczywiście osiąga max wartość 49, ale żarówka osiąga pełną jasność, więc zostaje z tablicy pobrany element nr.99. Pytanie dlaczego?

    Dodano po 2 [godziny] 51 [minuty]:

    Znalazłem problem. Wcześniej zmienna "licznik_jasnosć" pełniła trochę inną funkcję i była zadeklarowana jako long czyli 4-ro bajtowa. Funkcja "Load Timer1 , licznik_jasnosc" ładowała więc do timera jakąś kosmiczną 10 cyfrową liczbę. Zmiana na odpowiadający tablicy i timerowi 1 typ zmiennej (word) załatwiło sprawę.
    Wcześniej jednk mostek robiłem pomiędzy +5V a wejście moc3023 i też nie świeciło dłużej niż 20 minut, więc problem miał najwyraźniej i podłoże sprzętowe (nie montaż, bo to nawalała chińska przejściówka na gwint E27) i programowe.
    Temat więc rozwiązany.
    Pozdrawiam i dziękuję wszystkim za pomoc.
REKLAMA