Mehrere RGB-LEDs anschließen und gleichzeitig eine minimale Anzahl von PWM-Pins auf einem Arduino verwenden?

Ich habe derzeit eine Anoden-RGB, die an die 11-, 10- und 9-PWM-Pins meines Arduino angeschlossen ist. Allerdings möchte ich meinem Projekt 3 weitere LEDs hinzufügen, aber ich möchte nicht unbedingt jeden einzelnen PWM-Pin belegen (ich möchte noch eine Abschirmung anbringen). Gibt es eine Möglichkeit für mich, alle 4 LEDs anzuschließen und trotzdem nur eine minimale Anzahl von Pins zu verwenden? Denken Sie daran, dass ich alle 12 Widerstände für die 4 LEDs verwenden möchte. Oh, und alle LEDs werden genau dasselbe tun (sie werden alle rot und alle blau usw.), wenn das hilft.

So sieht mein Board im Moment aus:

Geben Sie hier die Bildbeschreibung ein

Ich habe drei NTE123AP- Transistoren, die ich für dieses Projekt verwenden kann.

PS Ich habe die .fzz-Datei angehängt , damit es super einfach wäre, wenn einer von Ihnen das schematische Bild bearbeiten möchte. In der Tat wäre das besser, da ich neu darin bin, und es wäre einfacher zu folgen! :)

Individuelle Steuerung oder alle mit der gleichen Farbe (Alle Rot bei gleicher Helligkeit oder im Wesentlichen 12 einzelne LEDs?) Ersteres könnte nur mit Transistoren erfolgen, während letzteres ein Schieberegister oder einen i2c / spi-Expander oder einen LED-Treiber-IC erfordern würde.
Grundsätzlich möchte ich 4 RGB-LEDs und sie werden alle dasselbe tun. Zum Beispiel möchte ich Ton mit Licht synchronisieren. Wenn also Track 1 abgespielt wird, leuchten alle 4 LEDs rot, und wenn Track 2 abgespielt wird, leuchten sie alle lila, wenn Track 3 und sie blau leuchten usw. Hoffe, das hilft! Ich habe 12 Widerstände erwähnt, weil ich ähnlich wie in dem Bild, das ich gepostet habe, einen Widerstand für jeden LED-Pin haben möchte, weil ich die Helligkeit nicht opfern möchte. Ich hoffe, das hilft!

Antworten (2)

Ziemlich Einfach. Nur mit npn-Transistoren. Pro Farbkanal duplizieren.

Geben Sie hier die Bildbeschreibung ein

Ihr Transistor kann kontinuierlich bis zu 600 mA sinken. Bei 20 mA pro LED, 4 pro Kanal, sind das nur 80 mA. Das ist mehr als genug.

Stellen Sie jedoch sicher, dass Ihr Netzteil dies unterstützen kann. 80 * 3, das sind 240 mA allein auf den LEDs, ohne den Rest des Arduino, die Transistorbasis und alles andere, was Sie verwenden.

OP hat auch ein Fritzing-Diagramm der Antwort bereitgestellt:Geben Sie hier die Bildbeschreibung ein

@CloudyDays 3 Kanäle (ein Rot, ein Grün, ein Blau). 4 LEDs. Tut mir leid, ich verwende kein Fritzing, aber einfach, Battery Plus ist VCC, Arduino_PWM_PIN ist die gleiche, die Sie verwendet haben, und Battery - ist Gnd.
@CloudyDays In diesem Fall ist vcc 5v. Und diese Einstellung ist meistens richtig. Stellen Sie zunächst sicher, dass der Transistor mit der Basis- / Emitter- / Kollektor-Pinbelegung Ihrer Transistoren übereinstimmt, nicht alle verwenden die gleiche Pinbelegung. Und Sie haben alle vier LEDs von einem Widerstand (pro Farbe). Es könnte funktionieren, aber das ist nicht die beste Option. Aber grundsätzlich richtig. Was Fritzing angeht, denke ich immer noch, dass es ein gutes Werkzeug ist, genau wie jedes andere, aber benutze es einfach nicht selbst.
@Passerby, danke, nur um das zu verdeutlichen, ist es am besten, insgesamt 3 Widerstände für die 4 LEDs zu verwenden, oder sollte ich 12 verwenden (in diesem Szenario). Brauche ich auch nur 1 Transistor oder alle 3?
@CloudyDays Während 3 Widerstände funktionieren, funktioniert es nicht gut. 12 ist vorzuziehen. Und Sie brauchen alle drei Transistoren, einen für jede Farbe/Kanal. Andernfalls wären die roten, blauen und grünen Kanäle alle gleich, sodass Sie sie wie eine einzelne LED (weißlich) steuern würden.
@ Passant Oh, ich verstehe. Nur um sicherzugehen, dass ich es verstehe, wie ist das jetzt? PS Angenommen, ich stecke den Transistor versehentlich falsch herum (CBE statt EBC) was kann passieren? Danke für all deine Hilfe! Ich habe nur Probleme zu verstehen, was die Vorder- und Rückseite der Transistoren sind (auf der einen Seite flach und auf der anderen halbkreisförmig).
@CloudyDays Das funktioniert. Stellen Sie nur sicher, dass der Collector/Middle Pin ebenfalls angeschlossen ist (im Moment verbindet sich nichts damit). Was den Transistor betrifft, ist der flache Teil, in dem sich die Schrift befindet, normalerweise die "Vorderseite". Und wenn Sie es, wie Sie es getan haben, mit ECB verbunden hätten, hätten Sie die PWM ohne Last gegen Masse kurzschließen können. Möglicherweise der Arduino-Port durchgebrannt. Verbinden Sie es CBE (wie in Collector to Ground), na ja, nicht ganz sicher.
Also habe ich es endlich physikalisch angeschlossen, aber ich habe bemerkt, dass meine RGB-Farben sich komisch verhalten. Kann das an der Art der LEDs liegen? Ich habe Anoden-LEDs.
@CloudyDays Gemeinsame Anoden-LEDs in diesem Setup sind das Gegenteil Ihres ursprünglichen Setups. PWM-Logik hoch/1/Ein/5 V ist eingeschaltet, Logik niedrig/0/Aus/0 V ist ausgeschaltet. Bei Ihrem ursprünglichen Setup, bei dem die PWM-Pins als LED-Masse fungierten, war Logic High ausgeschaltet.
@CloudyDays lässt uns in diesem Chat sprechen: chat.stackexchange.com/rooms/8243/arduino-rgb-setup , wenn Sie weitere Hilfe benötigen, um zu vermeiden, dass die Kommentare verstopfen

Diese Diagramme/Bilder sind möglicherweise besser, um visuell zu sehen, was vor sich geht:

GEMEINSAME ANODE RGB mit TRANSISTOR

GEMEINSAME KATHODE RGB mit TRANSISTOR

Randnotiz

@Passerby: Woher hast du dieses schematische Bild in deinem Beitrag?

Willkommen bei EE.SE. Danke für das Posten der Schaltpläne. In der Regel werden Fragen an andere Benutzer als Kommentare und nicht als Antworten gepostet. Es braucht nicht viele Repräsentanten, um das Kommentarprivileg zu erhalten.
Tut mir leid, ich bin mir noch nicht sicher, wie es hier funktioniert. Aber das ist mein Bild, weshalb ich gefragt habe, ich kann keine Bilder bis 10 Wiederholungspunkte oder so posten.