NeoPixel Ring mit 16 RGB LEDs

By | 20. April 2017

Die Ansteuerung des sehr hellen Neo Pixel Rings mit 44m Durchmesser erfolgt mit nur einem Pin sowie einer externen +5V Spannungsversorgung. Jede einzelne LED ist durch den Microcontroller ansteuerbar, da der Treiberchip bereits in der LED ist.  Es sind keine externen Widerstände nötig.

Der Ring kommt ohne Anschlüsse, diese sind auf der Platine angezeigt und müssen noch angelötet werden. Je nachdem wie man den Ring anordnet, verändert sich die Lage des LED mit der Nummer Null. In meinem Aufbau befindet sich dieser auf der 12 Uhr Position und läuft gegen den Uhrzeigersinn.

Die Ansteuerung erfolgt am einfachsten über die von Adafruit entwickelte Bibliothek. Nach dem ein entsprechendes Objekt erzeugt wurde, kann man die einzelnen LED direkt ansteuern und ihre Farbe über die Angabe der RGB Werte verändern. Der nachfolgende Programmcode zeigt am einfachen Beispiel wie das erfolgt.

Als Ergebnis erhält man dann folgende Anzeige:

Damit steht ein einfacher Mechanismus zur Verfügung um beliebige Farben und Formen im Ring darzustellen. Der Phantasie der Maker sind somit wenig Grenzen gesetzt.

Digitaler Kompass

Mit Hilfe eines Magnetfeld-Sensors kann man auf dieser Basis leicht einen elektronischen Kompass bauen.

Das Bestimmen der Richtung geht über die bereitgestellten Bibliotheken sehr einfach. So dass nur noch der ermittelte Winkel auf den LED Ring übertragen werden müssen.

Da wir 16 LEDs haben, entspricht jede LED genau einer Himmelsrichtung auf dem Kompass. Beginnend bei Nord, über NordNordOst, zu NordOst, dann zu OstNordOst bis zu Ost usw.

Zwischen den einzelnen Richtungen liegen somit immer 22,5 Grad und es ist nun die Aufgabe des Programmierers entsprechende Bereiche festzulegen. Wie diese beispielsweise festgelegt werden, ist in nebenstehender Abbildung verdeutlicht.

Die Gradzahlen entsprechen den 16 Himmelsrichtungen und in den eckigen Klammern steht der Bereich in dem die entsprechende LED aufleuchten soll. Das Ganze muss dann mit entsprechenden if-then-else-Anweisungen softwaretechnisch umgesetzt werden. Das nachfolgende Beispielprogramm zeigt diese Vorgehensweise:

Es gibt sicher wesentlich elegantere Lösungsansätze, hier ging es mir aber nur darum, zu zeigen, was mit einem LED-PixelRing alles gemacht werden kann.