Zurücksetzen / Hängen des Arduino aufgrund von Funken in einer Wechselstromleitung


15

Dies ist das PCB-Design des Projekts, an dem ich kürzlich gearbeitet habe (mein erstes PCB-Design). PCB-Layout

Die Idee ist, Wechselstromgeräte (Lüfter, Glühlampen usw.) ohne Relais zu steuern. Ich verwende Triacs, die für solche Anwendungen besser sind als Relais. Ich benutze Optokoppler zur vollständigen Trennung von Wechselstromleitungen. Ich habe versucht, das Arduino mit einem an meinen Laptop angeschlossenen USB-Kabel (mit ausgestecktem Ladegerät) sowie einem Wandadapter (12 V) zu betreiben.

Zunächst schien die Schaltung gut zu funktionieren. Ich konnte den Code in den Controller schreiben und die Lampen mit UART steuern (Ein / Aus sowie Dimmen). Ich habe die Befehle über UART gesendet. Es scheint jedoch, dass der Mikrocontroller nicht glücklich aussieht, wenn die Wechselstromleitungen funken (wenn ich einen Lüfter ein- / ausstecke). Manchmal wird es zurückgesetzt (was der beste Teil des Bildes ist) und manchmal hängt es und ich kann keine Befehle über UART senden. Ich bin mir nicht sicher, ob auch gebrannter Code betroffen ist, aber manchmal musste ich den Code erneut hochladen. Wenn ich einen Lüfter in einem anderen Raum ein- oder ausschalte, hat dies keine Auswirkungen.

Mögliche Probleme:

1) Keine Massefläche auf der Platine.

2) Eine Art von EMI aufgrund von Funken.

Ich habe auch versucht, einen Warmwasserbereiter (800 Watt ohmsche Last) wie einen Lüfter anzuschließen, aber es ist nichts passiert. Ich denke, es ist die induktive Last, die Probleme bereitet.

Jede konstruktive Lösung für dieses Problem wird sehr wertvoll sein.

Vielen Dank.


2
Ja, es ist die induktive Last. Sie benötigen eine Überspannungsschutz- und / oder MOV-Diode (oder eine bidirektionale TVS-Diode), um die Induktionsspitze zu unterdrücken. Normalerweise parallel zur Last platziert. Ein verbessertes PCB-Layout kann dabei helfen, die Auswirkungen zu minimieren. Eine ähnliche Frage finden Sie unter electronics.stackexchange.com/q/101815/25328 , obwohl diese Karte ein Relais verwendet.
Tut

Da Sie Triacs verwenden, ist das Problem der Induktionsspitzen wahrscheinlich viel schlimmer, wenn Sie den Lüfter manuell ein- oder ausstecken, da sich die Triacs bei einem Strom nahe Null ausschalten. Ein mögliches Problem besteht darin, dass sich die Triacs bei Anschluss an induktive Lasten nicht ausschalten. Schlagen Sie vor, in Datenblättern und App-Hinweisen nach Triac-Schaltkreisen zu suchen, die für Wechselstromlasten ausgelegt sind.
Tut

Dies kann hilfreich sein oder auch nicht, aber Sie können versuchen, Ihrer Arduino-Software einen Watchdog-Timer hinzuzufügen.
Achse

@Tut - Danke für all deine Vorschläge. Ich habe den Link gelesen, den Sie gepostet haben. Ich versuche, sie in meiner nächsten Leiterplatte zu implementieren. Wir werden das Layout der Platine veröffentlichen, bevor wir zur Produktion gehen, damit ihr Feedback geben und auf Fehler / Korrekturen hinweisen könnt.
Whiskeyjack

Antworten:


11

Sie haben keinen Schaltplan angezeigt, aber ich sehe keine offensichtlichen Bypasskappen oder lokalen Bordnetzkappen. Das und das Fehlen einer guten Erdung ist sehr wahrscheinlich die Ursache für die Probleme.

Wie andere bereits gesagt haben, sollten Sie auch einen angemessenen Isolationsabstand zwischen den AC- und DC-Abschnitten einhalten und zumindest versuchen, eine Erdungsebene zu erstellen.

