Forum: Mikrocontroller und Digitale Elektronik mehrere LEDs am Arduino nano PWM


von Kev (kev408)


Lesenswert?

Hallo,

ich möchte gerne jeweils 15 LEDs an den PWM Pins 3, 5, 6 und 9 zu 
betreiben. Die LEDs sollen Buchstaben darstellen. Ist es am besten die 
LEDs parallel oder in reihe zu betreiben? Wenn ich das richtig gelesen 
habe kann der Arduino 50mA max an einem Ausgang rausgeben?

Viele Grüße

von Falk B. (falk)


Lesenswert?

Siehe LED-Matrix.

von Steve van de Grens (roehrmond)


Lesenswert?

> Wenn ich das richtig gelesen habe kann der Arduino 50mA max
> an einem Ausgang rausgeben?

Die "Absolute maximum ratings" sagen 40 mA. Aber dann hast du schon 
einen erheblichen Spannungsabfall im Mikrocontroller, falls er überhaupt 
40 mA schafft. Gehe mal eher von nutzbaren 25 mA aus.

Das ist für 15 LEDs parallel recht wenig, kann aber je nach 
Anwendungsfall durchaus reichen. Das musst du selbst beurteilen.

Du kannst die Ausgänge mit einem NPN Transistor (BC337-40) oder einem 
Logic-Level MOSFET (IRLML6344, IRF3705N) verstärken, um sowohl mehr 
Strom als auch mehr Spannung zu schalten.

von Falk B. (falk)


Lesenswert?

Kev schrieb:
> ich möchte gerne jeweils 15 LEDs an den PWM Pins 3, 5, 6 und 9 zu
> betreiben. Die LEDs sollen Buchstaben darstellen.

Ok, was soll GENAU passieren? Sollen die jeweils 15 LEDs alle 
gleichzeitig mit gleichem Strom leuchten und gemeinsam in der Helligkeit 
per PWM gesteuert werden? Oder sollen die alle einzeln steuerbar 
sein?
Für den ersten Fall reicht in der Tat ein einfacher Transistor und eine 
Parallel/Reihenschaltung der 15 LEDs, z.B. 5 in Reihe plus 
Vorwiderstand, das Ganze drei mal parallel, gespeist mit 24V.

von Wolfgang (Gast)


Lesenswert?

Kev schrieb:
> Ist es am besten die
> LEDs parallel oder in reihe zu betreiben? Wenn ich das richtig gelesen
> habe kann der Arduino 50mA max an einem Ausgang rausgeben?

Auch der Gesamtstrom auf der Versorgung des ATmega328 ist limitiert.
Am Ausgang liefert der µC maximal 5V. Das schränkt die Möglichkeit der 
Reihenschaltung ein, weil sich dabei die Flussspannungen der LEDs 
addieren.

von Martin B. (hobbyprog)


Lesenswert?

Hallo Kev

eventuell hilft das weiter.

Ich schalte LEDs  über WS2811 Treiber.
Habe das für die Modellbahn und DCC Protokoll gemacht. Geht aber auch in 
meinem Fall über den USB. Ist zum Konfigurieren und Testen gedacht.
Es können mit jeweils einer Adresse mehre LEDs geschaltet werden. Das 
mach ich mit einer Tabelle.
Ich habe die Anwendung für den NANO in Assembler geschrieben, weil auch 
noch das DCC Protokoll verarbeitet werden muss.

Es gibt die Neopixel Bibliothek mit Anwendungsbeispielen  für die 
Arduino IDE, da kannst Du das selber speziell für deine Anwendung 
realisieren.
Du brachst nur ein Pin z.B. an einem NANO,  als WS2811 Datenbus.  Die 
LEDs haben eine Nummer 1 bis 255 , also mehr als genug.
Die LEDs werden ohne Widerstand angeschlossen und die Leuchtstärke ist 
über die Software einstellbar.  0 bis 18.5mA

Hier nur als Anregung, die Möglichkeiten in meiner MoBa  Anwendung.

https://bluethners.de/DCCProjekt/Zentrale/WS_X84.html

Viel Spaß Martin

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Kev schrieb:
> Ist es am besten die LEDs parallel oder in reihe zu betreiben? Wenn ich
> das richtig gelesen habe kann der Arduino 50mA max an einem Ausgang
> rausgeben?

Die LED passen gar nicht direkt anden Arduino.

In Reihe wäre die Spannung zu hoch, parallel ist der Strom zu hoch.

