Arduino Mehrere LEDs mit weniger pins als sonst?

3 Antworten

Ein Arduino-Pin kann nominal 20mA, max 40mA liefern. Das reicht gerade mal für eine LED aus. Um mehrere am gleichen Bein anzusteuern müsstest Du entweder ein Darlingtonarray, oder einen Transistor/Mosfet je Ausgang einsetzen. Die musst Du aber auch passend beschalten und berechnen...

Ausnahme wären z.B. w2812b-LEDs, welche eine feste Spannungsversorgung bekommen und per Protokoll angesteuert werden. Da kannst Du theoretisch auch 100Stk mit einem Pin ansteuern, solange die getrennte Spannungsversorgung für die LEDs passt...

Winningfighter 
Fragesteller
 04.03.2023, 15:27

Aber kann ich z.B. 3 RGB leds mit 3 Pins anschliessen? (Ein Pin für alle 3 Red, einen für alle 3 Green und einen für alle 3 Blue)

0
RareDevil  04.03.2023, 16:35
@Winningfighter

Ich zittiere gerne noch mal meine ersten zwei sätze:

Ein Arduino-Pin kann nominal 20mA, max 40mA liefern. Das reicht gerade mal für eine LED aus.

Wenn Du drei x rot an einen Pin hängst, sind das drei LEDs mit mind 60mA Last. Also zu viel... Jede Farbe je RGB-LED zählt als eine LED. Eine RGB sind also schon drei LEDs... drei davon sind 9 LEDs...

1
RareDevil  04.03.2023, 16:42
@RareDevil

Ich gehe einfach davon aus, dass die roten, grünen und blauen jeweils zusammen laufen sollen. Also je Farbe nur eine Ansteuerung. Das wären dann drei Ausgangspins plus die Zusatzschaltung je Farbe. Selbst bei den angesprochenen Multiplexer (Portextender) brauchst Du noch mind zwei Kommunikationspins und daran hast Du auch wieder je Farbe einen Ausgang. Also letztlich das gleiche Problem. Man könnte noch eine Matrixsteuerung machen, aber das wird noch aufwendiger. Dann könntest Du aber jede einzelne LED-Farbe je RGB einzeln ansteuern. Abwer das wird programmiertechnisch umfangreich und schaltungstechnisch auch. Dann wären w2812b wirklich die bessere Lösung. Die lassen sich pber die Neopixel-Bibliothek sehr einfach ansteuern. Braucht nur einen Datenpin für beliebig viele LEDs.

1

Das Zauberwort heisst Port-Extender. Die gibt es als breakout-Boards z.B. bei Reichelt elektronik. Dabei wird von Raspberry oder Arduino über einen I2C-Bus die Information an den Port extender übertragen, welcher der Ausgänge ein oder aus sein sollen.

Durch die Adressierungsmöglichkeit können auch mehrere Port extender an einen I2C-bus angeschlossen werden, so daß Du locker 20-30 Ausgänge haben kannst.

Um die entsprechenden Ströme tragen zu können, benötigst Du ggf. noch einen Leistungstreiber.