Das Relaismodul schaltet sich in einer Schleife ein und aus

Ich erstelle eine Box, mit der Sie eine Stromquelle mit einer Taste ein- und ausschalten können.

Die Einrichtung

  • Netzteil, das 230 AC in 12 V DC umwandelt
  • 12V gehen, um die LED auf der Taste mit Strom zu versorgen
  • 12 V gehen zu einem Protoboard, das 12 V in 5 V 1,5 A umwandelt
  • 5 V gehen mit einem Aurdino zum Protoboard und steuern ein 2-Relais-Modul

Das Problem

Wenn ich das Aurdino über den Micro-USB mit Strom versorge, funktioniert es wie es soll. Ein Klick auf die Taste, und das Relais wird eingeschaltet (Licht geht an und gibt ein Klickgeräusch von sich).

Aber wenn ich den USB entferne und versuche, dem Arduino Strom von den umgewandelten 5 V über die Pins zu geben, geht es in eine Art Schleife, wenn ich die Taste drücke. Ich kann hören/sehen, dass das Relais schnell in einer Endlosschleife ein-/ausgeschaltet wird.

Die Frage

Was ist denn hier los? Ich vermute, dass es ein Problem mit dem Protoboard mit dem Arduino gibt, aber ich kann das Problem nicht erfolgreich debuggen.

Dokumentation

Video des Problems

int ledPin = 13;    // choose the pin for the LED
int inputPin = 7;   // choose input pin 7 for the push button
int relay = 8;
 
void setup() {
    pinMode(ledPin, OUTPUT);  // declare LED as output
    pinMode(inputPin, INPUT); // declare push button as input
    pinMode(relay, OUTPUT);
}
 
void loop() {
    int pushed = digitalRead(inputPin);  // read input value
  
    if (pushed == HIGH) { // check if the input is HIGH    
        digitalWrite(ledPin, HIGH);  // turn LED OFF
        digitalWrite(relay, LOW);
    } else {
        digitalWrite(ledPin, LOW);  // turn LED ON
        digitalWrite(relay, HIGH);
    }
}

Geben Sie hier die Bildbeschreibung ein

Startet der Arduino neu (dh führt das Setup aus) oder führt er nur die Schleife aus, denkt aber, dass die Taste losgelassen wird? Ich weiß nicht, wie viel der Arduino verbraucht, aber das Einschalten des Relais erhöht die Reglerheizung um 0,5 W, also erwärmt sich der Regler und geht in die thermische Abschaltung? Auch die Netzumschaltung sieht etwas riskant aus. Wenn Sie dieses Gerät an eine ungeerdete Steckdose anschließen und dabei der Neutralleiter abgeschaltet wird, kann es passieren, dass das Netz über Filterkappen mit dem Metallgehäuse verbunden ist.
Dank dafür. Werde mal nach der Netzschaltung schauen. Der Arduino startet nicht neu. Sie können sich das Video ansehen und den Ton einschalten, um dies zu überprüfen. Oben verlinkt.
Wenn Sie sich den Code ansehen, woher wissen Sie, dass er nicht neu gestartet wird?
Schwebt pwr, wenn USB gnd entfernt wird? EMI-Problem?
Was um alles in der Welt macht dieses blanke Live-Kabel, das aus Ihrer 12-V-Versorgung herausragt?! Das ist wirklich gefährlich!
Wenn das Relais einschaltet, könnte ein ausreichender Spannungsabfall zwischen dem 5-V-Regler und dem Arduino vorhanden sein, um das Arduino zurückzusetzen, entweder durch Brownout-Erkennung oder einfach durch eine zu niedrige Spannung.
Vielen Dank für Ihre Antwort! Zunächst einmal: Entschuldigung, dass die Live-Verkabelung "herumschwimmt". Es wird in das Relais eingefügt, aber beim Debuggen schnell getrennt. Habe es jetzt aber komplett entfernt, damit wirklich nichts passiert. setup()Zweitens: Ich habe der Methode eine Verzögerung und eine LED-Blinksequenz hinzugefügt , und es hat Ihren Verdacht bestätigt, dass es tatsächlich neu gestartet wird. Jetzt wird es einmal neu gestartet, dann funktioniert es ohne Neustart nach diesem ersten Neustart. Die Frage ist dann, wie verhindere ich den "Spannungsabfall", damit er nicht neu startet?
Ich habe nur angenommen, dass es nicht neu gestartet wurde, da es so schnell geloopt wurde, und ich dachte nicht, dass das Arduino so schnell gebootet hat, aber das war eine falsche Annahme meinerseits!
Irgendwelche Ideen, wie ich den Neustart verhindern kann?
Versuchen Sie, die Stromversorgung für die Relaisplatine direkt über die 5 V auf der 12-V-zu-5-V-Platine zu betreiben. Dadurch wird der Spannungsabfall entlang der Drähte zum Arduino reduziert.
@jfowkes Ich denke, das hat es geschafft! :D Vielen Dank. Ich werde auch alle Sicherheitsanweisungen befolgen, die alle hier gegeben haben.

