Geräusche von einem Elektroschocker-basierten Butanbrenner-Zündfunken blockieren den ATmega328-Mikrocontroller

Ich habe einen Elektroschocker ( http://www.amazon.com/VIPERTEK-VTS-989-Heavy-Rechargeable-Flashlight/dp/B00FPE6UN2 ), mit dem ich einen großen 1/2-Zoll-Lichtbogen durch die Luft erzeuge Fernzünden einer Butan-basierten Fackel mit einer 4-Fuß-Flamme.

Der Elektroschocker wird mit einer eigenen isolierten Batterie betrieben und ist mit einem Arduino Pro Mini (mit Atmel Atmega328-Mikrocontroller) optogekoppelt, um den Elektroschocker-Zünder auszulösen und das Magnetventil zu öffnen.

Meine 5-V-Stromversorgung für den Arduino kommt von zwei Schaltnetzteilen, die über einige Schottkys miteinander ODER-verknüpft sind. Ich habe eine 2200-uF-Kappe, die ich dem Netzteilausgang nach den "OR" -Dioden hinzugefügt habe. Es gibt eine dedizierte Batterie für die Schaltnetzteile des Arduino, getrennt und in keiner Weise mit der Batterie des Elektroschockers verbunden.

Ich habe eine 1-W-5,1-V-Zenerdiode hinzugefügt, die von Arduino Vcc in Sperrrichtung auf GND vorgespannt ist, um zu versuchen , unerwünschte positive und negative Spannungsspitzen abzuschneiden, die vom Lichtbogen des Elektroschockers stammen.

Die Stromversorgung ist jedoch sehr sauber, bis ich den Elektroschocker abfeuere, um die Fackel anzuzünden. Während dieser Zeit zeigt mein O-Scope Transienten bis zu 10+ V und bis zu -5 oder weniger V, selbst mit eingesetzter Zenerdiode.

Beachten Sie, dass die Funken mit einer Rate von ~ 30 Funken / Sek. auftreten, und ich würde vermuten (ich müsste dies durch mehr Hintergrundrecherche überprüfen, um sicherer zu sein), dass die Spannung an den Lichtbogenelektroden 40 kV ~ 80 kV beträgt.

Manchmal kommt es bei meinem Mikrocontroller zu völlig unerwarteten Störungen. Beispiel: Der Elektroschocker-Zünder sperrt „EIN“, auch wenn mein Code keinen Ort hat, an dem er eingeschaltet bleibt, der LED-Herzschlag bleibt „EIN“, obwohl ich keinen Ort habe, an dem ich der LED befehle, dauerhaft zu bleiben und nicht zu blinken, der LED-Herzschlag blinkt weiter und zeigt an Es empfängt Befehle ordnungsgemäß, aber das Magnetventil reagiert nicht mehr usw. usw. Reset behebt diese Probleme. Ich denke, sie hängen mit dem EMP-Impuls zusammen oder etwas, das im Chip mit Bitflips oder so passiert, nicht mit dem Code. Ich bin ein erfahrener Codierer für diese Chips, aber ich bin nicht erfahren im Umgang mit großen Lichtbögen und Elektroschockern und der Minderung von EMF- und EMP-Rauschen.

2 Fragen:

1) Wie kann ich unerwünschtes EMF/EMP-Rauschen von diesem großen Funkenstrecken-/Elektroschocker-Zünder entfernen/reduzieren? +10 bis -5 V klingt für mich WIRKLICH schlecht für den Mikrocontroller, es sei denn, es handelt sich um ein Artefakt der Messung mit meinem Oszilloskop und ist nicht wirklich so auf dem Chip vorhanden, wenn der Zener vorhanden ist.

2) Wird die Konfiguration des Watchdog-Timers mein Problem beheben und das automatische Zurücksetzen während des Absturzes konsequent erzwingen, oder ist es möglich, dass der Watchdog auch abstürzt? Ich werde es trotzdem versuchen, aber zusätzliche Informationen über meine Wissensdatenbank hinaus sind hilfreich.

Haben Sie einen Schaltplan?
Können Sie versuchen, der Verkabelung Ferrite hinzuzufügen? Sie sollten einfach aus zufälligen Kabeln zu beziehen sein und bei hochfrequentem Rauschen helfen
Ihr Kabel ist eine wahrscheinliche Aufnahmequelle. Verbinden Sie das Arduino über ein verdrilltes, abgeschirmtes Paar mit dem Opto, wobei die Abschirmung mit Masse verbunden ist und was auch immer Sie für das Arduino verwenden. Verwenden Sie keinen Fall? Zeit aufzusteigen. Metallkoffer bitte. Machen Sie dasselbe für alle externen Anschlüsse, einschließlich Strom.
@Gabriel Staples Hast du jemals die Lösung dafür gefunden? Ich habe das gleiche Problem. Sie können meine Frage hier sehen: electronic.stackexchange.com/questions/229601/… Am Ende bemerkte ich, dass es behoben wurde, wenn ich meinen Stromschienenkondensator berührte (der einen Weg zur Erde bereitstellte). Ich habe mehr debuggt, als mein kleiner Hochspannungsgenerator starb. :( Vielleicht können wir gemeinsam dieses Rätsel ein für alle Mal lösen!
@while1, ich würde dieses Problem mit dem Elektroschocker als Zünder immer noch gerne lösen, aber inzwischen bin ich zu einem auf Widerstandsheizungen basierenden Siliziumnitrid-Zünder von Sparkfun gewechselt, und er funktioniert sehr gut (Link: sparkfun .com/products/11694 ). Für normale Situationen ohne Luftstrom oder aktive Kühlung über diesem 12-V-Zünder geben Sie ihm 12 V, aber wenn Sie einen Luftstrom oder zufällige (nicht beabsichtigte) aktive Kühlung über dem Zünder haben, geben Sie ihm 16 V. Beachten Sie, dass dieser Zünder einen temperaturabhängigen Widerstand hat. Bei 12V zieht es zunächst wie 5+A, fällt dann aber nach wenigen Sekunden schnell auf ~1,8A ab.
@Gabriel Ich habe das herausgefunden, Sie können meine Antwort in meinem Beitrag sehen, aber im Grunde sollte ein EMI-Schild Ihr Problem lösen.

Antworten (1)

Sie müssen die Elektronik mit einer Metallabschirmung versehen und abgeschirmte Kabel verwenden, die nur an einem Erdungspunkt geerdet sind. Fügen Sie außerdem 1uf- und .o1uf-Entkopplungskappen zu Arduino Vcc hinzu.