Resetowanie / zawieszanie Arduino z powodu iskier w linii prądu przemiennego


15

To jest projekt PCB nad projektem, nad którym ostatnio pracowałem (mój pierwszy projekt PCB). Układ PCB

Chodzi o to, aby sterować urządzeniami AC (wentylatory, żarówki itp.) Bez przekaźników. Używam triaków, które są lepsze niż przekaźniki do takich zastosowań. Używam optoizolatorów do pełnej izolacji od linii prądu przemiennego. Próbowałem uruchomić arduino za pomocą kabla USB podłączonego do mojego laptopa (z odłączoną ładowarką), a także adaptera ściennego (12V).

Początkowo obwód wydawał się działać dobrze. Byłem w stanie zrzucić kod do kontrolera i sterować żarówkami (włączanie / wyłączanie, a także przyciemnianie) za pomocą UART. Wysłałem polecenia przez UART. Wydaje się jednak, że ilekroć iskra na liniach AC (kiedy podłączam / wyjmuję wentylator), mikrokontroler nie wygląda na szczęśliwego. Czasami resetuje się (co stanowi lepszą część obrazu), a innym razem zawiesza się i nie jestem w stanie wysyłać poleceń przez UART. Nie jestem pewien, czy wpływa to również na spalony kod, ale czasami musiałem przesłać kod ponownie. Jeśli włączę / wyłączę wentylator w innym pomieszczeniu, nie będzie żadnego efektu.

Możliwe problemy:

1) Brak płaszczyzny uziemienia na płytce drukowanej.

2) Jakiś EMI z powodu iskier.

Próbowałem również podłączyć podgrzewacz wody (obciążenie rezystancyjne 800 watów) w taki sam sposób jak wentylator, ale nic się nie stało. Myślę więc, że to obciążenie indukcyjne powoduje problemy.

Każde konstruktywne rozwiązanie tego problemu będzie bardzo znaczące.

Dzięki.


2
Tak, to obciążenie indukcyjne. Potrzebujesz tłumika i / lub MOV (lub dwukierunkowej diody TVS), aby stłumić impuls indukcyjny. Zwykle umieszczony równolegle do ładunku. Ulepszony układ PCB może pomóc zminimalizować efekty. Zobacz podobne pytanie na stronie electronics.stackexchange.com/q/101815/25328, chociaż ta płyta wykorzystuje przekaźnik.
Tut

Ponieważ używasz triaków, problem skoków indukcyjnych może być znacznie gorszy, gdy ręcznie podłączasz / odłączasz wentylator, ponieważ triaki wyłączają się przy prądzie bliskim zeru. Potencjalnym problemem, na który możesz natknąć się, jest to, że triaki nie wyłączają się po podłączeniu do obciążeń indukcyjnych. Zaproponuj zajrzenie do kart danych i notatek aplikacji dla obwodów triakowych zaprojektowanych do obciążeń AC.
Tut

To może, ale nie musi pomóc, ale możesz spróbować dodać licznik czasu strażnika do swojego oprogramowania arduino.

@Tut - Dziękujemy za wszystkie sugestie. Przeczytałem opublikowany link. Próbuję je zaimplementować na mojej kolejnej płytce drukowanej. Opublikuje układ planszy przed rozpoczęciem produkcji, abyście mogli przekazać jakieś uwagi i wskazać błędy / poprawki.
Whiskeyjack,

Odpowiedzi:


11

Nie pokazałeś schematu, ale nie widzę żadnych oczywistych zaślepek obejścia ani lokalnych pokryw zbiorników zasilacza. To i brak dobrego uziemienia prawdopodobnie powoduje problemy.

Jak powiedzieli inni, należy również pozostawić odpowiednią odległość izolacji między sekcjami prądu przemiennego i stałego, a przynajmniej spróbować zrobić coś w rodzaju płaszczyzny uziemienia.

Masz dużą tablicę z kilkoma komponentami i dużym rozstawem pinów, więc trasowanie większości śladów na górnej warstwie powinno być dość łatwe. Czasami będziesz musiał przejść do dolnej warstwy, ponieważ ogólnie obwód nie może być poprowadzony w jednej płaszczyźnie. Możesz jednak pozostawić ślady na dolnej warstwie krótkie. Uważaj je za „zworki” na tyle długie, aby połączyć dwie ścieżki na górnej warstwie, których inaczej nie można połączyć w samolocie. Miarą płaszczyzny uziemienia nie jest liczba wysp, które się na niej znajdują, ale najdłuższy wymiar każdej wyspy. Trzymaj zworki krótkie i niezgniatane.

Jednak absolutnie musisz nałożyć ograniczenie na każde zasilanie do każdego układu scalonego. Powinny to być małe ceramiczne nasadki znajdujące się fizycznie blisko układu scalonego, przy czym ogólne pętle powinny być jak najmniejsze. 1 µF 0805 jest w porządku. Będą one nie tylko tańsze i osiągają lepsze wyniki niż równoważne zaślepki otworów, ale także będą łatwiejsze do lutowania.

Ponieważ prąd stały pochodzi z innego miejsca i dlatego jego impedancja jest podejrzana, należy umieścić elektrolityczny korek o przyzwoitych rozmiarach dokładnie tam, gdzie moc wchodzi na płytkę. Powinno to zrobić kilka 100 µF.


Dzięki Olin. Czytałem twoje posty na inne podobne pytania i dużo się nauczyłem. Wydaje się, że największym błędem było opuszczenie samolotu naziemnego. Przeprojektuję moją płytkę drukowaną z płaszczyznami uziemienia na obu powierzchniach, a także spróbuję umieścić elementy w bardziej uporządkowany sposób, jak wskazują inni. Ponownie doceniam twoją pomoc.
Whiskeyjack

