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

ATmega32 - Resety spowodowane włączaniem/wyłączaniem elektrozaworu

gdartt 12 Cze 2013 00:48 2397 15
  • #1 12 Cze 2013 00:48
    gdartt
    Poziom 2  

    Witam,

    Postanowiłem wykonać urządzenie nalewające (grawitacyjnie, z wykorzystaniem pewnego prawa fizyki) wodę ze zbiornika w żądanych ilościach. Do postu załączam schemat tego co napsociłem (wszystko jest złożone na płytce stykowej).

    ATmega32 - Resety spowodowane włączaniem/wyłączaniem elektrozaworu

    Urządzenie po wykryciu przez czujnik odległości jakiegoś obiektu ma otworzyć elektrozawór na zaprogramowany wcześniej czas. W zbiorniku znajdują się dwa czujniki poziomu wody (dwa kontaktrony i pływak z magnesem). Mają za zadanie informować mikrokontroler o minimalnym/maksymalnym poziomie wody i odpowiednio włączać/wyłączać pompę za pośrednictwem stycznika (układ przekaźnikowo-stycznikowy). Mikrokontroler, przekaźniki i czujniki poziomu zasilane są z tego samego źródła, o wartości 5V (zasilacz laboratoryjny). Stycznik, pompa i elektrozawór mają oddzielne źródła zasilania - stycznik 230V, elektrozawór 230V i pompa (w zasadzie to jej silnik) 380V.
    Napisany kod wydaje się być ok, wszystkie nieużywane piny ustawione jako wyjścia (czytałem że w przeciwnym wypadku mogą działać jako anteny i zbierać zakłócenia). Pętla główna zajmuje się obsługą klawiatury i wyświetlacza, zaś przerwania obsługują elektrozawór i pompę (czujniki poziomu i czujnik odległości zgłaszają przerwania). Wypróbowałem już wiele różnych wariantów programu i w każdym pojawiają się poniżej opisane problemy.

    Problem polega na tym, że zdarza się niekontrolowane włączenie stycznika i diody LED sygnalizującej nalewanie (więc skok w programie do obsługi przerwania). Zdarza się również, że po włączeniu stycznika, lub elektrozaworu pojawią się krzaczki na wyświetlaczu, lub reset. Oddzielnym problemem jest również to, że stycznik nie może włączyć pompy (udaje mu się to dopiero za n-tym razem), ale do testów odłączyłem pompę i zostawiłem sam stycznik.

    Do tej pory próbowałem odsunąć od siebie przekaźniki (jednak póki co jedynie na niewielkie odległości), czy odsunięcia na większą odległość stycznika i elektrozaworu. Domyślałem się, że problemem mogą być zakłócenia i odłączyłem kolejno stycznik i elektrozawór. Okazało się, że gdy odłączyłem sam elektrozawór wszystko działa prawidłowo. Co może być tutaj problemem z elektrozaworem?

    Nie jestem elektronikiem, cała ta działalność to moje świeże hobby, bardzo proszę o pomoc i nakierowanie mnie w czym tkwi problem i jakie może być jego rozwiązanie.

    0 15
  • Relpol
  • Pomocny post
    #2 12 Cze 2013 00:59
    ul1111
    Poziom 22  

    Nie zamieściłeś całego schematu bo nie ma pokazanego zasilacza. W pierwszej kolejności wstaw porządny reseter na jakimś scalaku.

    0
  • #3 12 Cze 2013 01:28
    gdartt
    Poziom 2  

    ul1111 napisał:
    Nie zamieściłeś całego schematu bo nie ma pokazanego zasilacza. W pierwszej kolejności wstaw porządny reseter na jakimś scalaku.


    Zasilacz to chiński Zhaoxin JPS-305DG. Nie mam zasilacza własnej roboty, żebym mógł umieścić go na schemacie. Czy takie postępowanie jest błędne? Czytałem w którymś z postów, że chińskie zasilacze mogą powodować w takich sytuacjach spadki napięcia - to może być prawda?

    Co do resetera - czy masz na myśli scalaki w stylu DS1813?

    0
  • Relpol
  • Pomocny post
    #4 12 Cze 2013 07:34
    mattsk
    Poziom 12  

    1. Brakuje zaraz obok pinu resetu w mikroprocku kondesatora 100nF.
    2. Dodałbym kondesatory 100nF przy każdym pinie zasilanie czyli VCC i AVCC.
    3. Przy wejściu zasilania dałbym jakiś kondestaor o miare dużej pojemności np. 100uF lub większy.
    4. Dlaczego przy przekaźnikach dałeś diody zenera zamiast zwykłej diody?

    0
  • Pomocny post
    #5 12 Cze 2013 07:48
    kicajbas
    Poziom 26  

    Witam
    Ja zacząłbym od porządnej filtracji napięcia zasilania AVR-a: jak najbliżej scalaka 100n do Vcc i AVcc ( nie używane ale trzeba ) + 47-220uF do Vcc.
    Następnie zasilania procka i przekaźników poprowadziłbym osobnymi przewodami, tak żeby zaczynały się przy samym zasilaczu a następnie rozchodziły się do "swoich"układów ( szczególnie GND ).
    "Posprzątaj" na stykówce - np.: krzyżujące się przewody itp.
    Może trzeba pomyśleć o zastosowaniu transoptorów - ogólnie uC nie bardzo lubią zasilać przekaźniki.
    Bez urazy - ciekawa teoria z tymi "wiszącymi" wyjściami; wystarczy nieużywane wejścia programowo podciągnąć do Vcc.
    Pozdrowienia

    ..pisane w tym samym czasie - ale niech zostanie :D

    0
  • Pomocny post
    #7 12 Cze 2013 09:18
    piotrva
    Moderator na urlopie...

    mattsk napisał:
    1. Brakuje zaraz obok pinu resetu w mikroprocku kondesatora 100nF.

    To akurat nie jest potrzebne, ale całą reszta wiadomości o filtrowaniu zasilania jak najbardziej tak.
    Ja za to bym jeszcze ten rezystor zmniejszył przy resecie na jakieś 2k.
    I izolacja galwaniczna (transoptory), także przewodów łączących styczniki też się przyda. Inaczej, w zależności od długości kabli, jak gdzieś piorun strzeli to w kablu wyindukuje się prąd i może Ci spalić procesor.

    0
  • Pomocny post
    #8 12 Cze 2013 10:09
    LordBlick
    VIP Zasłużony dla elektroda

    piotrva napisał:
    mattsk napisał:
    1. Brakuje zaraz obok pinu resetu w mikroprocku kondesatora 100nF.

    To akurat nie jest potrzebne
    Tu się nie zgodzę, nie zblokowany do GND pin RESET (przypominam - układ jest raczej pająkowaty - płytka uniwersalna), zwłaszcza połączony z długim odcinkiem przewodu to prośba o kłopoty w pobliżu wszelkich cewek większej mocy... Można użyć w szereg z kondensatorem zworki rozłączanej na czas programowania, jeśli ktoś się obawia uszkodzenia programatora.
    Patrząc na schemat, pierwsze co mi się nasuwa, to brak separacji zasilania µC od przekaźników, to nie ma prawa działać prawidłowo.
    Masy mogą być połączone ze sobą, ale cewki elektromagnetyczne powinny być zasilane z oddzielnej gałęzi zasilania, która jest odpowiednio wydajna z zapasem...

    0
  • #9 14 Cze 2013 23:17
    gdartt
    Poziom 2  

    Dziękuję za wszystkie wskazówki. Dołączyłem kondensatory, ale wygląda na to, że problemem był zasilacz... Użyłem ładowarki od telefonu jako zasilacza w tym układzie i wszystko działa jak należy.

    Co do oddzielnego zasilania dla przekaźników - czy to będzie konieczne? Na płytce stykowej działa, mam zamiar przenieść ten układ na płytkę PCB, ale tutaj już mam ogromne obawy o zakłócenia.

    0
  • #10 15 Cze 2013 10:36
    LordBlick
    VIP Zasłużony dla elektroda

    Istnieje subtelna różnica pomiędzy oddzielnym zasilaniem, a oddzielną gałęzią zasilania... Chwilowe wahania poboru prądu przy załączaniu i wyłączaniu przekaźników nie powinny mieć wpływu na stabilność zasilania mikrokontrolera. Dlatego dobrą praktyką jest j/w.

    0
  • #11 02 Lip 2013 22:34
    mateusz93mk
    Poziom 11  

    Po co przy klawiaturze wstawiłeś diody zenera??
    Aby napięcie się nie cofnęło wystarczy zwykła dioda prostownicza.
    Brak resetu.
    Ja tez miałem taki problem. Co się okazało?? Zły styka na płytce. Czyli problem z masą. I drugi problem to zakłócenia.

    0
  • #12 03 Lip 2013 09:30
    Tuxlab
    Poziom 13  

    Problem resetowania jest związany ze zjawiskiem zwanym w fizyce samoindukcją. Wiąże się to powstawaniem dużego piku napięcia na cewce w momencie rozłącznie obwodu. W prosty sposób daje się to wyeliminować przez zastosowanie odpowiedniego warystora lub dwukierunkowego transila (napięcie powyżej 400V).

    pozdrowienia

    T

    0
  • #16 04 Lip 2013 17:23
    dondu
    Moderator Mikrokontrolery Projektowanie

    mateusz93mk napisał:
    Ponieważ ja u siebie na atmedze8 mam wlutowany kwarc. Gość na wykładzie mówił.

    To chyba nie słuchałeś, gdy ów "gość" mówił o wewnętrznym generatorze RC. Ale nic straconego, możesz zaglądnąć do datasheet lub poprosić owego "gościa", aby Ci wiedzę ponownie wyłożył.

    BTW: Zawsze sądziłem, że na wykładach wykładają wykładowcy, a nie goście, ale widocznie świat poszedł do przodu :)

    0