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

[AVR] Detekcja przejścia przez zero - niskie napięcie

thenkles 28 Kwi 2009 20:43 4232 13
  • #1 28 Kwi 2009 20:43
    thenkles
    Poziom 11  

    Witam,
    Planuję zrobić ściemniacz do żarówki 24V. Żarówka podłączona jest do transformatora, który daje nominalnie 22,5V. I teraz nie wiem, jak zrobić wykrycie zera. Widziałem już parę takich układów, ale wszystkie na napięcie 230V. Domyślam się, że w tym przypadku można pominąć optoizolację, ale jak miałoby to wyglądać? Czy wystarczy rozwiązanie takie, jak w nocie katalogowej atmela (182), czyli podłączyć transformator do mikrokontrolera i do masy przez szeregowe rezystory? Jaką musiałyby one mieć wartość? Dodatkowo, czy mogę bezpośrednio z AVRa wysterować jakiś triak dla żarówki?

    Z góry dziękuję.

    0 13
  • Sklep HeluKabel
  • #2 01 Maj 2009 13:17
    skynet_2
    Poziom 26  

    Optoizolację można pominąć na wejściu.
    trafo<=>mostek graetza<->rezystor 10k<->µC.
    Można też bez mostka ale ja nie lubię na cyfrówkę dawać ujemnych napięć i z mostkiem można precyzyjniej ustalić pozycję zera.
    Wyjście hmm najłatwiej przez optotriak bo nie załączysz ujemnej części okresu zwykłym triakiem ponieważ µC nie daje ujemnych napięć.

    Daj dławik i kondensatory do stabilizacji napięcia na µC bo triak strasznie duże zakłócenia daje.

    Pozdrawiam

    0
  • #3 03 Maj 2009 22:41
    thenkles
    Poziom 11  

    Już zaryzykowałem takie podłączenie jak w nocie katalogowej i stwierdziłem, że działa. Tzn. tyle, że wykrywa zera z odpowiednią częstotliwością, nie wiem jak bardzo zgodne jest to z rzeczywistą fazą. Być może później spróbuję z mostkiem. Na razie potrzebny mi układ wykonawczy. Mam rozumieć, że będzie on wyglądał tak samo jak przy 230V? Jakiego mogę użyć triaka dla żarówki 24V 250W?

    0
  • Sklep HeluKabel
  • #4 05 Cze 2009 14:41
    thenkles
    Poziom 11  

    Przepraszam, że odkopuję temat, ale właśnie wziąłem się na poważnie za ten projekt i spróbowałem skorzystać z zaproponowanego rozwiązania z mostkiem. Podłączenie jak na załączniku. Niestety, ale układ nie wykrywa żadnych zer. Czy czegoś jeszcze mi tu brakuje, żeby działało poprawnie? Zaznaczam, że sam program działa dobrze.

    0
  • #5 05 Cze 2009 22:39
    janbernat
    Poziom 38  

    Ale te 10k to gdzie wpięte?
    Bo ATmegi mają dużo nóżek.
    Jak sprawdzasz że program działa?

    0
  • #6 06 Cze 2009 12:11
    Myrek1
    Poziom 23  

    No mają, ale musisz podłączyć to pod nóżkę z przerwaniem (INT) i w programie obsłużyć to przerwanie w trybie zbocza opadającego (będą chwilowe szpilki na wejściu).

    0
  • #7 06 Cze 2009 13:09
    thenkles
    Poziom 11  

    Oczywiście, że detekcja zera podłączona jest pod przerwanie. Program działa, ponieważ przy zwarciu wejścia do masy, zero jest zliczone. Tak samo było wcześniej, z prostszym układem detekcji zera. Niestety, nie działał on chyba zbyt dokładnie, bo coś nie mogłem złapać synchronizacji.

    0
  • #8 06 Cze 2009 14:23
    janbernat
    Poziom 38  

    Myślę że prostownik ładuje pojemność wejściową układu i napięcie nie ma gdzie się rozładować.

    0
  • #9 06 Cze 2009 14:30
    thenkles
    Poziom 11  

    A jeśli tak, to co mógłbym z tym zrobić? Lub jaki układ zastosować w zamian?

    0
  • Pomocny post
    #10 06 Cze 2009 14:52
    janbernat
    Poziom 38  

    Trzeba zrobić dzielnik i z odczepu sterować procesor.
    Dla 24V napięcie szczytowe na plusie prostownika będzie jakieś 34V-potrzeba ok.5V-podział ok 1:7.
    6.8k na prostownik-wejcie procesora-1k do masy.
    Najlepiej oscyloskopem zmierzyć

    Dodano po 2 [minuty]:

    I ja bym to dał na komparator i wykorzystał przerwanie z komparatora.
    Ale na przerwaniu też powinno chodzić.

    0
  • #11 06 Cze 2009 16:10
    thenkles
    Poziom 11  

    Dzięki, jako tako to teraz działa (rozwiązanie z dzielnikiem) ;).

    0
  • #12 06 Cze 2009 17:33
    janbernat
    Poziom 38  

    Pewnie że jako tako.
    To nie wykrywa zera tylko spadek napięcia wyprostowanej sinusoidy na wejściu INT poniżej progu przełączania procesora.
    Próg przełączania jest 0.3-0.7Vcc
    A sinusoida w dodatku nie jest prostokątem.
    Można obliczyć przesunięcie fazowe przy którym procesor wykrywa przerwanie(a nie 0) ale przy takim rozrzucie progu przełączania wejść procesora nie ma to sensu.
    Można też "dostroić" (przesunięciami czasowymi) konkretny egzemplarz procesora ale po wymianie na inną sztukę cały proces powtórzyć od nowa.
    No i pracować by musiał w stałej temperaturze.

    Dodano po 2 [minuty]:

    Dlatego rozwiązanie z komparatorem jest lepsze.

    0
  • #13 06 Cze 2009 23:45
    thenkles
    Poziom 11  

    Hmm, poszedłem za twoją radą i spróbowałem zrobić to na komparatorze. Wyjście z dzielnika (nie mogłem znaleźć w dokumentacji, jakie jest maksymalne napięcie, jakie można puścić na komparator) dałem na wejście AIN0, a, do AIN1 puściłem masę (z mostka oraz z mikrokontrolera razem). Oczywiście zmieniłem przerwanie (opadające zbocze z komparatora), pod które podpięty jest kod. Efekt jest taki, że zera są liczone, ale nie wszystkie. Te 100 zer jest naliczone w dobre kilka sekund. Czy coś nie tak podłączyłem? I jeszcze jedna sprawa. Gdy układ działa na przerwaniu zewnętrznym, to przy odłączonym triaku zliczanie działa mniej więcej dobrze (na oko, mam taki sekundnik zrobiony), jednak przy triaku podłączonym, momentami liczy więcej zer na sekundę. Jak rozumiem, triak wprowadza tutaj zakłócenia? Jak można to wytłumić? W tej chwili triak jest uruchamiany przez optotriak i zasilany z tych 24V. Jedynymi dodatkowymi elementami są rezystory ograniczające prąd.

    Z góry dziękuję za odpowiedzi.

    0
  • #14 07 Cze 2009 11:25
    janbernat
    Poziom 38  

    To działa tak:
    Na wejściu AIN1 masz masę (0) a na wejściu AIN0 masz napięcie dodatnie spadające do 0(prawie).
    Mo i teoretycznie komparator zmieni swój stan gdy na AIN0 pojawi się napięcie niższe niż na AIN1-czyli ujemne.
    Ale nam chodzi o różnicę napięcia AIN1-AIN0 więc...
    Daj na AIN1 dzielnik żeby było na nim jakieś napięcie-małe np. 0.5V
    Wtedy komparator zmieni swój stan gdy napięcie sinusoidy (po dzielniku) spadnie poniżej 0.5V.
    Oczywiście to nie będzie przejście przez 0.
    Napięcie przejdzie przez 0 później-trzeba to obliczyć i o tyle opóźnić moment załączenia triaka.
    A-i od obliczonego czasu opóźnienia odjąć czas załączania triaka-też nie włącza się natychmiast.
    Na komparator można podać do 5V.
    Komparator ma histerezę ok 40mV.

    Przemyślałem sprawę w drodze do pracy-to rozwiązanie będzie wrażliwe na napięcie zasilania.
    Są dwa napięcia + i - względem masy-można by dać prawdziwy komparator z zasilaniem +- i układ różniczkujący za nim.
    Z dwiema diodami zabezpieczającymi.

    0