Sie haben eine große Platine mit wenigen Bauteilen und großem Pin-Abstand, sodass das Verlegen der meisten Leiterbahnen auf der obersten Ebene relativ einfach sein sollte. Sie müssen gelegentlich zur untersten Ebene gehen, da eine Schaltung im Allgemeinen nicht in einer einzelnen Ebene geroutet werden kann. Sie können die Spuren auf der untersten Ebene jedoch kurz halten. Betrachten Sie sie als "Jumper", die gerade lang genug sind, um zwei Spuren auf der obersten Ebene zu verbinden, die Sie sonst nicht in einer Ebene verbinden können. Das Maß für eine Grundebene ist nicht die Anzahl der Inseln, sondern die längste Abmessung einer Insel. Halte die Jumper kurz und locker.

Sie müssen jedoch unbedingt eine Überbrückungskappe an jeder Stromzufuhr zu jedem IC anbringen. Dies sollten kleine Keramikkappen sein, die sich physisch in der Nähe des IC befinden und deren Gesamtschleifen so klein wie möglich sind. 1 µF 0805 ist ungefähr richtig. Diese sind nicht nur billiger und leistungsfähiger als die entsprechenden Durchgangslochkappen, sondern auch einfacher zu löten.

Da der Gleichstrom von einem anderen Ort kommt und seine Impedanz daher vermutet wird, setzen Sie eine Elektrolytkappe mit angemessener Größe genau dort auf, wo der Strom in die Platine eintritt. Einige 100 µF sollten es tun.


Vielen Dank, Olin. Ich habe Ihre Beiträge zu ähnlichen Fragen gelesen und viel gelernt. Es scheint, als wäre das Verlassen der Bodenebene der größte Fehler gewesen. Ich werde meine Platine mit Masseebenen auf beiden Oberflächen neu gestalten und auch versuchen, die Komponenten so zu platzieren, wie es von anderen gezeigt wird. Auch hier bin ich sehr dankbar für Ihre Hilfe.
Whiskeyjack

1
@ user3455594 Lassen Sie diese Bypass-Kondensatoren nicht aus, insbesondere beim Arduino.
Tut

@Olin - Welche Maßnahmen schlagen Sie vor, um Triacs vor Spannungsspitzen zu schützen, wenn das Gerät ein- oder ausgeschaltet wird? Nach einigem Lesen stellte ich fest, dass Snubber am häufigsten verwendet werden, um eingehende Spitzen zu unterdrücken. Die hauptsächliche Verwendung von Snubber bezog sich jedoch darauf, ein falsches Auslösen des Triac und nicht des Triac-Schutzes zu verhindern. MOV ist eine weitere Option. Was ist deine Meinung dazu? Verweisen Sie auf diesen Link, um auf meinen Anwendungsfall zu verweisen .
Whiskeyjack

20

Sie sollten Ihre Spannungsisolation respektieren. Die Art und Weise, wie Sie die Widerstände R16, R13, R10, R2, R31 und R4 platziert (und geroutet) haben, beeinträchtigt die Isolationsbarriere Ihrer Opto-Isolatoren. Unten habe ich Ihr bestehendes Layout mit Ihrem Isolationspfad markiert, der ziemlich schlecht ist:

Bildbeschreibung hier eingeben

Haben Sie eine einzelne Isolationszone, die so breit wie möglich ist (die Breite Ihrer Optokoppler). Halten Sie die Netzstromkreise auf der Netzseite und die isolierten Stromkreise auf der isolierten Seite. Vorschläge finden Sie im Bild unten.

Bildbeschreibung hier eingeben


Das wird nützlich sein und kann helfen, aber glauben Sie tatsächlich, dass dies die gesamte Ursache des Problems ist und dass diese Lösung es vollständig lösen wird?
Adam Davis

1
@AdamDavis Nein, ich kann nicht garantieren, dass dies die einzige Ursache für Probleme ist. Tatsächlich sollten sowohl Olin als auch Andys Rat auf jeden Fall beachtet werden. Dies ist jedoch ein wichtiger Sicherheitsaspekt, und ich kann auch feststellen, dass die Montage alles andere als perfekt ist, was die Angelegenheit erschwert.
W5VO