Du brauchst so oder so pro Ausgang einen Transistor als 
Schaltverstärker.

Und dann solltest du dich nach dem Netzteil richten: hast du nur 5V, 
kann halt nur 1 LED in Reihe mit ihrem Vorwiderstand dran, und davon so 
viele parallel wie der Buchstabe braucht.

Hast du 12V, gehen 3 in Reihe.

Ein Ardunioausgang liefert übrigens 20mA, bei 50mA hat er das Recht, 
kaputt zu gehen.

von Martin B. (hobbyprog)


Lesenswert?

Hallo.
mit 5 Volt kann man auch bis zu 3 LEDs in reihe Schalten. Das ist aber 
abhängig von der LED Farbe bzw Flussspannung,
Die Strommenge mA ist mit eine oder drei LEDs gleich. Bei einer LED wird 
nur mehr im Widerstand verbraten.
Vermutlich geht mit eine LED sogar noch mehr unnütz als Wärme verloren.

Ich bin aber kein Elektriker daher ??? Ich denke da wird sich noch 
jemand zu dem Thema melden, der mehr darüber weiß.

Falls die Flussspannung z. B.  1,6 V ist,  gehen 3 LEDs. 3 X 1,6 = 4,8 
Volt.
Der Widerstand errechnet sich dann aus der Restspannung  = 0,2 Volt
Daher  0,2V / 0,02Ampere  = 10 Ohm  oder 20 Ohm bei 10mA

Du musst daher die Flussspannung kennen. Rote LEDs haben eine geringe 
als z.B. grüne LEDs
Du kannst dich nur auf dem Datenblatt verlassen oder einfach mal testen.

Rote LED eventuell mit 3
Grüne LEDs geht nur mit 2
Blaue LED geht nur mit 1

Mit 12 Volt  z, B,  grüne LED   12 / 2,2 =  5 LEDs

Siehe auch hier
https://www.mikrocontroller.net/articles/LED

Viele Grüße Martin

: Bearbeitet durch User
von J. S. (Firma: K. - (Web Technology Provider)) (juergenffm) Benutzerseite


Lesenswert?

Steve van de Grens schrieb:
> Die "Absolute maximum ratings" sagen 40 mA. Aber dann hast du schon
> einen erheblichen Spannungsabfall im Mikrocontroller, falls er überhaupt
> 40 mA schafft. Gehe mal eher von nutzbaren 25 mA aus.

Ich würde das lassen. Die MCU hat bei ausreichend Beschäftigung genug zu 
tun, um in einem verbauten Zustand schön warm zu werden. Ich sehe das 
bei meiner Bahnsteuerung. Im Keller 20°, im Kasten schon 35°, im 
CPU-Gehäuse fast 50° und die MCUs schon oberhalb 60°.

Nimm eine Schieberegisterkette. Die Bausteine HCT haben TTL Ausgänge und 
können ein bischen was treiben. Ich habe mein gesamte Modellbauanlage 
mit LEDs bestückt. Manche Ausgänge treiben 2 LED-Stränge zu 10mA, die 
meisten jeweils einen mit 20mA und die 50mA LED-Stränge werden mit 2 
parallelen Ausgängen gefahren. Ein LED-Strang besteht aus 1-2 LEDs. 
Vorwiderstände bei gemeinsamen Ausgängen parallel.

von Εrnst B. (ernst)


Lesenswert?

Martin B. schrieb:
> Falls die Flussspannung z. B.  1,6 V ist,  gehen 3 LEDs. 3 X 1,6 = 4,8
> Volt.
> Der Widerstand errechnet sich dann aus der Restspannung  = 0,2 Volt
> Daher  0,2V / 0,02Ampere  = 10 Ohm  oder 20 Ohm bei 10mA

das Problem: Die Flussspannung variiert von LED zu LED und ändert sich 
auch mit der Temperatur.

dann hast du einen Flussspannungs-Bereich von z.B. 1.4V bis 1.8V. Wenn 
du da deine für 1.6V berechneten 10 Ohm davor hängst, kann es sein, dass 
die LEDs entweder nur schwach glimmen oder kaputtgehen. Deshalb bei der 
Berechnung die Minimal- und Maximalwerte berücksichtigen, und wenn dabei 
rauskommt, dass bei drei LEDs in Reihe kein sicherer Betrieb an 5V 
möglich ist, dann ist das eben so.

von Martin B. (hobbyprog)


