Schieberegisterausgang zu Relais

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.

Geben Sie hier die Bildbeschreibung ein

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.Geben Sie hier die Bildbeschreibung ein

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.

WFM-Dateien

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:

Geben Sie hier die Bildbeschreibung ein

Volle Größe

Geben Sie hier die Bildbeschreibung ein

Volle Größe

Geben Sie hier die Bildbeschreibung ein

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:

2us

200ns

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.

Geben Sie hier die Bildbeschreibung ein

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.

Haben Sie den Stromanschlüssen des Schieberegisters einen Entkopplungskondensator hinzugefügt?
Ja, ich habe eine 104 angeschlossen. Da es isoliert ist, wäre ein Entkopplungsproblem nicht die ganze Zeit ein Problem, frage ich, weil ich mir nicht sicher bin? Alles funktioniert einwandfrei, wenn ich die Pumpe(n) nicht anschließe.
Hast du den Jumper zwischen Vcc und JD-Vcc entfernt?
Ja, es wurde entfernt, ich habe eine dedizierte 5-V-Wandwarze, die mit Gnd und JD-VCC verbunden ist.
Rigol WFM-Dateien, was ist das? Wie sollen wir die lesen?
@Steven - genau das wollte ich fragen ;-) Exist - kannst du stattdessen bitte einen Screenshot posten?
Tut mir leid, Leute, ich dachte, sie wären ein Industriestandard. Ich werde ein paar Bilder machen und updaten.

Antworten (3)

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:

  • Binden Sie die beiden Registeruhren zusammen (Pins 11 und 12)
  • Ziehen Sie den Master-Reset-Pin hoch (verbinden Sie Pin 10 mit VCC)
  • Ziehen Sie die Ausgangsfreigabeleitung auf Low (Pin 13 mit Masse verbinden)

Schließlich benötigen Sie einen 0,1-uF-Bypass-Kondensator zwischen Pin 16 (Vcc) und Pin 8 (Gnd).

Ich habe eine 104 über dem vcc und gnd des Schieberegisters.
@Exist - und Sie haben den Reset-Pin nicht schwebend gelassen oder so, oder?
Das einzige, was mir an dieser Stelle einfällt, ist zu versuchen, eine nicht induktive Last (z. B. eine 60-W-Glühbirne oder so) zu schalten und zu sehen, ob dies auch das Problem auslöst. Wenn dies nicht der Fall ist, haben Sie EMI-Probleme, wenn sich Ihre Pumpe einschaltet. wenn ja, bin ich etwas verwirrt. Fangen Sie an diesem Punkt an, sich Ihre Versorgungsschienen anzusehen, wenn das System umschaltet, und sehen Sie, ob etwas Seltsames auf ihnen passiert.
Nein, ich glaube nicht einmal, dass das Schieberegister zurückgesetzt wird, da es weiterhin andere Relais eingeschaltet hält, selbst wenn es die Pumpe nicht einschalten kann.
Die Lichter funktionieren großartig (100 W), ich habe ein paar ausprobiert und es gab keine Probleme. Ich werde versuchen, das Schieberegister weiter weg neu zu verdrahten, wie Sie es gefragt haben. Übrigens danke, dass du dir die Zeit für deine Gedanken genommen hast.
@Exist - Um es klar zu sagen, Sie sagten, dass die Diode in Reihe mit dem Opto für den Bruchteil einer Sekunde aufleuchtet und sich dann ausschaltet? Wenn das wahr ist, wird das Schieberegister tatsächlich zurückgesetzt.
@Exist Entschuldigung, wir hatten einen Fehler in der Matrix. Einer unserer Zufallszeichengeneratoren ist außer Kontrolle geraten :)

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).

Back-to-Back-Dioden

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.

Meinst du auch das Schieberegister? Es ist derzeit in der Power Bar-Baugruppe montiert, aber ich könnte es lösen und weiter weg bewegen. Meinst du es nimmt Geräusche auf?
Ja, auch diesen verschieben und das Kabel vom Schieberegisterausgang zum Modul verwenden. Es hört sich so an, als ob es sich um ausgestrahlte EMI handelt, wenn dies immer noch geschieht, während das Arduino über die Batterie mit Strom versorgt wird.
@Exist - hast du das oben ausprobiert? Wenn ja, hat es einen Unterschied gemacht?
Habe ich gemacht, Ergebnisse oben gepostet.
Hmmm, hier stimmt etwas nicht :-) Wenn Sie jetzt ein Oszilloskop haben, dann beginnen Sie, die Signale und die Leistung während des Relaisschaltens zu untersuchen, Sie sollten eine Vorstellung davon bekommen, was passiert. Poste ein Bild der Ergebnisse, wenn du dir nicht sicher bist, was du davon halten sollst.
@Exist - danke für die Bilder, diese Spitze sieht ziemlich böse aus. Was ist das blau/weiße Kabel, das an der rechten Seite der Relaisplatine angeschlossen ist? (sieht so aus, als wäre es mit einem der Eingänge verbunden)
Das blau-weiße Kabel kommt von der Wandhalterung und versorgt nur das Schalten der Relais. Ich mache noch ein Bild um es besser zu zeigen. Ich werde auch anfangen, alle Ihre Vorschläge durchzugehen, danke!

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.

Ich habe meinen Beitrag mit weiteren Tests aktualisiert. Ich stimme zu, es scheint EMI zu sein, Fake hat mich gestern auch so gedrängt. Ich tue mich aber verdammt schwer, es aufzuspüren. Wenn Sie sagen, dass Sie die Erde verbinden sollen, gilt das immer noch, wenn der Arduino batteriebetrieben ist? Die Pumpe ist 120 V 1,2 Ampere. Vielen Dank