Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Czemu to migocze? regulator fazowy

rzuber 16 Apr 2004 00:27 5454 38
Tespol
  • #1
    rzuber
    Level 20  
    Zbudowałem układ fazowego regulatora jasnośći oświetlenia wedle schematu w załączniku. Ma on jedną wadę... w zależności od ustawienia jasności mozna zauważyć jak migocze żarówka... czy ktoś może mi powiedzieć co jest tego przyczyną? nieraz bardziej widać to migotanie a nieraz mniej... help.
  • Tespol
  • #2
    diag
    Level 29  
    Najkrócej ujmując MOC3020 ma układ sterowania w zerze prponuje zastosowanie innego sterowania triakiem.
  • #3
    GienekS
    Level 32  
    A czy wogule Ci to reguluje jasność ? Bo jeżeli ten opto-triak włącza w zerze to wogule nie powinno to działać. Poniważ regulacja jasności jest od 0 do 180 stopni czyli od 0 do 10ms Każdy dłuższy czas będzie powodował opisywany przez Ciebie efekt migotania (jeżeli opto-triak nie będzie włączał w zerze oczywiście).
  • #4
    wzagra
    Level 33  
    a nie jest przyczyną ?(narysuję;)) ) * - świeci - -nie świeci:
    maksyymalna jasność: *****
    duża jasność: -****
    mniejsza: ---**
    mała: ----*
    i mała bezwładność włókna żarówki.
    przy małej jasności świecenia, żarówka jest włączana np. na 1 ms i będzie widoczny efekt migotania, to jest widoczne przy najprostszych regulatorach z tyrystorem i układem opóźniającym na RC. metoda usunięcia - żarówka z dużą bezwłądnością włókna (większej mocy?)
  • #5
    Artur G.
    Level 17  
    MOC3020 jest jak najbardziej na miejscu (w odróżnieniu od MOC3040 nie posiada detekcji zera).
    W Twoim układzie sprawdziłbym czy Det0 na transoptorze działa prawidłowo, czyli sygnał jest powtarzalny - ja swego czasu robiłem podobny układ, ale detekcja zera była bardziej rozbudowana.

    Po południu postaram się zamieścić część ze swojego rozwiązania.

    Ponadto jakiego typu triak zastosowałeś w układzie?

    Pozdrawiam

    Artur G.
  • #6
    boomerang
    Level 19  
    na migotanie moze miec wplyw bezwladnosc wlokna zarowki (w przypadku malych katow wysterowania) - po prostu nie zdazy sie do konca rozgrzac lub zbyt szybko stygnie
  • Tespol
  • #7
    szymtro
    Level 30  
    Masz fazowe sterowanie(a nie grupowe) czyli włączasz po odpowiednim opoznieniu od przejscia przez zero na odpowiedni czas(do nastepnego przejścia)? Przebieg jest wyprostowany(100Hz). To jeszcze napisz z jaką rozdzielczością sterujesz jasnością i czy to migotanie jest zawsze czy tylko przy niektórych ustawieniach. Osobiście uważam że to raczej problem z wykrywaniem tego "0" niż z bezwładnością(bez przesady to jest 100Hz - nawet jak będzie 10% to nie da się zauważyć migotania).
  • #8
    Artur G.
    Level 17  
    W pełni zgadzam się z Szymtro, z pewnością musi być kłopot albo z momentem wyzwalania, albo układ "gubi" niektóre cykle i stąd migotania.

    Jak obiecałem w wątku: https://www.elektroda.pl/rtvforum/topic47216.html
    jest schemat z którym ja wojowałem - u mnie równiez migotało, ale przy całkowitym ściemnieniu - jakieś niepożądane załączenia triaków.

    Reasumując - moje typy to: poprawić układ detekcji zera, wykrywać opadające zbocze sygnału DET0, a także zmniejszyć rezystor sterowania bramki z k33 na k18.

    Ponadto nadal czekamy na typ triaka.

    Pozdrawiam

    Artur G.
  • #9
    rzuber
    Level 20  
    Ciesze sie ,że mój post napotkał taki odzew. Jeśli chodzi o detekcje zera to sprawdzałem oscyloskopem i pojawiające się impulsy są dość "czytelne". Procesor nie powinien mieć problemu z interpretacją. Triak to BT 136. Dziś nie znajde już czasu by przy tym posiedzieć ale jutro zmniejsze wartość tej rezystancji i dam znać jaki był tego efekt.
    Dziękuje za porady.
  • #10
    szymtro
    Level 30  
    To że sygnały powinny być czytelne to jeszcze nic nie znaczy. Do programu dodaj malutką procedurkę zapalania leda na jakimś porcie w momencie przerwania. Nic więcej nie zmieniaj i odpal to na rzeczywistym napięciu sieci. Poobserwuj wtedy obraz na oscyloskopie(napięcie sieci i wyjście dodatkowe z procka). Może wtedy się wyda co jest nie tak. A jak wyglądają wykresy sieci i te na żarówce?
  • #11
    rzuber
    Level 20  
    nie mam sondy odpowiedniej. nie sprawdze.. :\ .. ale spróbuje esperyment z ledem. ale to po weekendzie już dopiero...
  • #12
    Kasijas
    Level 11  
    Ja robie wlasnie podobny układ. Mialem problem z miganiem. Okazalo sie ze przyczyna sa przerwania. Wystarczylo 80 mikro sekund zeby dalo sie to zauwazyc. Polegalo to na tym ze raz to przerwanie weszlo w momecie kiedy mial byc zalaczony a raz nie. Roznica z moich obliczen wynosila wlasnie te 80 micro sek. myslalem ze to nie ma znaczenia a jednak to bylo widac. Usprawnilem i dziala. Ale mam takze pytanie do tworcy tego ukladu - czy sam to robil?
  • #13
    Kasijas
    Level 11  
    Ja probuje zrobic na ATmega16 taki uklad, ktory steruje 12 zarówkami. Sygnal dostaje z dmx512. Jeszcze obsluga wyswietlacza. Na razie dziala mi prawidlowo na 6 zatówek, jak dam wiecej to miga bo za dlugo siedze w przerwniu
  • #14
    rzuber
    Level 20  
    U mnie sprawa wygląda tak, że za sterowanie triaka odpowiada oddzielny procesor. Jedyne wykorzystywane tu przerwanie to detekcja zera [Int0] i przepełnienie licznika. Wiec takie coś nie wchodzi raczej w gre...

    Oczywista sprawa, że sam robiłem układ... nie chciało by mi sie raczej nad czyimś zastanawiać..
  • #15
    Kasijas
    Level 11  
    No oki, ale po detekcji zera musisz odliczyc czas i wtedy zalaczysz triak , ktory sam juz sie wylaczy w zerze. Miedzy czasie timer musi dalej liczyc (musi odliczyc 10 ms) i ponownie po zadanym czasie otworzyc triak dla drugiej polowki. Jesli masz czas dokladnie 10 ms to nieraz zdaza sie ze to zasrane napiecie naszej sieci nie ma 50 hz dokladnie i sa przestrzaly na druga polowke. No ja przynajmniej tak robilem, moze ty znalazles lepszy sposob. Mozna wykrywac teoretycznie zbocza co jedna polowke sinusa - zastosowac mostek prostowniczy (tylko ze ja mialem z tym problemy bo pojemnosc na sciezkach powodowala ze mialem tak duza skladowa stala ze przerwanie bylo non stop.
  • #16
    rzuber
    Level 20  
    Kasijas wrote:
    Mozna wykrywac teoretycznie zbocza co jedna polowke sinusa - zastosowac mostek prostowniczy (tylko ze ja mialem z tym problemy bo pojemnosc na sciezkach powodowala ze mialem tak duza skladowa stala ze przerwanie bylo non stop.


    Przecież tak właśnie jest w moim ukłądzie. Prostuje sygnał z sieci.
  • #17
    Kasijas
    Level 11  
    A po jakim czasie wylaczasz tirak od zalaczenia?
  • #18
    Kasijas
    Level 11  
    i jak ci to migocze - mocno?. No bo wlasciwie to dales az 2 procesory , sterujesz jednym kanalem i sa problemy. Ja na jednym zrobilem komunikacje, 6 kanalow bez prostowania i nie migocze - warto sie zastanowic co jest problemem u ciebie - sam jestem ciekawy I program pisalem w C nie w asmeblerze
  • #19
    rzuber
    Level 20  
    Kasijas wrote:
    i jak ci to migocze - mocno?. No bo wlasciwie to dales az 2 procesory , sterujesz jednym kanalem i sa problemy. Ja na jednym zrobilem komunikacje, 6 kanalow bez prostowania i nie migocze - warto się zastanowic co jest problemem u ciebie - sam jestem ciekawy I program pisalem w C nie w asmeblerze


    kwestia sterowania jedną a sześcioma to jeszcze nie jest taka różnica.
    U siebie musiałem zastosować 2 procesory bo jeden odpowiada za zapis zmiennej sterującej do pamięci po I2C oraz za komunikacje po sieci RS 485, która jest bezustanna, więc mam zajete bardzo wiele przerwań. Na jednym procesorze zadanie byłoby bardzo trudne to wykonania.

    Co do języka to ja programuje w Bascom, więc różnica między asemblerem jest większa niż w twoim przypadku.

    A czas jaki odmierzam to oczywiście od 0 do 10 ms.
  • #20
    Kasijas
    Level 11  
    Oczywiscie nie krytykuje Ciebie:), ale czy Amega8 nie ma w sobie EEProma?, po co dawac dodatkowo po i2c. Faktycznie jesli piszesz w Basicu to Ci wspolczuje. Pisalem kiedys petle PLL do tunera w Basicu - zalamać sie idzie. Proponuje przejscie na C, jest taki CodevisionAvr, który ma takie funkcje jak basic - ze wyswietlacze i cale te peryferia robi sie jednym kliknieciem myszki. Przedewszystkim C jest o niebo prostrzy od basica. Basic na jednoukladowce, w ktorych trzeba miec kontrole nad kazdym bajtem jest lipny bo drobna duperele na znakach trzeba robic na okretke Pozdrawiam
  • #21
    rzuber
    Level 20  
    Od czegoś trzeba zacząć :). Co do paięci w atmega - owszem jest ona, ale ma ograniczoną liczbę zapisów, a u mnie w pamięć bedzie szło co zmiana stanu jasności żarówki, stąd konieczna jest zewnętrzna. Ja próbowałem w AVR Stuidio i gcc.. ale jakoś mi się nie spodobało...

    Co nie zmienia faktu, że żarówka migocze :)
  • #22
    Kasijas
    Level 11  
    tak samo ten I2C ma ograniczona liczbe zapisow jai i ten w srodku. Jak ci to migocze? - moze niechcacy odbierasz inne ramki, i dostaje z rs-a raz to co mial dostac a raz cos innego i masz 2 wartosci na przemian
  • #23
    Kapusta
    Level 17  
    MACbartek wrote:

    ...
    Oczywista sprawa, że sam robiłem układ... nie chciało by mi się raczej nad czyimś zastanawiać..


    A my to co, jelenie jakieś, że się głowimy nad twoim problemem :evil: :?:
  • #24
    rzuber
    Level 20  
    Kapusta wrote:
    MACbartek wrote:

    ...
    Oczywista sprawa, że sam robiłem układ... nie chciało by mi się raczej nad czyimś zastanawiać..


    A my to co, jelenie jakieś, że się głowimy nad twoim problemem :evil: :?:


    Chodziło mi o to, że raczej nie wystawiałbym postu gdyby układ robił kolegi matki znajomego syn....i nie miałbym o nim żadnego pojecia..

    przepraszam jeśli uraziłem szanownego kolege Kapuste, który w mój problem wniósł tyle pomysłów...
    -----------------------------------------------------------
    co do pamięci masz racje. ilość cykli taka sama, ale nigdy nie wiadomo, czy nie zwiększy się zapotzrebowanie na nią... a avrek ma 512.
  • #25
    Kasijas
    Level 11  
    Kapusta- mi odpowiada dyskusja nad tym problemem, sam sie czegos dowiem. Jesli Ci nie pasuje to po jakiego chuja to czytasz, mozesz nie tracic czasu i walnac sobie gruche
  • #26
    rzuber
    Level 20  
    co do zasadzy działania układu to jest ona następująca. odbiera on ramkę z rs 485. w niej zawarta jest informacja ile ma wynosić opóźnienie. ładowana jest ona do pamieci, by po ew. awarii zasilania przywrócić stan a następnie przekazywana d odrugiego procesora, by ten na jej podstawie odliczył opóźnienie zapalenia triaka.. dodatkowo w pierwszy procesor zaimplikowana jest obsługa układu z włączika oświetlenia.
  • #27
    Marek81
    Level 19  
    Moja rada jest taka: postaraj się zawęzić problem - odłącz procek nr1, zostaw tylko ten który steruje triakiem, a wartość czasu opóźnienia (którą jak sądzę przesyłasz poprzez port C) zadawaj np. z mikroswich'ów. Przetestuj wszystkie wartości i sprawdź czy dalej miga.
    Jeśli tak, to problem jest w programie tego procka. W takim przypadku możesz jeszcze zdisasemblować kod jaki wygenerował Bascom i poszukać błędów.
    Jeśli nie będzie migać, to przyglądnij się prockowi nr1. Czy wartości przesyłane przez port C są stabilne? Czy przypadkiem nie zanikają na chwilę?
    Przy budowie złożonych układów (programów) najlepiej postępować małymi kroczkami: uruchomić najpierw jedną rzecz - sprawdzić czy działa, a potem następną.. itd.

    Pozdrawiam.
  • #28
    Abili
    Level 20  
    Witam

    Problem tkwi w tym że nie ma żadnej synchronizacji pomiędzy procesorami US1 i US2. Układ 1 odbiera dane z RS485 i wystawia je na wyjściu portu PC.0 - PC.7. Układ 2 ma je odbierać i w zależności od wartości sterować triakiem. Ale zastanów się co on w rzeczywistości odbiera, przecież dane na porcie PC. US1 mogą być w trakcie aktualizacji, czyli niestabilne i te dane odbierze US2 - czyli błędne i stąd miganie.
    Więc należy zapewnić synchronizację między procesorami, można to przykładowo rozwiązać w taki sposób.

    Sygnał z detektora przejścia przez "0" podpiąc do US1, po każdym przerwaniu pochodzącym z detektora układ wystawia dane na porcie PC, i generuje przerwanie do procesora US2 pin PD.3. Procesor US2 "wie" że ma ważne dane do odczytu, a napięcie sieci jest równe "0".

    Należało by też zastosować rezystory podciągające na porcie PC, co prawda można ustawić wewnętrzne podciąganie ale w niektórych egzemlarzach ATMEGI8 to za mało.

    Po co aż 3 linie do sterowania 75176, przecież pracuje on jako odbiornik, i wystarczy RE i DE podpiąć do masy.

    AB
  • #29
    gummis
    Level 15  
    ale wymysliles,przy zmianie stanu portu nie maja prawa sie pojawic przejsciowe stany.
  • #30
    Abili
    Level 20  
    gummis wrote:
    ale wymysliles,przy zmianie stanu portu nie maja prawa się pojawic przejsciowe stany.


    Proponuję zajrzeć do pierwszego lepszego katalogu scalonych układów cyfrowych i odczytać ile trwa zmiana stanu z "H" na "L" i odwrotnie. I dopiero odpowiedzieć.

    Z poważaniem
    AB