Forum: Mikrocontroller und Digitale Elektronik Arduino Relais Modul -schalten bei logisch HIGH


von Thomas (Gast)


Lesenswert?

Hallo,

ich habe ein Relais Modul gleich dem im Link gezeigten (anderen 
Verkäufer , Bild soll nur das Relais zeigen) .

Das "Problem" ist folgendes: Das Relais schalten bei logisch LOW , da es 
über ein Arduino betrieben werden soll und die Digital Pins nach 
erstmaliger Stromzufuhr über USB auch zuerst mal logisch LOW haben, 
würde das Relais immer erst einmal schalten bevor ich den PIN dann auf 
logisch HIGH setzen könnte. (Genau das möchte ich aber vermeiden)

Meine Frage: Ist das bei allen Relais Modulen dieses Typs prinzipiell so 
oder ist dass das ich habe event. falsch beschalten, oder ... ?

Event. hat ja jemand eines gleicher Bauform kürzlich erworben das 
tatsächlich erst bei logisch HIGH schaltet, und könnte mir mitteilen 
welches das war...

Danke im voraus.

Thomas

http://www.ebay.de/itm/1-Kanal-Relais-Relay-Modul-Optokoppler-5V-fur-PIC-AVR-DSP-ARM-MCU-Arduino-3279-/301694955774?hash=item463e6bb0fe:g:zgUAAOSwHnFVsKqJ

von Joachim B. (jar)


Lesenswert?

Thomas schrieb:
> Das "Problem" ist folgendes: Das Relais schalten bei logisch LOW , da es
> über ein Arduino betrieben werden soll und die Digital Pins nach
> erstmaliger Stromzufuhr über USB auch zuerst mal logisch LOW haben,

nö, das scheint mir falsch zu sein, ein Arduino Port steht erst mal auch 
input nach power on und die Spannung ist eher high als low, aber wenn 
der Port gesetzt und umgesteuert wurde bestimmt das Programm wie der 
Port steht, das oft schneller als ein Relais reagiert bei richtiger 
Programmierung.


> würde das Relais immer erst einmal schalten bevor ich den PIN dann auf
> logisch HIGH setzen könnte. (Genau das möchte ich aber vermeiden)

man kann dem IN am Relais auch einen pullup nach +5V verpassen, dann ist 
das von der offenen Leitung oder irgendwelchen Einstrahlungen relativ 
unbeeinflusst bis der Port so schaltet wie gewünscht.

> Meine Frage: Ist das bei allen Relais Modulen dieses Typs prinzipiell so
> oder ist dass das ich habe event. falsch beschalten, oder ... ?

bei dem meisten, aber die Bezeichnung ist eine Lüge, da ist kein 
Optokoppler im Bild sondern nur wie ich neu lernen durfte ein PNP 
welches am PI nicht abschalten muss weil dort nie 5V ankommen sondern 
nur 3,3V

> Event. hat ja jemand eines gleicher Bauform kürzlich erworben das
> tatsächlich erst bei logisch HIGH schaltet, und könnte mir mitteilen
> welches das war...

setze einen invertierenden Treiber 74HC4049 mit pulldowns am Eingang ein

von JoJoBa (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Thomas,

Prüfe nochmal durch "Handansteuerung" wann dein Relais schaltet!

Ich habe viele Relay-Boards, aber keines das nur 1x Relais hat.

Bei deinem erkenne ich kein OPTOKOPPLER, nur einen TR zum schalten.

Demnach will er bei LOW nicht schalten
und bei HIGH schaltet er.

Habe dazu ein Schaltplan gefunden.

Vermutlich ist die gleiche Schaltung was du hast ?!

Wenn es so ist, dann hast du gute Karten;
Dein Relais wird nach dem Arduino einschalten erstmal ruhig bleiben

Vorausgesetzt; in der Deklaration und danach im setup() setzt du den
entsprechenden Ausgang auf LOW (zur Sicherheit)

Gruß!

von doedel (Gast)


Lesenswert?

alternative gibt es für solche Fälle auch die Möglichkeit, die 
Versorgungsspannung der Relais / der Verbraucher über eine 
Einschaltverzögerung laufen zu lassen. Die kannst Du dann so einstellen, 
dass die Spannung erst freigegeben wird, wenn der Bootloader des Arduino 
seine Arbeit erledigt hat.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Thomas schrieb:
> Das "Problem" ist folgendes: Das Relais schalten bei logisch LOW , da es
> über ein Arduino betrieben werden soll und die Digital Pins nach
> erstmaliger Stromzufuhr über USB auch zuerst mal logisch LOW haben,
> würde das Relais immer erst einmal schalten bevor ich den PIN dann auf
> logisch HIGH setzen könnte. (Genau das möchte ich aber vermeiden)

 Wenn du deine Init-Routine gleich am Anfang plazierst und die Pins
 entsprechend setzst, hat das Relais keine Chance zu schalten.
 Ausserdem sind die Ports beim Einschalten immer als Eingange definiert,
 also Hi-Z. Die konnen somit keinen Relais einschalten.

von JoJoBa (Gast)


Angehängte Dateien:

Lesenswert?

Falls dein Relay LOW-Aktiv angesteuert wird, dann hat es noch
ein OPTOC drauf.

Ja, in diesem Fall musst du dafür sorgen, dass sein Ucc
später ankommt wie das Steuersignal.

wie @doedel sagt!

(Ich habe noch keine china-Schaltung gesehen mit pmp Transistor)

Ich arbeite gerne mit mehrkanaligen Relay-Boards und habe dazu
eine kleine Zusatzschaltung, die ich generell immer einsetze.

Das Problem ist tatsächlich so, dass Arduino beim
hochlaufen in der erster Sekunde an Ausgängen LOW hat !!(Praxis!!!)

Mit der Einschaltverzögerung habe ich automatisch ein
ENABLE-DISABLE Funktion!


Alles ohne Gewehr, nur als Beispiel zum Thema ;-))

