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 0
bis 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 VPRG
verwirrt 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 .
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?
Antworten:
Ich sehe zwei Dinge, die in dieser Frage angesprochen werden sollten:
Anschließen und Kommunizieren mit dem TLC5940
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-bcm2708
von/etc/modprobe.d/raspi-blacklist.conf
, laden Sie es undi2c-dev
und sollen Sie/dev/i2c-0
und/dev/i2c-1
(i2c-1
ist 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?
quelle
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
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.
quelle
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.
Normale LEDs haben normalerweise 20 mA, sodass die Formel 2k für den Widerstand ergibtquelle
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.
quelle