Ziel des Projekts
Auf einem NeoPixel-Ring sollen verschiedene Farben und Lauflichter angezeigt werden.

Die Hardware

Der NeoPixel-Ring besteht aus mehreren miteinander verbundenen RGB-LEDs. Jede besitzt einen eigenen Controller und kann einzeln angesteuert werden. Er benötigt nur einen digitalen Eingang. Der NeoPixel-Ring ist in verschiedenen Bauformen zwischen 12 und 60 LEDs erhältlich.
Die Programmierung unterscheidet sich nicht.
RGB ist eine Mischung der Farben Rot, Grün und Blau. Jede Farbe kann von 0 bis 255 gesetzt werden, die Werte werden durch Kommata getrennt.
Jede LED kann einzeln angesprochen werden.
Die Zählung beginnt mit 0!
Achte auf die Polung. Sie kann bei den NeoPixel-Ringen verschiedener Hersteller unterschiedlich sein.

Beispiele:

Der Schaltplan
Benötigte Bibliothek
Die Ansteuerung von Hardware kann sehr bequem über ⇒Bibliotheken erledigt werden. Der NeoPixel-Ring wird mit der Bibliothek Adafruit Neopixel angesteuert.

Funktionen der Bibliothek Adafruit NeoPixel
| Schlüsselwort | Aktion |
|---|---|
| begin() | LED-Ring starten |
| numPixels() | Anzahl der LEDs lesen |
| show() | LED-Ring einschalten |
| clear() | LED-Ring ausschalten |
| setPixelColor(LED-Nummer, rot, grün, blau) | Farbe einer LED setzen LED-Nummer rot -> 0 - 255 grün -> 0 - 255 blau -> 0 - 255 |
| setBrightness() | Helligkeit setzen (0-255) |
| Color(rot, grün, blau) | Farbe für alle LEDs setzen rot -> 0 - 255 grün -> 0 - 255 blau -> 0 - 255 Beispiel rot: int Farbe = LEDStreifen.Color(255, 0, 0); Beispiel grün: int Farbe = LEDStreifen.Color(0, 255, 0); Beispiel blau: int Farbe = LEDStreifen.Color(0, 0, 255); |
| fill(Farbe, Start, Ende) | Farbe für die mit Start und Ende bezeichneten Pixel setzen |
Das Programm
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
#include "Adafruit_NeoPixel.h" #define RING 7 // Anzahl der LEDs ⇒ muss angepasst werden #define AnzahlLED 16 // LEDRing -> Name des LED-Rings Adafruit_NeoPixel LEDRing(AnzahlLED, RING, NEO_GRB + NEO_KHZ800); void setup() { // setBrightness(0..255) LEDRing.setBrightness(200); // NeoPixel Bibliothek initialisieren LEDRing.begin(); } void loop() { // mit Farbe füllen // rot LEDRing.fill(LEDRing.Color(255, 0, 0), 0, AnzahlLED); LEDRing.show(); delay(1000); // grün LEDRing.fill(LEDRing.Color(0, 255, 0), 0, AnzahlLED); LEDRing.show(); delay(1000); // blau LEDRing.fill(LEDRing.Color(0, 0, 255), 0, AnzahlLED); LEDRing.show(); delay(1000); // gelb LEDRing.fill(LEDRing.Color(255, 255, 0), 0, AnzahlLED); LEDRing.show(); delay(1000); // pink LEDRing.fill(LEDRing.Color(255, 20, 147), 0, AnzahlLED); LEDRing.show(); delay(1000); LEDRing.clear(); LEDRing.show(); delay(1000); LEDRing.clear(); // Lauflicht hin for (int i = 0; i < LEDRing.numPixels(); i++) { LEDRing.setPixelColor(i, 255, 0, 0); LEDRing.show(); delay(200); } delay(500); // Lauflicht zurück for (int i = LEDRing.numPixels(); i > 0; i--) { LEDRing.setPixelColor(i, 0, 0, 0); LEDRing.show(); delay(200); } LEDRing.setPixelColor(0, 0, 0, 0); LEDRing.show(); delay(500); } |
Letzte Aktualisierung: