Verdrahtung von RGB-LEDs

13

Ich habe mich gefragt, ob es möglich ist, 8 einzelne RGB- LEDs anzuschließen, ähnlich wie beim Adafruit-Streifen . Ich habe das Pumpkin Pi- Projekt gesehen und möchte eines bauen. Ich habe keine gelben oder roten LEDs, aber einen kleinen Vorrat an RGB-LEDs.

Ich weiß, für Arduino würde ich 270 Ohm Widerstände für RGB-Kathoden verwenden und jede Helligkeit durch eine Skala von 0bis steuern 255.

Gibt es eine Möglichkeit, dies auf dem Himbeer-Pi zu tun?


Aktualisieren


Also habe ich mich ein bisschen mehr damit beschäftigt. Ich bin auf die Idee gekommen, das zu benutzenTLC5940 LED-Treiber zu verwenden.

Jetzt bitte ich wieder um Hilfe. Ich habe mir eine lange Frage ausgedacht, die dieses Problem letztendlich löst, und die besser ist als ein Haufen, der über den gesamten Stapelaustausch verteilt ist. Nun kommt der Verdrahtungsteil. Ich benutze ein Tutorial für die Arduino-Verkabelung als Start, da ich über meinem Kopf bin. Ich beziehe mich auch auf das Datenblatt . Nach dem Diagramm 27 or VPRGverwirrt mich Stift . Das Arduino-Diagramm hat es geerdet, also erde ich. . . Wie verbinde ich das richtig mit dem pi? Ich schätze auch, dass ich auch Widerstände brauche ...

Es tut mir leid, wenn das wirklich dumm klingt, aber ich bin ein wahrer Anfänger in diesem Zeug. Sie müssen lernen zu kriechen, bevor Sie laufen können.

Was muss ich tun, um diesen Schaltplan zu korrigieren ( fritzing )?

Die fzz-Datei für die Verkabelung kann hier von Google heruntergeladen werden . TLC5940

Bildbeschreibung hier eingeben


Update 2 - nach Kommentar


Unter Berücksichtigung einiger Antworten und Kommentare wäre dies dann der Schaltplan? 330 Ohm zur Anode. 2 kOhm zum Pin 20. Wie kommen die Eingänge vom Pi zum Chip? Bildbeschreibung hier eingeben

atrueresistance
quelle
Ooohhh der Kürbis pi =: 0
Piotr Kula
Würdest du ein paar Dinge klarstellen? Möchten Sie alle roten, grünen und blauen LEDs von 8 RGB-LEDs ansteuern (die 24 Ausgänge belegen, also 8 mehr als die 16, die von einem TLC5940 bereitgestellt werden)? Welche RGB-LEDs verwenden Sie? Wir müssen wissen, ob es sich um eine gemeinsame Anode oder eine gemeinsame Kathode handelt (Ihre Verkabelung sieht aus wie eine gemeinsame Kathode, die mit einem TLC5940, der nur Strom aufnehmen kann, nicht funktioniert. Die gemeinsame Kathode benötigt einen anderen Chip). Außerdem schaltet sich Blau möglicherweise nicht mit 3,3 V ein und benötigt daher 5 V. Muss es sich um eine Durchgangselektronik (z. B. DIP) handeln und nicht um eine Oberflächenmontage. Interessiert es Sie, wenn es 3 Chips anstelle von einem verwendet?
gbulmer
@ gbulmer Entschuldigung. Ich habe nicht das Paket, in dem die LEDs eingegangen sind, aber ich denke, Sie sind auf Common Cathode richtig, was das Anzünden in Arduino angeht. Ich habe ein HIGH geschrieben. Ich werde heute Abend eine Common Anode von Radioshack abholen. Ich habe 5 TLC5940-Chips und es ist mir egal, ob ich sie alle benutze. Der Grund, warum ich mich für DIP entscheide, ist die Verwendung eines Steckbretts (Baby Steps). Nachdem ich es zum Laufen gebracht habe, wechsle ich zur Oberflächenmontage.
atrueresistance

Antworten:

4

Ich sehe zwei Dinge, die in dieser Frage angesprochen werden sollten:

  1. Anschließen und Kommunizieren mit dem TLC5940

  2. So schließen Sie LEDs an den TLC5940 an .

Für den ersten Teil müssen Sie ihn an die i2c-Pins des P1-Headers des Raspberry Pi anschließen (die Pins 3 (Daten) und 5 (Uhr) sind). Sie können dann Pin 1 (3,3 V) für den VCC des TLC5940 verwenden . Es wird eine Eingangsspannung von 3 V bis 5,5 V gemäß Datenblatt empfohlen. Sie möchten auch einen Erdungsstift von P1 (z. B. Stift 5) mit der GND des TLC5940 verbinden . Außerdem benötigen Sie einen zusätzlichen GPIO (z. B. Pin 7), um eine Verbindung zum XLAT-Signal des TLC5940 herzustellen und den Wert des Schieberegisters zu speichern .