Antworten (2)

Sicherheit zuerst.

  1. Ihr 230-V-Eingangsstecker (auf der rechten Seite des Fotos) sollte entweder mit Isolierband oder Schrumpfschlauch abgeschirmt werden.
  2. Es sollte eine physische Barriere vorhanden sein, die vorzugsweise aus Acryl oder ABS besteht, oder jede Art von Kunststoff würde ausreichen.

Wie es sich anhört, wird Ihr Arduino-Board braun, sobald Sie es über das SMPS mit Strom versorgen. Ich würde empfehlen, dass Sie zuerst Ihr 230-V-Netz abschirmen und es für die Fehlersuche vollständig sicher machen. Ich empfehle auch, dass Sie den Ausgang des 5-V-Reglers testen. Irgendwie funktioniert Ihr DC-Netzteil entweder nicht richtig oder hat viel zu viel Rauschen für Arduino. Obwohl das Rauschen durch den 5V-Regler behoben werden sollte, sollte man sich dennoch etwas ansehen. Außerdem benötigt Ihr 5-V-Regler möglicherweise einen Kühlkörper zur Wärmeableitung. 12V - 5V = 7V. Daher sind 7 V * 1,5 A = 10,5 W. Selbst wenn Sie keinen Strom von 1,5 A verwenden, wird Ihr 5-V-Regler möglicherweise immer noch warm und Sie benötigen möglicherweise einen Kühlkörper, um ihn kühl und glücklich zu halten.

Ich empfehle auch, kein Steckbrett zu verwenden und Netzspannung im selben Raum zu haben. Es ist keine gute Praxis und sicherlich ziemlich riskant. Ich würde Ihnen empfehlen, eine Leiterplatte zu bauen, auf der alle Komponenten auf die Platine gelötet (geklebt) sind, ohne dass sich Drähte von der Steckplatine lösen und „ungeschirmte“ 230-V-Anschlüsse berühren könnten, was nur eine Katastrophe ist, die darauf wartet, passiert zu werden.

Danke für Ihre Antwort. :) Ich bin neu darin, Dinge dauerhafter als Protoboards zu machen, also werde ich Ihren Vorschlag annehmen und einige Änderungen vornehmen. :) Ich habe die Ausgabe des Konverters überprüft und sie bleibt konsistent. Mein einziges Problem ist jetzt, dass ich das Problem nicht mehr reproduzieren kann. Mehr als 10 Mal versucht, und es startet nicht mehr neu. :S
Das Problem war wahrscheinlich der Spannungsabfall. Ich habe es wie von @jfowkes angewiesen gemacht und das Relais direkt von der 5-V-Quelle mit Strom versorgt, und es wird nicht mehr neu gestartet, wie es aussieht. Konnte das Problem nicht reproduzieren. Ich werde dies als Antwort markieren, da es die klarste Antwort war, aber viele Leute haben hier geholfen.
@eivindml, das ist großartig. froh geholfen zu haben

Aus Ihrem Bild sieht es so aus, als hätten Sie Ihren eigenen 12-V-zu-5-V-Konverter hergestellt. Was also passieren könnte, ist, dass die Spannung, die an Ihr Arduino geht, auf weniger als 2,7 V abfällt und dies zu einem Brown-Out-Reset führt (da es ist standardmäßig aktiviert). Dies erklärt die Tatsache, dass Ihr Arduino von einer externen Versorgung, aber nicht von USB zurückgesetzt wird. Allerdings müssen Sie diese Spannung überprüfen

Ich habe die Ausgangsspannung des Wandlers jetzt mehrmals überprüft und sie bleibt konstant. Fällt vielleicht 0,01 V ab. Aber jetzt kann ich das Problem nicht reproduzieren. Mindestens 10 mal probiert.
ist dein problem jetzt behoben?