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

[ATmega8][C] Kłopoty z detekcją zera, fazowa regulacja mocy.

lbobby 21 Kwi 2013 18:09 3060 10
REKLAMA
  • #1 12224371
    lbobby
    Poziom 10  
    Mógłby ktoś podpowiedzieć jak co poprawić by to działało poprawnie


    Link

    Autor napisał że coś zmienił a nie napisał co, poczatkuje zlozylem tem uklad ale nie moge uruchomic sciemniania zarowki, led dziala poprawnie
  • REKLAMA
  • #2 12225797
    Jeżyk-1
    Poziom 25  
    Masz taki sam objaw co autor postu z linku ?
    Napisał co zrobił: "Po wskazówce szelus wystarczyło przenieść jedną linijkę kodu w inne miejsce i zadziałało." Teraz tylko pogłówkować gdzie. Dlatego pytam czy masz taki sam problem.
  • REKLAMA
  • #3 12226344
    lbobby
    Poziom 10  
    Tak taki sam, ale nie wiem który i gdzie
  • #4 12228321
    szelus
    Poziom 34  
    Widzę tylko dwie możliwości:
    1. Przeniesienie wyłączenia sygnału wyzwalania (bramki) bezpośrednio za włączenie (do przerwania timera). Raczej takie sobie, szpilka może się okazać za krótka do wyzwolenia triaka.
    2. Przeniesienie tego wyłączania do pętli głównej - szpilka będzie przedłużona o czas powrotu z przerwania.

    Najlepiej pokaż swój program, bo tamten to prowizorka. I napisz, co chcesz osiągnąć.
  • REKLAMA
  • #5 12228696
    lbobby
    Poziom 10  
    Tak jak u tamtego kolegi LED się ładnie ściemnia, a żarówka pali sie non stop

    Dodano po 2 [minuty]:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Tak jak u tamtego kolegi LED się ładnie ściemnia, a żarówka pali sie non stop
  • #6 12231917
    szelus
    Poziom 34  
    Liczysz na podpowiedź, czy gotowca?
    Podpowiedź już dostałeś. Do gotowca brak danych. Gdzie masz co podłączone (schemat)? Bo widzę, że masz trochę inaczej niż w tamtym poście. Ściemnia się kiedy - gdy zmienisz stałą ładowaną do licznika w programie i przeprogramujesz procesor?
  • REKLAMA
  • #8 12232620
    lbobby
    Poziom 10  
    Tak zgadza się, przeprogramuje i zmienia licznik.
    Schemat dołączam [ATmega8][C] Kłopoty z detekcją zera, fazowa regulacja mocy.
  • Pomocny post
    #9 12234066
    szelus
    Poziom 34  
    No, tak, teraz widać, że LED ściemnia Ci się "w drugą stronę".

    Mały egzamin (dwa pierwsze pytania dotyczą Twojego układu):
    1. Jaki sygnał wyzwala triaka?
    2. Jaki sygnał zapala diodę?
    3. Na jakiej zasadzie działa sterowanie fazowe?

    Triaka wyzwala stan wysoki na PC0. Celowo napisałem "wyzwala" nie włącza, ponieważ triaka się nie da wyłączyć (w przeciwieństwie do LED-a).
    LEDa oczywiście włącza stan wysoki na PC1, a wyłącza stan niski.
    Natomiast sterowanie fazowe polega na opóźnianiu załączania triaka w stosunku do momentu wystąpienia "zera" sieci (triak wyłączy się sam w następnym zerze) aby był włączony tylko przez część (pół)okresu sieci. Im większe opóźnienie, tym słabiej świeci żarówka.

    W Twoim programie ustawiasz stan wysoki na PC0 i PC1 na sygnał "zera" (w przerwaniu INT0), natomiast stan niski z opóźnieniem w przerwaniu timera. W efekcie LED świeci tym mocniej, im większe opóźnienie, ale triak pozostaje zawsze włączony przez cały okres sieci.
    Musisz, po pierwsze, zmienić na ustawianie stanu wysokiego na PC0 i PC1 w przerwaniu timera, po drugie wyłączać LED-a przez ustawianie stanu niskiego w przerwaniu INT0.
    Wyłącznie sygnału wyzwalania triaka (PC0) możesz np. przenieść do pętli głównej. Straszna proteza, ale działać powinno.
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Albo robić to z małym opóźnieniem (delay()), np. 10us w przerwaniu timera. Oczywiście, przedłużanie czasu obsługi przerwania nie jest zalecane, ale w takich prostych przypadkach ujdzie.

    Generalnie, polecam poczytanie literatury, np. wymienionej w poście wyżej.
  • #10 12264425
    lbobby
    Poziom 10  
    Zrobiłem w.g Twoich zaleceń, ale mimo zmiany zmiennej "counter".
    Sciemniać żarówki mi sie nie udaje
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    żarówka pali sie non stop tę samą intensywnościa.
  • Pomocny post
    #11 12264618
    szelus
    Poziom 34  
    Dopiero teraz zwróciłem uwagę na to na schemacie - naprawdę masz MOC3041? Jeżeli tak, to nie ma żadnej szansy - to jest optotriak z włączaniem z zerze. Nie nadaje się do sterowania fazowego. Wymień na MOC3021.
REKLAMA