Arduino schaltet Relais nur theoretisch

Hallo zusammen,

habe gestern eine kleine Schaltung aufgebaut, um mit einer 433MHz-Fernbedienung ein Relais für 600ms anziehen zu lassen. Habe das ganze an einem Arduino Uno auf dem Breadboard getestet, alles wunderbar geklappt. Dann hab ich das ganze auf eine Lochrasterplatte gelötet, wobei ich den Uno durch einen Pro Mini ersetzt habe. Und was ist passiert? Das Relais zieht nicht mehr an. Habe es mit 2 verschiedenen versucht, weil ich erst dachte, es läge daran. Aber Fehlanzeige, beide Relaisboards verweigern ihren Dienst. Beim einen (Keyes 5V Relay Module) leuchtet beim "theoretischen Schlatvorgang" zumindest die entsprechende LED, aber seeeeehr schwach. Beim anderen (5V 1 Channel Level Trigger Optocoupler Relay Module) passiert gar nichts.

5V liegen beim Schalten auch am entsprechenden PIN an - einziger Punkt, den ich mir vorstellen könnte, wäre die Stromstärke. Allerdings reichen (zumindest beim zweiten Relaisboard) zum Triggern 5mA aus, der Pro Mini bietet 40mA pro Pin, der Uno, bei dem es ja funktioniert hat, ja sogar nur die Hälfte, wenn ich das noch richtig weiß. Beim Überbrücken der 5V-Versorgungsspannung auf den Schaltpin schließen beide Relais übrigens problemlos, kann also auch nicht an der generellen Stromversorgung liegen.

Jemand ne Idee? :confused:

Vielen Dank schon mal im voraus.

Danke dass wir wieder raten dürfen.
Ohne Schaltung und Sketch ist das so.

Hast du auch die Masse verbunden?

Welche Spannung liegt am Relaismodul an?

Und poste den Sketch, bitte in Code-Tags.

Michael87: Jemand ne Idee?

Ja: Du bist ein Quiz-Showmaster und denkst, hier im Forum haben Leute sehr viel Zeit übrig und möchten an Deinem Ratespielchen (genaue Schaltung raten, den tatsächlich verwendeten Code raten) teilnehmen.

OK, gerade habe ich etwas Zeit und versuche einen möglichen Fehler im Code zu raten: Vielleicht hast Du vergessen, den zu schaltenden Ausgangs-Pin auf pinMode OUTPUT zu setzen und versuchst nun, Deine Relais zwischen INPUT/floating und INPUT/HIGH zum Umschalten zu bewegen (was dann natürlich nix wird).

Michael87: Hallo zusammen,der Pro Mini bietet 40mA pro Pin, der Uno, bei dem es ja funktioniert hat, ja sogar nur die Hälfte, wenn ich das noch richtig weiß.

Da UNO und Pro Mini den selben Prozessor verwenden, liefern beide den gleichen Strom von 20mA. Die 40mA sind bei beiden das absolute Maximum vorm Rauchwölkchen. Der Gesamtstrom aller Pins zusammen darf 200mA nicht überschreiten.

Denk bei der Überprüfung deiner Schaltung auch an schlecht leitende kalte Lötstellen oder irgendwelche Kurzschlüsse.

jurs: Ja: Du bist ein Quiz-Showmaster und denkst, hier im Forum haben Leute sehr viel Zeit übrig und möchten an Deinem Ratespielchen (genaue Schaltung raten, den tatsächlich verwendeten Code raten) teilnehmen.

Ok, tut mir leid, ich ging davon aus, dass es eher ein Relais-Problem ist als was mit der Schaltung zu tun hat.

ABER:

Vielleicht hast Du vergessen, den zu schaltenden Ausgangs-Pin auf pinMode OUTPUT zu setzen und versuchst nun, Deine Relais zwischen INPUT/floating und INPUT/HIGH zum Umschalten zu bewegen (was dann natürlich nix wird).

Das war's glaub ich, ich hab nämlich nen anderen PIN genommen als im Test und hab nur im loop die Nummer geändert, nicht aber beim pinMode. Werde es gleich testen, VIELEN DANK!

Und ja, war blöd von mir, ohne Sketch und Code zu fragen - ich gelobe Besserung (auch, was die Fehlüberschätzung angeht à la "kann weder an Schaltung noch an Code liegen" -.-)! Nochmal DANKE und SORRY!

Theseus: Da UNO und Pro Mini den selben Prozessor verwenden, liefern beide den gleichen Strom von 20mA. Die 40mA sind bei beiden das absolute Maximum vorm Rauchwölkchen. Der Gesamtstrom aller Pins zusammen darf 200mA nicht überschreiten.

Ah, ok, vielen Dank für die Infos. :)

Michael87: ABER:Das war's glaub ich, ich hab nämlich nen anderen PIN genommen als im Test und hab nur im loop die Nummer geändert, nicht aber beim pinMode. Werde es gleich testen, VIELEN DANK!

Um das zukünftig zu verhindern, solltest du auch die Pins mit Namen versehen. So wie im Beispiel:

//Deklaration
const int RelaisAusgang = 3;

//Setup
pinMode (RelaisAusgang, OUTPUT);

//Loop
RelaisAusgang = HIGH;

Wenn du jetzt den Pin änderst, wird das für alle Vorgänge gültig.

HotSystems: Um das zukünftig zu verhindern, solltest du auch die Pins mit Namen versehen. So wie im Beispiel:

//Deklaration
const int RelaisAusgang = 3;

//Setup pinMode (RelaisAusgang, OUTPUT);

//Loop RelaisAusgang = HIGH;




Wenn du jetzt den Pin änderst, wird das für alle Vorgänge gültig.

Hey, vielen herzlichen Dank, werde den Ratschlag beherzigen! :)

Und ja, es war tatsächlich der Fehler - korrigiert funktioniert nun alles, wie es soll! :)