Entschuldigung für die Länge.
Dies ist eine Fortsetzung meiner letzten Frage . Ich habe eine optogekoppelte 8-Relais-Platine, die ich an meinen Mikrocontroller anschließen möchte. Ich habe ein 74HC595-Schieberegister inline platziert, um die Eingangsports zu konsolidieren. Dabei hat das Board jedoch ein merkwürdiges Verhalten gezeigt.
Wenn ich nichts einstecke oder nur eine kleine Last in die Relais stecke, funktioniert alles gut mit dem Schieberegister. Sie lassen sich ohne Probleme ein- und ausschalten. Sobald ich eine 1+ Ampere-Pumpe an das Relais anschließe, können Sie die Relaisauslösung hören, dann löst sie sich schnell aus. IN1 (Abbildung oben) LED leuchtet ebenfalls für den Bruchteil einer Sekunde auf. Manchmal (1 von 5) bleiben das Relais und die Pumpe jedoch tatsächlich eingeschaltet. Jetzt wird es seltsam; Wenn ich das Schieberegister entferne und die Pins direkt mit dem Mikrocontroller verbinde, funktioniert es beim Einschalten der Pumpe einwandfrei.
Es wurde also eine Störung des Schieberegisters ausgelöst, aber soweit ich das Design der Relaisplatine verstehe, versorgt das Schieberegister nur die LED im Optokoppler (U1) mit Strom und ist in keiner Weise mit einem anderen Teil der Schaltung verbunden (Schieberegister und Controller wurden mit Batterie betrieben). Die Platine ist auch Active Low, daher zieht das Schieberegister meines Wissens Strom vom Optokoppler. Könnte es sein, dass der Optokoppler mehr Strom benötigt, um die höhere Last zu schalten, als das Schieberegister sinken kann? Ich kann weit weg sein, da dies mich verblüfft hat. Gibt es auch Möglichkeiten, wie Störungen eindringen können, obwohl sie isoliert und mit einer Batterie verbunden sind?
Alle Tests wurden mit einer Batterie durchgeführt, die das Mikrocontroller-Schieberegister mit Strom versorgt, und einer sehr einfachen Skizze, die nur auf einen einzelnen Schieberegisterstift für Byte abzielte.
Das 8-Relais ( Info ): Es ist derzeit mit einem separaten 5-V-Wandanschluss konfiguriert, der die Relais mit Strom versorgt. Der Mikrocontroller liefert nur 5 V, um den Optokoppler mit Strom zu versorgen.
Ich schätze jede Hilfe, die Sie mir geben können.
Update vom 13. August:
Immer noch nicht in Ordnung, aber ich habe noch ein paar Tests durchgeführt: Ich habe das Schieberegister und Arduino 3 Fuß von den Relais und der Netzstromversorgung entfernt. Beide wurden mit einer 9V-Batterie betrieben. Das einzige, was mit der Relaisplatine verbunden war, war eine 5-V-Schiene vom Arduino und die 8 Drähte vom Schieberegister zu den Eingängen der Relaisplatine. Gleiche Ergebnisse, 100-W-Licht funktioniert hervorragend, die Pumpe führt zum Auslösen. Wenn ich das Schieberegister entferne und die Ausgangspins direkt an den Arduino anschließe, schaltet sich die Pumpe ohne Probleme ein.
Nur um zu überprüfen, ob nichts mit der dedizierten 5-V-Wandwarze los war, die die Relais mit Strom versorgt, habe ich sie ausgesteckt und den Jumper auf JD-VCC und VCC ersetzt und den Arduino GND angeschlossen. Gleiches Ergebnis, 100-W-Licht funktioniert, Pumpe löst aus.
Es muss ein Schieberegister sein.
Ich habe auch einen 47uf-Entkopplungskondensator auf die Stromschienen gelegt, außerdem hat das Schieberegister eine 104 direkt daneben.
Heute Abend werde ich versuchen, ein Multimeter mit einem der Ausgangspins in Einklang zu bringen, ich möchte sehen, wie viel Strom der Optokoppler zieht.
Ich habe auch gerade ein Oszilloskop bekommen, also lerne ich noch, wie man es benutzt, aber vielleicht kann ich herausfinden, wie man Störungen auf der 5-V-Schiene oder in den Ausgangsleitungen misst.
Update 14.08.:
Ich habe es geschafft, es mit meinem Oszilloskop zu erfassen. Rigol wfm-Dateien unten. Kanal eins ist mit einem Ausgangspin des Schieberegisters verbunden. Kanal zwei ist an der 5V-Schiene angeschlossen.
Ich habe gerade einige Tests durchgeführt und es ist mir gelungen, eine 500-mV-1-V-Spitze (manchmal war es ein Abfall) sowohl auf der 5-V-Schiene als auch auf einem der Ausgangspins des Schieberegisters zu reproduzieren. Das ist das Problem richtig? Würde diese Art von Spitze dazu führen, dass das Schieberegister auslöst und sich seltsam verhält?
15. August:
Unten ist eine Aufnahme, wenn ich die Pumpe manuell ein-/ausschalte. Verwenden Sie dazu nicht das Schieberegister. Die blaue Leitung ist der Ausgangspin 1 des Schieberegisters, die gelbe Leitung ist 5 V.
Ich habe auch ein paar Bilder vom Aufbau gemacht:
Ich habe auch einen Forumsbeitrag, in dem ich die Ergebnisse ebenfalls aktualisiert habe: Arduino Forum
16. August:
Heute konnte ich ein viel besseres Bild machen. Ich wusste nicht, dass das Oszilloskop nur so viele Punkte erfasst, wenn es in 1-Sekunden-Intervallen läuft (macht jetzt total Sinn). Hier ist die böse Emi über Pin 1 aus dem Schieberegister:
Ich werde dieses Wochenende alle empfohlenen Komponenten abholen und versuchen, sie nacheinander hinzuzufügen.
18. August:
Problem bestätigt. Die Pumpe verursachte so viel Lärm, dass nichts, was ich an den Niederspannungsleitungen tun konnte, die Wellen eindämmen konnte. Diese Wellen bahnten sich ihren Weg in die Takt-\Latch-\Daten-Pins des Schieberegisters und verursachten Beschädigungen \ Resets.
Also ging ich bis zum Äußersten und riss eine Hochleistungs-Überspannungsschutzschaltung von APC Rack heraus und stellte sie vor die Pumpe.
Jetzt gibt es kaum noch einen Blip auf einer der Linien. Hurra!
Jetzt ging es darum, dies in diesem Gehäuse-Footprint zu halten, also werde ich sehen, ob ich eine kompaktere Version machen kann, da ich denke, dass dieses Board übertrieben ist und ich eine für jede der 5 Pumpen, die ich habe, brauchen würde. Ich werde mit nur einem einzigen MOV beginnen und sehen, wie sehr es das Rauschen reduziert.
Problem gelöst: Ich habe mich entschieden, einen Leitungsfilter zu kaufen, um zu sehen, ob ich das Pumpengeräusch direkt an der Quelle herausfiltern kann. Ich habe mir diesen gekauft: Delta High Performance Filter . Jetzt bekomme ich nicht einmal mehr einen Blip auf dem Oszilloskop.
Vielen Dank für die Hilfe an alle. Ich wünschte, ich könnte Sie alle als Löser markieren, aber ich kann nicht, also habe ich es einfach dem gegeben, der die meisten Tipps gegeben hat.
Wie ist das Schieberegister verdrahtet? Haben Sie einen 0,1-uF-Bypass-Kondensator über den Stromleitungen in der Nähe des IC-Gehäuses?
Es klingt für mich nach einem Rauschproblem, zumal es nur ausgelöst wird, wenn die Relais belastet sind. Die Tatsache, dass dies dazu führt, dass der Registerstatus des Schieberegisters zurückgesetzt wird, lässt mich denken, dass es sich um ein Stromversorgungsproblem handelt.
Auch, wie verdrahtest du das Schieberegister.
Mit einem 74HC595 müssen Sie:
Schließlich benötigen Sie einen 0,1-uF-Bypass-Kondensator zwischen Pin 16 (Vcc) und Pin 8 (Gnd).
Versuchen Sie, den Arduino so weit wie möglich vom Relaismodul und der Pumpe wegzubewegen. Stellen Sie außerdem sicher, dass sich keine (Pumpen-)Stromversorgungskabel in der Nähe des Arduino befinden.
Verwenden Sie dann ein Twisted-Pair- oder CAT5-Kabel, um das Ein- / Aus-Signal vom Arduino zu senden.
Ich kann die wfm-Datei nicht öffnen (ich denke, es sind einige Hex-Werte, aber das wird schwer zu visualisieren sein, wenn es trotzdem geöffnet wird), aber Ihrer Beschreibung nach scheint es, als hätten Sie das Ereignis erfasst.
Diese Spitze (die je nach BW und Einstellungen schneller/größer sein kann als auf Ihrem Oszilloskop angezeigt) wird wahrscheinlich das Problem sein. Wie eine solche Spitze auf Ihre Schienen gelangt, muss noch herausgefunden werden - ich denke, an dieser Stelle würden ein oder zwei Fotos Ihres Aufbaus wahrscheinlich sehr helfen, und wenn möglich ein detailliertes Diagramm Ihrer gesamten Verkabelung (Pumpe, Relaismodul, alle Netzteile, Arduino usw.)
Ist der Relaisadapter und die Arduino-Masse miteinander verbunden?
BEARBEITEN - Wenn man sich das Bild ansieht, sieht das Layout nicht gut aus, es ist etwas eng. Es scheint, dass unter dem Relaismodul Netzkabel verlaufen - diese können mit der isolierten Arduino-Seite gekoppelt sein. Versuchen Sie, diese zu entfernen, wenn Sie können.
Außerdem sollten Sie wirklich CAT5 oder ähnliches für das Schieberegistersignal verwenden - führen Sie es zusammen mit den 5 V aus, um die Schleifenfläche zu verringern.
An dieser Stelle würde ich auch versuchen, ein paar in Sperrrichtung vorgespannte Dioden zu 5 V und Masse vom Schieberegisterausgang hinzuzufügen, um jede auftretende Spitze zu klemmen (5 V Zener optional, aber gute Idee, wenn Sie eine haben).
Sie können auch einen kleineren Kondensator von der Leitung zur Masse legen (z. B. 100 nF), da dies nur ein Schaltsignal ist.
Um absolut sicherzustellen, dass keine Verbindung zwischen irgendetwas besteht, was nicht sein sollte, lohnt es sich wahrscheinlich, die Kontinuität zwischen Arduino-Masse und Relaismodul-Masse sowie Arduino 5V und Relais 5V zu testen.
Das klingt sicherlich nach einem Problem mit elektromagnetischen Interferenzen.
Die Arduino-Stromversorgungsmasse sollte mit der "grünen Masse" Ihres lokalen Stromversorgungssystems verbunden werden. Es könnte ein Blindstecker mit einem einzelnen Draht zur 'grünen Masse' verwendet werden.
Versuchen Sie, die Pumpenverkabelung physisch von den Mikrocomputern zu trennen.
Sie können auch einen „Überspannungsschutz“ MOV (Metalloxid-Varistor) über der Pumpe hinzufügen, um die Spitzen zu absorbieren, die beim Schalten der Last auftreten können.
Welche Spannung und Stromstärke hat die Pumpe?
Deine Verkabelung sieht richtig aus.
Bruno Ferreira
Existieren
Oli Glaser
Existieren
stevenvh
Oli Glaser
Existieren