Steuern vieler LEDs mit wenigen GPIO-Pins

12

Ich habe meine Hardware "Hallo Welt" mit dieser Anleitung erfolgreich fertiggestellt:

http://www.raspberrypi-spy.co.uk/2012/06/control-led-using-gpio-output-pin/

Jetzt möchte ich zu größeren und helleren Dingen übergehen, also zu individuelleren LEDs! Natürlich besteht der nächste Schritt darin, die Spannungsquelle vom Raspberry Pi zu entfernen und weitere LEDs hinzuzufügen, aber irgendwann werden mir die GPIO-Pins ausgehen. Ich denke also, ich muss jetzt eine Schaltung steuern, die es irgendwie weiß , basierend auf GPIO "codierten Signalen", welche LEDs ein- und ausgeschaltet werden sollen. Nach welchen Schaltungsbeispielen sollte ich suchen? Und vor allem gegenüber dem Raspberry Pi: Könnte er oder rpi.gpio Probleme verursachen, vielleicht in Bezug auf das Signal-Timing?

SkyNT
quelle
Durch Muliplexing wird die Anzahl der zu verwendenden GPIOs in Verbindung mit Persitance of Vision radikal reduziert, indem PWM verwendet wird, um GPIOs weiter zu reduzieren oder große Arrays mit minimalem GPIO zu erstellen. Dies wurde hier bereits beantwortet.
Piotr Kula

Antworten:

13

Was Sie in diesem Fall suchen, ist eine LED-Matrix . Sie können diese Matrix über die GPIO-Pins steuern, dies begrenzt jedoch die Anzahl der LEDs, die Sie anschließen können (die Größe der Matrix), und sie zieht möglicherweise zu viel Strom, wenn Sie nicht vorsichtig sind.

Eine bessere Möglichkeit besteht darin, eine LED-Matrix mit einem oder mehreren I2C-E / A-Extendern an den I2C-Bus anzuschließen. Auf diese Weise können Sie eine Matrix mit großer Größe erstellen (64 LEDs können beispielsweise mit EINEM 16-Bit-E / A-Extender erstellt werden). Ein weiterer Grund für die Verwendung dieser E / A-Extender besteht darin, dass sie etwas robuster sind, etwas mehr Strom liefern und Ihre Haupt-CPU nicht gefährden.

Auf dieser Site werden diese E / A-Extender mehrmals besprochen, sodass Sie Informationen zu diesen recht einfach finden sollten. Dieser Link enthält einige Informationen zu diesen Extendern und einer Matrix (wird zwar für die Eingabe verwendet, aber im Grunde ist es die gleiche Idee, aber Sie verwenden die Matrix nicht zum Scannen, sondern zum Steuern der LEDs.)

Die einzige zusätzliche Voraussetzung für eine reibungslos funktionierende Matrix ist, dass Sie die Matrix nicht größer machen müssen, als das RPi in der Lage ist, jede einzelne LED mindestens 20 Mal pro Sekunde zu aktualisieren im ersten Link (Absatz "Multiplexing und Persistenz des Sehens").

Ikku
quelle
Das ist sehr interessant. Danke für das Lesen! Ich könnte dies in kleinem Maßstab mit den GPIO-Pins versuchen, bevor ich bereit bin, auf Extender umzusteigen. Ich habe einige Tests mit den GPIO-Pins durchgeführt und bisher konnte ich zufriedenstellendes Multiplexing erzielen. Ich mache mir keine Sorgen um den Strom, da ich den Pi nur zum Schalten eines externen Stroms verwenden werde. Wird diese Skala gut? Wahrscheinlich nicht, aber ich bin sowieso meistens für den Unterricht hier!
SkyNT
3

Ich habe den I²C-Port-Expander MCP23017 verwendet , um so etwas zu tun. Folgen Sie diesem Link , um einen Beispielcode für das Himbeer-Pi zu finden. Sie können 16 LEDs pro Chip und 8 Chips ansteuern, ohne dass ein Multiplexing erforderlich ist.

John La Rooy
quelle