Arduino Port überlastet - So Abhilfe?

Hallo ihr,

ich brauche nochmal eure Hilfe. An meinem Arduino steht nur noch ein einziger Port zur Verfügung. Wird dieser geschaltet, sollen ein Relais (hier symbolisiert durch eine rote LED) und eine Blaue LED mit Spannung versorgt werden. Das Relais benötigt eine Spulenspannung von 12V (hier symbolisiert durch Batterie-Pack) und wird deshalb über einen NPN Transistor geschaltet.

Aktuelles Problem:
Das Relais zieht an, aber die LED leuchtet nicht. An der LED liegen lediglich 0,8V an.

Aktueller Aufbau:

Aktueller Code: (beispielhaft)

int a = 0;

void setup() {
}

void loop() {
digitalWrite(8, LOW);
if (a==1) {
digitalWrite(8, HIGH);
}

}

Neude Idee:
Ich habe überlegt, den Port dauerhaft auf HIGH zu schalten und nur beim Eintreten des Ereignisses auf LOW zu schalten. Dann könnte ich über einen PNP Transistor genügend Strom für den NPN Transistor und die blaue LED zur Verfügung stellen.

Neuer Aufbau:

Neuer Code:

int a = 0;

void setup() {
}

void loop() {
digitalWrite(8, HIGH);
if (a==1) {
digitalWrite(8, LOW);
}

}

Frage:
Klappt das so, wie ich mir das vorstelle? Und gibt es vielleicht eine elegantere Möglichkeit? (Das Relais hat einen Spulenstrom von 20 mA).

Hallo,

machst Du das alles komplett ohne irgendwelche Vorwiderstände? Dann hättest Du am Arduino und an der Batterie quasi Kurzschlüsse. Wodurch die Spannung zusammenbricht.

Nochwas. Auch wenn jeder Port erstmal max. 40mA verkraftet, gibt es immer noch einen maximalen Strom aller Ports zusammen. Siehe Datenblatt vom Atmega328P.

Hi Doc,

nein, vor der blauen LED ist ein Vorwiderstand, den habe ich nur nicht eingezeichnet. Wieso habe ich an der Batterie Kurzschlüsse? Die Batterie liefert 12V und ist nur an der Spule des Relais angeschlossen und der Stromkreis wird durch den NPN Transistor unterbrochen bzw. geschaltet.

Wegen des maximalen Stroms aller Ports: Deshalb möchte ich ja über Transistoren gehen.

EDIT:
UPS! Ganz vergessen! Vor den Transistoren sind natürlich Widerstände! 1kOhm jeweils vor der Basis.

An der LED liegen lediglich 0,8V an.

Da könnte Basis-Emitter eines Transistors parallel liegen.

Mach doch mal ein Bild, das der Realität entspricht. Mit Relais-Spule und Widerständen.
(lieber mit Papier und Bleistift als mit fritzing)

Hallo,

das allgemeine Problem ist, wir können nur das lesen was da steht oder gemalt ist. Deshalb die Frage. Wir wissen nicht was irgendwer als selbstverständlich für sich vorraussetzt und wegläßt. Dadurch kommt es zu Missverständnissen. Mal einen richtigen Schaltplan und den gucken wir uns an. Mit Angabe der verwendeten Transistoren und usw.

Warum machst du es so umständlich. Besorg dir einen Mosfet für Logiclevel z.B. nen IRL540N und dann klebste da das Gate an den Arduino und Source an Masse. Der Pluspol von deiner Quelle (Batterie) kommt dann an den Verbraucher und der Drain vom Mosfet bildet die Masse für deinen Verbraucher.

Funktioniert wunderbar ohne irgendwelche Vorwiderstände (also keine für den Mosfet selbst, wenn dein Verbraucher welche braucht, müssen die natürlich mit rein). Wenn du auf Nummer Sicher gehen willst, dann ziehst du das Gate noch mit nem Widerstand auf Masse.

Vorteil an der Geschichte: Der Mosfet schaltet sicher komplett durch und er zieht vom Arduino keinen Strom.

Hallo,

na so simpel ist das mit den Mosfets auch nicht. Wenn die Gateleitung zu lang ist, brauchste den Pulldown von Gate zu Masse direkt am Mosfet. Und im Schaltmoment können am Gate auch zu große Ströme auftreten, je nach Gate Kapazität und Schaltfrequenz. Sodass man hier üblich auch sicherheitshalber einen begrenzenden Widerstand einbaut. Wären dann Minimum 130 Ohm. Was man sich spart ist die Berechnung mit dem Verstärkungsfaktor. Nur im TO220 GEhäuse sind die auch recht groß. Im TO92 kenne ich keinen Mosfet. Der Rest ist SMD.

Für kleine Ströme gibt es welche in DIP4. IRLD024

Für kleine Ströme bis 100 mA sind NPN Transistoren im TO92 Gehäuse immer noch Standard, im Steckbrett und auf der Lochraster-Platine.

Ab 1A sind MOSFETs besser, dazwischen können wir gerne diskutieren oder individuelle Vorlieben pflegen :wink:
[Nachtrag:] auch ein 2N7000 schaltet kleine Ströme bei 4.5V VGS

Bei Ic=100 mA braucht man sich auch nicht um den Verstärkungsfaktor zu kümmern :wink:

Ib = 10 mA ist ein prima Kompromiss zwischen Arduino-Pin-Belastung und sicherer Sättigung des Transistors.