Miniatur-Ampel mit Raspberry Pi: Verkabelung vieler LEDs


8

Hintergrund:

Ich bin ein auf Verkehrssteuerungsgeräte spezialisierter Bauingenieur und habe ein kleines Hobbyprojekt, um ein maßstabsgetreues Ampelsystem zu bauen. Ich kann die Ampelmusterprogrammierung mithilfe eines Raspberry Pi selbst verwalten und steuern (und dies gibt mir die Möglichkeit, eine dynamische und programmierte Steuerung zu implementieren und eine Schnittstelle mit einem ernsthaften Verkehrssteuerungsschema und möglicherweise realen Verkehrsdaten herzustellen). Ich brauche nur Hilfe bei der Verkabelung vieler LEDs auf der Hardwareseite :)

Ich folgte diesem Tutorial http://www.raspberrypi-spy.co.uk/2012/06/control-led-using-gpio-output-pin/ ganz gut (einschließlich der Verwendung einer externen Stromquelle anstelle von Pin 2), aber Ich werde wahrscheinlich auf das Problem von zu wenigen GPIO-Verbindungen für alle Ampeln stoßen.

Als nächstes habe ich versucht, mit einer LED-Matrix zu multiplexen http://www.appelsiini.net/2011/how-does-led-matrix-work . Multiplexing funktioniert jedoch, die Lichter sind normalerweise schwächer, ich bezweifle, dass dies gut skaliert, und dies erhöht tendenziell die Komplexität der Steuerung.

Kernfrage:

Gibt es noch andere Tricks, mit denen ich mehrere LEDs mit weniger 0/1-Signalen steuern kann, ohne eine Erweiterungskarte für den Raspberry Pi zu haben?

Eine Sache an Ampeln ist, dass sie normalerweise in Dreierblöcken kommen, von denen jeweils nur einer aktiv ist. Gibt es da draußen eine relativ einfache Schaltung, die es mir ermöglichen würde, einen LED-Block mit einem einzigen 0/1-Signal umzuschalten?


1
b = Decke (ln (N) / ln (2)), wobei N die Anzahl der zu steuernden LEDs und b die Anzahl der zur Implementierung der Steuerung erforderlichen Bits ist. Somit würde eine Ampeleinheit, bei der jeweils nur 1 von 3 LED aktiv ist, 2 E / A-Bits zur Steuerung benötigen. Mit 8-Bit-E / A können Sie 32 Ampeleinheiten steuern: 2 Bit für Daten (welche 1 in 3-Leuchte eingeschaltet werden soll), 5 Bit für die Adresse (auf welche 1 in 32- oder 2 ^ 5-Einheit Sie sich beziehen), und 1 Bit zum Verriegeln. Ich hoffe, jemand kann dies zu einer vollständigen Antwort erweitern.
Shimofuri

Die Antwort unten ist gut und was ich vorschlagen wollte, aber da etwas Einfaches keine gute Referenzschaltung finden konnte. Sie können auch einen kleinen 8-poligen Mikrocontroller für 1 US-Dollar verwenden und Ihren eigenen seriellen Bus für praktisch unbegrenzte Geräte rollen, obwohl dies ein Problem für sich ist, wenn Sie sie noch nicht verwendet haben.
PeterJ

Wenn Sie nach "[Multiplexing] [LED]" suchen, werden Fragen mit diesen beiden Tags gefunden. Möglicherweise finden Sie dort einige nützliche Informationen.
Phil Frost

OP kann diese Ampel von Velleman
Chetan Bhargava

Antworten:


11

Kennen Sie Schieberegister wie 74HC595? Es benötigt 3 Pins von Ihrem RPI und Sie können 8 Ausgangsleitungen steuern. Sie können sie einfach kaskadieren und effektiv n × 8 Ausgangsleitungen steuern.

Daten werden seriell in das Schieberegister getaktet und sobald alle 8 Ausgangsbits übertragen sind, speichern Sie die Bits an den Ausgängen.

Ich wollte das Datenblatt hier hinzufügen, aber https://www.sparkfun.com/products/733 zeigt ein schönes Video und hat auch einen Link zum Datenblatt.


4

Schichtregister, wie Jippie vorschlägt, funktionieren gut. Multiplexing kann jedoch auch für mehr LEDs verwendet werden, als Sie vielleicht erwarten. Die Lösung für die verringerte Helligkeit besteht darin, den Spitzenstrom so zu erhöhen, dass der durchschnittliche Strom gleich bleibt. Sie können dies tun, indem Sie die Spannung erhöhen oder den Strombegrenzungswiderstand verringern.

Der Grund, warum übermäßiger Strom eine LED beschädigt, ist, dass der Übergang überhitzt. Wenn zwischen den Impulsen Zeit zum Abkühlen gegeben wird, können die Impulse stärker sein. Das Datenblatt für Ihre LED sollte sowohl einen maximalen Durchschnittsstrom als auch einen maximalen Spitzenstrom angeben, der nicht überschritten werden darf. Wenn Sie sich keine Sorgen um hohe Zuverlässigkeit machen (ein Hobbyprojekt, kein Raumschiff) und es Ihnen nichts ausmacht, ein paar LEDs zu rauchen oder die Regeln ein wenig zu biegen, können Sie die Grenzen jederzeit selbst testen.

Schauen Sie sich auch das Charlieplexing an, um mehr LEDs aus einer kleineren Anzahl von Pins zu multiplexen. Die Obergrenze für die Anzahl der LEDs, die mit dieser Methode verbunden werden können, ist normalerweise die Helligkeit, die mit dem von den GPIO-Pins verfügbaren Strom erreicht werden kann, nicht die Anzahl der Pins.

Lesen Sie weiter: Erzielt das Pulsieren einer LED bei höherem Strom eine größere scheinbare Helligkeit?


1
Ich neige dazu, mich davor zu scheuen, Spitzenströme ohne Schaltung zu hoch zu drücken, was verhindern kann, dass eine Reihe zu lange eingeschaltet bleibt. Es ist fast garantiert, dass jedes softwarebasierte Zeilenlaufwerk gelegentlich ausfällt, und eine gut konzipierte Schaltung sollte vor Schäden durch solche Ereignisse geschützt sein.
Supercat

-1

Verwenden Sie USB oder Ethernet, um die Lichter über eine solche Verriegelungsrelaisplatine zu steuern

http://www.robot-electronics.co.uk/acatalog/Relay_Modules.html

Ich habe diese Boards für andere Anwendungen verwendet und sie sind ausgezeichnet


2
Wir erwarten, dass die Antworten hier weitgehend für sich allein stehen. Links verrotten im Laufe der Zeit und sollten nicht als Hauptinformation herangezogen werden. Geben Sie Ihre Antwort in ein oder zwei Absätzen an und verwenden Sie Links, um auf zusätzliche Hintergrundinformationen zu verweisen.
Olin Lathrop

Meinetwegen! Die Karte, auf die ich von Robot Electronics Bezug genommen habe, ist ein USB- oder Ethernet-gesteuerter Relaistreiber. Es wird mit einem einfachen Befehlssatz geliefert, mit dem jedes der 8 oder 16 Relais auf der Platine ein- oder ausgeschaltet werden kann. Diese Relais können einfach verwendet werden, um den LED-Stapel Ihrer Ampeln zu schalten und die Steuerung über den USB- oder Ethernet-Anschluss des Raspberry PI
Gareth

@Gareth Also füge diese Information in die Antwort nicht hier ein.
Butzke
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.