Arduino Mehrere LEDs mit weniger pins als sonst?
Hi
Ich bin ein Arduino Anfänger und bin an einem Projekt bei dem ich mehrere pins benötige. Jetzt weiss ich nicht ob es für alle meine LEDs von den Pins her reicht. Gibt es ein Teilchen oder eine Möglichkeit mehrere LEDs über einen oder zwei Pins anzusteuern?
(Es sind eigentlich RGB LEDs die per betätigen verschiedener Knöpfe die Farbe ändern sollen)
Lg
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...
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...
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.
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.
Ein Schieberegister wäre vielleicht eine Lösung für dich:
https://hartmut-waller.info/arduinoblog/leds-schieberegister/
Eventuell käme auch ein I2C-Port-Expander in Frage:
https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/port-expander-mcp23017-teil-1
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)