Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Czemu to migocze? regulator fazowy

rzuber 16 Kwi 2004 00:27 5085 38
  • #1 16 Kwi 2004 00:27
    rzuber
    Poziom 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.

    0 29
  • #2 16 Kwi 2004 07:11
    diag
    Spec od samochodów

    Najkrócej ujmując MOC3020 ma układ sterowania w zerze prponuje zastosowanie innego sterowania triakiem.

    0
  • #3 16 Kwi 2004 09:24
    GienekS
    Poziom 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).

    0
  • #4 16 Kwi 2004 10:12
    wzagra
    Poziom 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?)

    0
  • #5 16 Kwi 2004 10:21
    Artur G.
    Poziom 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.

    0
  • #6 16 Kwi 2004 11:27
    boomerang
    Poziom 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

    0
  • #7 16 Kwi 2004 11:45
    szymtro
    Poziom 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).

    0
  • #8 16 Kwi 2004 12:17
    Artur G.
    Poziom 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/searchtopic47216-.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.

    0
  • #9 16 Kwi 2004 14:42
    rzuber
    Poziom 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.

    0
  • #10 16 Kwi 2004 20:27
    szymtro
    Poziom 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?

    0
  • #11 16 Kwi 2004 21:13
    rzuber
    Poziom 20  

    nie mam sondy odpowiedniej. nie sprawdze.. :\ .. ale spróbuje esperyment z ledem. ale to po weekendzie już dopiero...

    0
  • #12 29 Kwi 2004 10:33
    Kasijas
    Poziom 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?

    0
  • #13 29 Kwi 2004 10:38
    Kasijas
    Poziom 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

    0
  • #14 29 Kwi 2004 13:16
    rzuber
    Poziom 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ć..

    0
  • #15 29 Kwi 2004 14:01
    Kasijas
    Poziom 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.

    0
  • #16 29 Kwi 2004 14:04
    rzuber
    Poziom 20  

    Kasijas napisał:
    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.

    0
  • #17 29 Kwi 2004 14:11
    Kasijas
    Poziom 11  

    A po jakim czasie wylaczasz tirak od zalaczenia?

    0
  • #18 29 Kwi 2004 14:15
    Kasijas
    Poziom 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

    0
  • #19 29 Kwi 2004 14:21
    rzuber
    Poziom 20  

    Kasijas napisał:
    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.

    0
  • #20 29 Kwi 2004 14:27
    Kasijas
    Poziom 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

    0
  • #21 29 Kwi 2004 14:30
    rzuber
    Poziom 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 :)

    0
  • #22 29 Kwi 2004 14:35
    Kasijas
    Poziom 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

    0
  • #23 29 Kwi 2004 14:37
    Kapusta
    Poziom 17  

    MACbartek napisał:

    ...
    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: :?:

    0
  • #24 29 Kwi 2004 14:41
    rzuber
    Poziom 20  

    Kapusta napisał:
    MACbartek napisał:

    ...
    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.

    0
  • #25 29 Kwi 2004 14:58
    Kasijas
    Poziom 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

    0
  • #26 29 Kwi 2004 16:00
    rzuber
    Poziom 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.

    0
  • #27 29 Kwi 2004 18:21
    Marek81
    Poziom 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.

    0
  • #28 05 Wrz 2004 13:56
    Abili
    Poziom 19  

    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

    0
  • #29 05 Wrz 2004 14:11
    gummis
    Poziom 15  

    ale wymysliles,przy zmianie stanu portu nie maja prawa sie pojawic przejsciowe stany.

    0
  • #30 05 Wrz 2004 15:37
    Abili
    Poziom 19  

    gummis napisał:
    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

    0