1
@ user3455594 Nie pomijaj kondensatorów omijających, szczególnie w Arduino.
Tut

@Olin - Jakie środki sugerujesz, aby chronić triaki przed skokami napięcia przy każdym włączeniu lub wyłączeniu urządzenia? Po przeczytaniu odkryłem, że tłumiki są najczęściej używane do tłumienia nadchodzących skoków. Jednak główne zastosowanie tłumienia wiązało się z zapobieganiem fałszywemu wyzwalaniu triaka, a nie ochrony triaka. MOV to kolejna opcja. Jakie jest twoje zdanie na ten temat? Patrz link do odniesienia do mojego przypadku użycia.
Whiskeyjack,

20

Należy szanować swoją izolację napięcia. Sposób umieszczenia (i trasowania) rezystorów R16, R13 R10, R2, R31 i R4 narusza barierę izolacyjną utworzoną przez optoizolatory. Poniżej zaznaczyłem twój istniejący układ Twoją ścieżką izolacji, która jest dość słaba:

wprowadź opis zdjęcia tutaj

Mieć jedną strefę izolacji, która jest możliwie najszersza (szerokość optoizolatorów). Obwody linii należy utrzymywać po stronie linii, a obwody izolowane po stronie izolowanej. Sugestie znajdują się na obrazku poniżej.

wprowadź opis zdjęcia tutaj


Będzie to przydatne i może pomóc, ale czy naprawdę uważasz, że jest to całe źródło problemu i że to rozwiązanie całkowicie go rozwiąże?
Adam Davis,

1
@AdamDavis Nie, nie mogę zagwarantować, że jest to jedyna przyczyna problemów. W rzeczywistości zdecydowanie należy wziąć pod uwagę zarówno porady Olina, jak i Andy'ego . Jest to jednak ważna kwestia bezpieczeństwa i widzę też niezbyt doskonały zespół, który irytuje ten problem.
W5VO,

@ W5VO - Zrobiłem inny układ . Czy możesz to zobaczyć raz i podać cenne sugestie? Z góry dziękuję.
Whiskeyjack,

6

Płaszczyzna uziemienia, płaszczyzna uziemienia, płaszczyzna uziemienia i bardzo niewiele wymówek. Zobacz, jak mogłeś zrobić wiele z tej płytki drukowanej: -

wprowadź opis zdjęcia tutaj

Spędziłem około 5 minut na znakowaniu (jasnoczerwonymi) niebieskimi śladami, które mogłyby być czerwone przy prawie żadnej pracy mózgu.

Zeskrobam i zacznę od nowa.


4
@kolosy Wszyscy zaczynamy gdzieś i wszyscy zrobiliśmy złe układy przy pierwszym uruchomieniu. To najlepsza darmowa rada, jaką otrzyma OP, a jeśli uważasz, że jestem nieracjonalnie surowy, to proszę, nalegam, oflaguj tę odpowiedź moderatorom.
Andy aka

1
Dzięki, Andy. W swoim drugim projekcie umieściłem już płaszczyznę uziemienia. Czy uważasz, że to jedyny problem? PS - W żaden sposób nie uważałem twojej odpowiedzi za ostrą. Doceniam twoją pomoc.
Whiskeyjack

4
@kolosy Szczerze mówiąc, nie sądzę, aby odpowiedź była obraźliwa (i może być tak, ponieważ zgadzam się z werdyktem Andy'ego).
W5VO

1
@kolosy: Andy mówi to tak, jak jest i jest czymś, co OP musi usłyszeć w jasnych słowach. I tak, zgadzam się również z jego werdyktem.
Olin Lathrop

3
@Andyaka może to powiedzieć, że tak jest, ale nie widzę sensu wprowadzać „bez wymówek” i „prawie żadnej pracy mózgu”. To, co jest dla ciebie oczywiste i bezmyślne, nie dotyczy ludzi, którzy dopiero zaczynają.
kolosy

2

Z mojego doświadczenia wynika, że ​​ustawianie i zerowanie linii, przerzutników i innych obwodów jest bardzo podatne na „szum elektryczny”. Najlepszym praktycznym sposobem uniknięcia nieprzewidzianych zachowań obwodu jest oddzielenie linii energetycznych na każdym układzie za pomocą odpowiednich kondensatorów. Ponadto bramkowanie / włączanie linii wejściowych z sygnałem zegarowym ograniczy możliwość, że „stany przejściowe” wpłyną na obwody.


Nie zrozumiałem ostatniej linii. Czy możesz prosić o opracowanie? Dziękuję za odpowiedź.
Whiskyjack,

1

kiedy pracowałem nad projektem kontroli obciążenia opartym na DTMF, znalazłem ten sam problem z obciążeniem AC. Bez obciążenia AC mój obwód mikrokontrolera 8051 działa dobrze. Po włączeniu obciążenia prądu przemiennego cały obwód zachowuje się w różny sposób po włączeniu / wyłączeniu obciążenia prądu przemiennego przez obwód przekaźnika. Później odkryłem, że ziemia zalana na płycie 8051 nie jest dobra. Na koniec wymieniam starą płytę mikrokontrolera 8051 na nową płytkę mikrokontrolera 8051 z dobrym zalewaniem. Teraz działa dobrze. Dlatego pomyślałem, że Twoja płytka drukowana powinna mieć dobre zalewanie.


To był dokładnie problem. Właśnie zacząłem pracę w tym czasie i nie wiedziałem nic o dobrym układzie płytki drukowanej, zalewaniu gruntu, izolacji itp. Ten błąd już dawno został naprawiony, ale dziękuję za odpowiedź. Mam nadzieję, że będzie to dobry punkt odniesienia dla osób borykających się z podobnym problemem. (+1).
Whiskyjack
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.