Dann werden Sie das Pi für i2c Kommunikation einrichten müssen: unter der Annahme raspbian, Entfernen i2c-bcm2708von /etc/modprobe.d/raspi-blacklist.conf, laden Sie es und i2c-devund sollen Sie /dev/i2c-0und /dev/i2c-1( i2c-1ist das, was Sie für das Modell B Rev. 2 Pis verwenden müssen).

Schließlich müssen Sie eine i2c-Transaktion verwenden, um den Wert des internen Schieberegisters festzulegen und dann die XLAT zu signalisieren (wenn Sie Pin 7 verwenden, ist dies GPIO 4).

Ich habe auch den GSCLK-Pin übersehen. Sie müssen einen Takteingang bereitstellen, damit der interne Zähler tatsächlich inkrementiert wird. Dies kann über eine andere GPIO-Leitung erfolgen, wenn diese korrekt konfiguriert ist. Ich glaube auch nicht, dass die 3,3-V-Schiene für diese Anwendung einen ausreichenden Strom liefert ( max . 50 mA ). Wenn Sie auf die 5 V-Schiene umsteigen, können Sie bis zu ~ 300 mA ziehen umsteigen , sollten jedoch für i2c (und den GSCLK) eine 5-V-Logik verwenden, die mehr Komponenten erfordert.

Für den zweiten Teil hörte es sich so an, als hättest du das von einem früheren Arduino-Projekt gehandhabt, es sei denn, ich habe falsch verstanden?

Opello
quelle
6

Ja. Sie würden die GPIO-Pins im PWM-Modus verwenden, um jede Helligkeitsskala zu steuern. Ein Beispiel für die Verkabelung von wiring.org.co . Das GPIO Utility & Guides von Gordons Project ist ein weiterer Ausgangspunkt

Bildbeschreibung hier eingeben

Bearbeiten

Wie Alex Chamberlain betonte, unterstützt nur ein GPIO-Pin PWM. Sie können Software verwenden, um PWM an anderen GPIO-Pins zu erzielen. Infos & Beispiele zu C & Python .

Dies ist möglicherweise zu viel des Guten, da für das Pumpkin Pi-Projekt nur orangefarbenes Licht erforderlich ist. Wenn Sie einen Vorrat an RGBs haben und Zeit zum Experimentieren haben, können Sie eine einzelne LED-Farbe auf dem RGB beleuchten und mit anderen mischen, um Tertiärfarben zu erzeugen. Ein Verhältnis von 2 Teilen Rot zu 1 Teil Grün wird als Orange angezeigt. Wenn Sie die Hälfte der roten LEDs umschalten, wird die Illusion erzeugt, dass Orange zu Gelb flackert. Aber das ist eine Farbtheorie ; was ich nicht ausprobiert habe.

Emcconville
quelle
1
Gibt es nicht nur einen PWM-Ausgang?
Alex Chamberlain
Gute Frage. eLinux behauptet, dass alle GPIO-Pins für PWM neu konfiguriert werden können. Allgemeine Verdrahtungsfunktionen geben jedoch an, dass nur GPIO-1 (Pin 18) PWM unterstützt. Abschnitt 6.2 Alternative Funktionszuweisungen des BCM2835 listet alle PWM-Pins auf; Davon ist nur eine auf dem GPIO des PIS vorhanden.
Emcconville
Der eLinux-Artikel ist nur schlecht geschrieben. es ist etwas besser unten.
Alex Chamberlain
1
Die GPIO-Pins können wirklich nicht genug Strom liefern oder aufnehmen, um LEDs direkt
anzusteuern
1

So etwas wie ein TLC5940 ist eine gute Möglichkeit, mehrere PWM-LEDs anzusteuern

Schauen Sie sich auch den TCA6507 in der Appnote "Programming fun lights" an, obwohl er in DIP nicht verfügbar ist

Bearbeiten: Es ist in Ordnung, den VPRG-Pin des TLC5940 mit Masse zu verbinden. Dies bedeutet einfach, dass Sie die "Punktkorrektur" nicht verwenden können, um Schwankungen Ihrer LEDs auszugleichen. Wenn Sie eine Reihe von LEDs haben und die nächste Komplexitätsstufe erreichen möchten, können Sie die Punktkorrektur verwenden, um sie gleichmäßig zum Leuchten zu bringen.

Der 2k-Widerstand an Pin 20 wird benötigt, um den Ausgangsstrom einzustellen.

I OUT = 3,96 * R IREF
Normale LEDs haben normalerweise 20 mA, sodass die Formel 2k für den Widerstand ergibt

John La Rooy
quelle
0

Dies ist eine sehr hilfreiche Beschreibung der Verwendung des TLC5940 mit einem AVR: https://sites.google.com/site/artcfox/demystifying-the-tlc5940

Es ist sehr hilfreich, um zu lernen, wie man Code für den TLC5940 schreibt.

Die erste Version des Beispielcodes ist ziemlich allgemein gehalten. Ich arbeite daran, alle #define-Anweisungen und Low-Level-Funktionen in etwas zu konvertieren, das auf dem Raspberry Pi funktioniert.

Jfenwick
quelle