Ich (Arduino-Neuling) plane gerade eine Schaltung von einigen Relais, die über den Arduino Uno gesteuern werden sollen.
Die Relais wiederrum sollen 12V für Magnetventile durchschalten.
Steuern möchte ich über die normalen Output-Pins des Arduinos.
Nun habe ich erst nachher gelesen, dass die Output Pins maximal 40 mA liefern können.
Mein Relais hat U=5V und p=0,2W, also I=40mA. Kann ich das nun ohne Transistor betreiben?
So richtig blicke ich da noch nicht durch.
Ich habe mal versucht meine Schaltung mit einem Taster und einem Relais zu skizzieren.
Das Relais soll eine LED am 12V Netz schalten - also Taster drücken, Relais schaltet durch und LED leuchtet.
Die LED wird später durch ein Magnetventil getauscht.
Meine Skizze habe ich angehangen.
Ist das so richtig?
Benötige ich für das Relais noch einen Widerstand? Oder eine Diode?
Hallo,
ja, du kannst das Relais mit einem Arduino Ausgang schalten. Du musst dir aber im klaren sein, dass du dich damit am Grenzwert der Spezifikation bewegst.
Zusätzlich musst du berücksichtigen, dass du in Summe mit mehreren Ausgängen nur 200mA treiben darfst. Geringe Streuung der Parameter der Relais könnten dazu führen, dass der Arduino beschädigt wird.
Ich würde dir empfehlen, einen Transistor für jedes Relais oder ein Relais Treiber IC einzusetzen.
Einen Vorwiderstand für das Relais benötigst du nicht, das Relais begrenzt den Strom durch seinen Innenwiderstand. Auf jeden Fall benötigst du aber eine Freilaufdiode parallel zum Relais.
Bis auf die fehlende Freilaufdiode ist die Skizze korrekt.
mit 'einigen' Relais kann das ganz schön grenzwertig werden, ich würde hier auf jeden Fall einen Treiber vorsehen, z.B. in Form eines ULN2803.
Dieses IC enthält 8 Darlingtontransistoren und auch die sowieso benötigten Freilaufdioden zum treiben von bis zu 8 Relais.
Also ohne Trasistor würde ich das auf keinen Fall machen. Das kann dir den Atmel kosten.
Ein Relais hat wenn es wieder stromlos gemacht wird eine Selbstinduktion die bis ca. dem 10-fachen der eigentlichen Spannung entsprechen kann. Mit 50V Grillst du den Arduino.
Daher würde ich dir empfehlen ihn nur mittels Transistor und zusätzlich mit einer Diode zwischen Transistor und Arduino schalten. Sonst kanns Probleme geben, auch wenn es eigentlich mit 40mA gerade noch in den Spezis sein könnte (wobei ich das auch ungerne so verwenden würde).
Ein weiterer Ausgangsstromgrenzwert ist nicht genannt. Bestimmte Pingruppen können nur 100 bzw 150mA Strom liefern. Genaueres unter http://www.atmel.com/Images/doc8161.pdf Seite 313/314 Fußnote 3 und 4 zu Tabelle 28.2 DC Characteristics.
Auch ich rate eine direkte Ansteuerung der Relais ab. Ersetze die Relais mit einem Transistor und steuere direkt die Elektroventile an.
Wieso willst du eigentlich mit einem Relais (Relais) ein Relais (Magnetventil) steuern? Vergiss das erste Relais, ersetze es durch einen BC327 und vergiss die antiparallele Freilaufdiode beim Magnetventil nicht... Das Relais bekommst du irgentwann anders bestimmt unter - ist nie schlecht, eins rumliegen zu haben.
Das Darlingtonarray ist ein bisschen zu oversized, für deinen Zweck - wenn du nur ein Magnetventil schalten möchtest zumindest.
Okay - ich hab die Relais nun rausgeschmissen und die Last direkt an den ULN2003 gehangen (siehe Anhang).
Die Magnetventile haben 12V und brauchen 450mA.
Das kann der ULN2003 ab oder? Im Datenblatt habe ich was von 500mA/Channel gelesen.
450 mA sind an mehreren Ausgängen gleichzeitig für den ULN2003 zuviel.
Nimm den ULN2068 der hat 4 Ausgänge und kann insgesamt 4x500mA gleichzeitig treiben.
Grüße Uwe