Lesenswert?

Hallo Ernst,

Du hast natürlich recht. aber wenn man 10mA oder weniger als Berechnung 
nimmt und 0,4V Reserve nimmt,  ist man immer auf der sicheren Seite. Man 
sollte das vorab einfach mal testen. Falls man den Arduino zum Testen 
über den USB Versorgt hat man sowieso noch ca. 0,2V Spannungsabfall. 
Daher hat man da später noch Reserven bei 5 Volt.

Ich würde das aber über WS2811 (Neopixel) machen. Du kannst damit 
praktisch
Hunderte LEDs steuern. Ich steuer 84 LED über eine Arduino-Pin.
oder 30 LEDs zusätzlich mit einem DCC Servo-Schaltdecoder.

https://bluethners.de/DCCProjekt/Zentrale/DCC_DecoderPlus.html

DCC ist eine Protokoll um Modellbahnen digital zu steuern.

Ohne DCC Protokoll sind bis zu 255 LEDs kein Problem, und die LEDs 
brauchen keine Widerstände. Ich empfehle aber nicht mehr als 2 bis max. 
4 Ampere als Versorgung. Daher  bei den  möglichen 18.5mA bei voller 
Leuchtkraft ca. 200 LEDs. Die Leuchtkraft kann in 255 Stufen 0 bis 255 
über eine Software bestimmt werden.

Die WS2811 Knoten Plättchen für jeweils 3 LEDs bekommt man 100 Stück ab 
14€

Ich habe mir selber welche machen lassen, weil die Handhabung damit 
einfacher ist.

https://bluethners.de/DCCProjekt/Zentrale/WS28System.html#WS2811Loeten

Es können auch RGB LEDs mit eingebauten WS2811 /12 verwendet werden.

Hier ein Video mit ein UNO. Ich empfehle das mit 5 Volt zu machen. Weil 
da kann man schnell mal 5/12 V  vertauschen.

https://www.youtube.com/watch?v=6OO2hEqSF0Y

Der Arduino NANO/UNO arbeitet mit 5 Volt.


Viel Spaß Martin

: Bearbeitet durch User
von Martin B. (hobbyprog)


Lesenswert?

Hallo Kev

Um auf die eigentliche Frage Bezug zu nehmen.

Die LEDs sollen Buchstaben darstellen.

Wie sollen die Buchstaben, gesteuert werden. Sind die statisch als feste 
Anzeige, oder sollen die Wechsel bzw. je nach Begebenheit gesteuert 
werden.

von Εrnst B. (ernst)


Angehängte Dateien:

Lesenswert?

Martin B. schrieb:
> Die LEDs sollen Buchstaben darstellen.

Dann eher sowas:

https://www.ebay.de/itm/255283289436

Oder Sowas:

https://www.ebay.de/itm/125318103051

Klar ist es gut wenn man die Grundlagen kennt, aber es ist keine Schande 
auch mal was Fertiges zu verwenden...

von Martin B. (hobbyprog)


Lesenswert?

Hallo Ernst,

ich verwende auch gerne fertige Module.

Für die WS2812 gibt es auch solche Platinen.

Nur als Beispiel

https://www.ebay.de/itm/272550097790?hash=item3f7540737e:g:ZIMAAOSw2xRYmxc7

Du Brauchst nur 5V Plus, GND und ein Arduinopin als D IN für den WS2812 
Bus. Du kanst auch mehre von den Platinen in Reihe schalten und über den 
einem Pin (Ws2812 Bus) ansteuern. Die jeweilen angesteuertn RGB LEDs 
behalten den aktuellen Zustand, bis sie neue Daten erhalten.

Für die Ansteuerung gibt es viel Beispiele in der Arduino IDE. Die 
kannst Du dann für deine Anwendung anpassen.
In der ArduinoIDE bei der Bibliothekenverwaltung  mit Neopixel suchen.
Da sind dann schon einige zur Auswahl
z.B.
Adafruit_NeoMatrix

Ich arbeite nicht damit, aber es gibt genug informationen im Netz 
darüber,


Vorteile:

Fließender Farbwechsel

Dimmen

Grafische Animationen.

Der Arduino verbraucht nur wenige mA .


Nachteil:

Die Programmierung ist etwas aufwendiger, aber dank fertiger 
Bibliotheken  auf für Anfänger machbar.


 Aber das ist natürlich nur eine Möglichkeit von vielen.

: Bearbeitet durch User
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.