Gruß!

von Thomas (Gast)


Lesenswert?

Hallo Jungs,

vielen Danke für eure Antworten. Es funktiniert !!

Ich habe schon innerhalb dem Setup den Pin auf HIGH gesetzt und es 
funktioniert :-) (D.h. der Pin geht somit gar nicht erst auf LOW 
(default) oder eben zu kurz damit das Relais reagieren könnte.. kann ich 
aber mit meinem Messgerät nicht messen)


void setup() {
digitalWrite(outPin_m, HIGH);
}

von JoJoBa (Gast)


Lesenswert?

Na PRIMA!!!

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

JoJoBa schrieb:
> Das Problem ist tatsächlich so, dass Arduino beim
> hochlaufen in der erster Sekunde an Ausgängen LOW hat !!(Praxis!!!)

 Das kann nicht sein.
 Vielleicht hat ein Arduino-Sketch das, aber AVRs (und somit auch 328P
 der im Arduino werkelt), haben die Ports beim Einschalten IMMER als
 Eingange definiert.
 Also, nichts mit LOW.

von Thomas (Gast)


Lesenswert?

Marc V. schrieb:
> JoJoBa schrieb:
>> Das Problem ist tatsächlich so, dass Arduino beim
>> hochlaufen in der erster Sekunde an Ausgängen LOW hat !!(Praxis!!!)
>
>  Das kann nicht sein.
>  Vielleicht hat ein Arduino-Sketch das, aber AVRs (und somit auch 328P
>  der im Arduino werkelt), haben die Ports beim Einschalten IMMER als
>  Eingange definiert.
>  Also, nichts mit LOW.

Also bei meinem Board (Arduino Nano - Clone) sind alle Digitale Pins 
(auch die die nicht in der Software definiert / deklariert wurden) auf 
LOW.

Event. ist es ja bei anderen Boards anders.

von Oliver S. (oliverso)


Lesenswert?

Dann ist dein Board kaputt.

Zitat von https://www.arduino.cc/en/Tutorial/DigitalPins

"Arduino (Atmega) pins default to inputs, so they don't need to be 
explicitly declared as inputs with pinMode() when you're using them as 
inputs. Pins configured this way are said to be in a high-impedance 
state. "

Die IOs sind nach einem Reset hochohmige Inputs. Immer. Da mag ein 
Meßgerät dann 0 Volt anzeigen, es bleiben trotzdem hochohmige Inputs.

Oliver

von JoJoBa (Gast)


Lesenswert?

@oliverso

Ja RICHTIG!

ich habe es weiter oben falsch geschrieben!!!

es soll so richtig sein;

Der Z3-State ( hochohmig ) tritt auf, wenn der Pin nicht vom Programm 
definiert ist. Nach dem Einschalten des Arduino sind alle Digital-Pins 
hochohmig, bis sie vom Programm definiert werden.

DANKE oliverso!
MfG!

von Joachim B. (jar)


Lesenswert?

JoJoBa schrieb:
> Ich habe viele Relay-Boards, aber keines das nur 1x Relais hat.
>
> Bei deinem erkenne ich kein OPTOKOPPLER, nur einen TR zum schalten.
>
> Demnach will er bei LOW nicht schalten
> und bei HIGH schaltet er.
>
> Habe dazu ein Schaltplan gefunden.

im PI forum ist so eines aufgetaucht mit PNP bestückt, schaltet bei low 
und bei high gehts aus, wenn high 5V erreicht was der PI aber nicht 
schafft.

Ohne den Trasi durchzumessen würde ich ob NPN oder PNP keine Aussage 
treffen, ich tippe weiterhin auf PNP low aktiv damit die kompatibel zu 
den Optokoppler sind.

von JoJoBa (Gast)


Lesenswert?

@jar
...akla, Danke!!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.