@ W5VO - Ich habe ein anderes Layout erstellt . Kannst du es bitte einmal sehen und wertvolle Vorschläge machen? Danke im Voraus.
Whiskeyjack

6

Groundplane, Groundplane, Groundplane und sehr wenige Ausreden. Schauen Sie sich an, wie Sie viel von dieser Platine hätten machen können:

Bildbeschreibung hier eingeben

Ich habe ungefähr 5 Minuten damit verbracht, (mit leuchtend roten) blauen Spuren zu markieren, die rot sein könnten, ohne dass irgendwelche Gehirnarbeit nötig wäre.

Ich würde es verschrotten und von vorne anfangen.


4
@kolosy Wir fangen alle irgendwo an und haben alle schlechte Layouts gemacht, als wir anfingen. Dies ist der beste kostenlose Rat, den das OP erhalten wird. Wenn Sie der Meinung sind, dass ich unangemessen hart bin, melden Sie diese Antwort bitte den Moderatoren.
Andy aka

1
Vielen Dank, Andy. Ich habe in meinem zweiten Entwurf bereits eine Grundplatte eingesetzt. Denken Sie, dass dies das einzige Problem ist? PS - Ich fand Ihre Antwort in keiner Weise hart. Ich schätze Ihre Hilfe.
Whiskeyjack

4
@kolosy Ehrlich gesagt finde ich die Antwort nicht beleidigend (und das mag daran liegen, dass ich dem Urteil des Andy zustimme).
W5VO,

1
@kolosy: Andy sagt es so wie es ist und ist etwas, was das OP in klaren Worten hören muss. Und ja, ich stimme auch seinem Urteil zu.
Olin Lathrop

3
@Andyaka es mag sagen, wie es ist, aber ich sehe keinen Sinn darin, "keine Ausreden" und "kaum Gehirnarbeit" einzubringen. Was für Sie offensichtlich und hirnlos ist, ist nicht für Leute, die gerade erst anfangen.
Kolosy

2

Nach meiner Erfahrung sind Set- und Reset-Leitungen, Flip-Flops und andere Schaltungen sehr anfällig für "elektrisches Rauschen". Der beste Weg, um unvorhersehbares Schaltungsverhalten zu vermeiden, besteht darin, die Stromleitungen an jedem Chip mit geeigneten Kondensatoren zu entkoppeln . Darüber hinaus verringert das Durchschalten / Aktivieren von Eingangsleitungen mit einem Taktsignal die Möglichkeit, dass "Transienten" die Schaltungen beeinflussen.


Ich habe die letzte Zeile nicht verstanden. Könnten Sie bitte näher darauf eingehen? Danke für die Antwort.
Whiskeyjack

1

Als ich an einem DTMF-basierten Laststeuerungsprojekt arbeitete, fand ich das gleiche Problem mit der Wechselstromlast. Ohne Wechselstrom funktioniert meine 8051-Mikrocontrollerschaltung einwandfrei. Wenn ich die Wechselstromlast einschalte, verhält sich der gesamte Stromkreis unterschiedlich, wenn ich die Wechselstromlast über den Relaisstromkreis ein- und ausschalte. Später stellte ich fest, dass der Boden auf dem 8051-Board nicht gut ist. Schließlich ersetze ich die alte 8051-Mikrocontroller-Karte durch eine neue 8051-Mikrocontroller-Karte mit gutem Erdschluss. Jetzt funktioniert es gut. Daher dachte ich, dass Ihre Leiterplatte einen guten Boden haben sollte.


Genau darum ging es. Nun, ich hatte gerade mit der Arbeit begonnen und wusste nichts über ein gutes Leiterplattenlayout, Bodenbeschickung, Isolation usw. Dieser Fehler wurde lange behoben, aber danke für die Beantwortung. Ich hoffe, es ist eine gute Referenz für Menschen, die mit ähnlichen Problemen zu kämpfen haben. (+1).
Whiskeyjack
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.