Go Down

Topic: 16 Relay Module (Read 1 time) previous topic - next topic

skorpi08

Mar 02, 2013, 03:54 pm Last Edit: Mar 02, 2013, 04:33 pm by skorpi08 Reason: 1
Hallo, ich habe ein Problem mit dem Relay Module. Wenn ich Pin 13 auf ON stelle, leuchtet die LED auf dem UNO Board aber auf dem Relay Module nicht. Wenn ich aber Pin 13 auf OFF stelle, dann leuchtet die LED auf dem Relay Module. Dies geschieht natürlich auch mit anderen Pins. Was mache ich falsch oder wo liegt das Problem? Das Relay Module macht praktisch das gegenteil was ich dem sage!

Ich habe dieses Module: http://www.amazon.de/SainSmart-16-Kan%C3%A4le-RelaisModul-Arduino-Module/dp/B005WR747I

Ich verwende dabei den originalen Blink Sketch.
Nicht Mensch, nicht Tier: Programmierer halt...

Eisebaer

hi,

poste doch einen link zum modul. vielleicht kann man festlegen, ob es bei HIGH oder bei LOW durchschaltet.

gruß stefan

jurs


Das Relay Module macht praktisch das gegenteil was ich dem sage!


Nö, die meisten Relay-Module sind nur so verdrahtet, dass das Relais bei Eingang=HIGH nicht geschaltet ist und Eingang=LOW wird geschaltet. Das ist dann vom Hersteller so beabsichtigt!

Und Du mußt dem Relais das richtige sagen damit es richtig schaltet!

skorpi08

Okay, habe ich nicht gewusst. Und wozu soll es gut sein dass man es "vertauscht" hat?
Nicht Mensch, nicht Tier: Programmierer halt...

jurs


Okay, habe ich nicht gewusst. Und wozu soll es gut sein dass man es "vertauscht" hat?


Was heißt schon "vertauscht"?

Das ist absolut gängiger Standard bei mit Optokopplern ausgestatteten Relais-Boards der untersten Preisklasse. Mit Optokopplern arbeiten Relais in Mikrocontrollerschaltungen besonders störungsfrei, und inzwischen findet man Optokoppler sogar auf Billig-Relaismodulen. Durch trickreiche Beschaltung des Optokopplers wird wenig äußere Beschaltung benötigt, die Herstellungskosten sind niedrig, die Störanfälligkeit gering, und das Relais schaltet "active low".

Wenn Du stattdessen "active high" schalten möchtest, ist es Dir unbenommen, in Deine Schaltung den bei der Herstellung des Relais-Moduls eingesparten Transistor selbst wieder einzubauen. Schaltungsbeispiel:
http://www.raspberrypi.org/phpBB3/download/file.php?id=1580
Dann schaltet das normalerweise "active low" schaltende Board mit zusätzlichem Transistor dazwischen "active high", falls Dir das lieber ist.

Der Aufwand ist allerdings völliger Quatsch, denn normalerweise machst Du ja bei der Programmierung "sprechenden Code" durch Definition entsprechender Konstanten, und dann kann es Dir vollkommen egal sein, ob ein bestimmtes Relais "active low" oder "active high" schaltet.

Code: [Select]

#define RELAIS_LICHT 3
#define RELAIS_PUMPE 4
#define RELAIS_EIN LOW
#define RELAIS_AUS HIGH
...
digitalWrite(RELAIS_LICHT, RELAIS_EIN);
digitalWrite(RELAIS_PUMPE, RELAIS_AUS);


Und wenn Du statt eines Relais-Boards mit "active low" Relais in der nächsten Schaltung andere Relais verbaust, die "active high" schalten, dann änderst Du nur die Definition für RELAIS_EIN und RELAIS_AUS um in:
Code: [Select]

#define RELAIS_EIN HIGH
#define RELAIS_AUS LOW


Und der Rest des Codes bleibt wie er ist. Insbesondere verwendest Du im Code Deines Programms immer die Konstante "RELAIS_EIN" zum Einschalten und "RELAIS_AUS" zum Ausschalten. Mußt Du eben nur am Anfang des Programms einmal die Konstanten RELAIS_EIN und RELAIS_AUS passend definieren, je nachdem ob Du "active low" oder "active high" Relais-Module verwendest. Dann ist die Schaltung des Relais doch völlig gehupft wie gesprungen.

Atze05

Wo genau muss der Transistor eingebaut werden? Direkt vor dem Eingang auf der Relaisplatine oder zwischen drin?


BerndJM

Sorry,
wenn ich diesen Thread jetzt etwas "mißbrauchen" sollte:

@ Jurs:
Quote
Das ist absolut gängiger Standard bei mit Optokopplern ausgestatteten Relais-Boards der untersten Preisklasse. Mit Optokopplern arbeiten Relais in Mikrocontrollerschaltungen besonders störungsfrei, und inzwischen findet man Optokoppler sogar auf Billig-Relaismodulen. Durch trickreiche Beschaltung des Optokopplers wird wenig äußere Beschaltung benötigt, die Herstellungskosten sind niedrig, die Störanfälligkeit gering, und das Relais schaltet "active low".


Ich grübel schon seit einiger Zeit über diese "Chinamade" Relaisboards mit den Optokopplern.
Aus Sicht der galvanischen Trennung macht der Optokoppler ja eigentlich keinen Sinn, da diese ja schon durch das Relais gegeben ist.
Eigentlich würde doch ein "Feld-Wald-Wiesen"-Schalttransistor anstelle des Optokopplers das gleiche machen ?!?
Wo liegt also der Trick, der den Einsatz eines Optokopplers rechtfertigt?

Grüßle Bend

Theoretisch gibt es keinen Unterschied zwischen Theorie und Praxis ...

Serenifly

#7
Jun 16, 2013, 03:26 am Last Edit: Jun 16, 2013, 05:52 am by Serenifly Reason: 1
Relais können schon Störungen verursachen obwohl sie mechanisch getrennt sind. Hängt mit dem Magnetfeld zusammen, das beim Abfallen eine Spannung in die Erregerspule induziert. Die Freilaufdiode verhindert da das schlimmste, aber sie ist kein Filter. Optokoppler haben da halt nochmal eine Trennung der Erregerspule und des Controllers.

Es ist übrigens völlig normal Mikrokontroller-Ausgänge als Senke zu verwenden. Das heißt Last gegen Versorgungsspannung und dann Strom in den Controller fließen lassen wenn der Ausgang LOW ist. Viele können nämlich so mehr Strom treiben als wenn sie als Quelle betrieben werden. Der Arduino kann beides, aber da er an Anfänger gerichtet ist, ist das Standardbeispiel wohl Stromquelle/Active-High.

Go Up