
Zwei Potentiometer dienen dazu, Farben und Helligkeit eines LED-Streifens zu manipulieren.
So sieht es aus (Drehpotentiometer am Grove-Shield):

Der LED-Streifen besteht aus mehreren miteinander verbundenen RGB-LEDs. Jede besitzt einen eigenen Controller und kann einzeln angesteuert werden. Er benötigt nur einen digitalen Eingang.
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.

Hier findest du einen Überblick über die 🔗RGB-Farbcodes (externer Link abgerufen am 25.4.22).
Beispiele:

Benötigte Bauteile:
- LED-Streifen
- 2 beliebige Potentiometer (Dreh- oder Schiebepotentiometer)
- Leitungsdrähte
Baue die Schaltung auf.
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)
Das eigentliche Programm:
Als Erstes musst du eine Bibliothek installieren:
Sketch ⇒ Bibliothek einbinden ⇒ Bibliotheken verwalten


Jedem Befehl muss der Name des LED-Streifens vorangestellt werden.
Funktionen der Bibliothek Adafruit_NeoPixel (Auswahl)
| 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 |
Binde die benötigte Bibliothek ein und definiere die Variablen.
Beachte die Kommentare.
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 | #include “Adafruit_NeoPixel.h” // Pin des LED-Streifens #define STREIFEN 7 // Anzahl der LEDs -> muss angepasst werden #define AnzahlLED 15 // Anschlüsse der Potentiometer #define PotiHelligkeit A0 #define PotiFarbe A1 /* Initialisierung des LED-Streifens Parameter: LED-Streifen -> Name des LED-Streifens AnzahlLED -> Anzahl der LEDs STREIFEN -> verwendeter Pin NEO_GRB + NEO_KHZ800 -> Typ des verwendeten LED-Streifens */ Adafruit_NeoPixel LEDStreifen = Adafruit_NeoPixel(AnzahlLED, STREIFEN, NEO_GRB + NEO_KHZ800); // Farben in RGB-Schreibweise definieren #define ROT LEDStreifen.Color(255, 0, 0) #define ROSA LEDStreifen.Color(255, 50, 100) #define BLAU LEDStreifen.Color(0, 0, 255) #define HELLBLAU LEDStreifen.Color(100, 100, 255) #define GRUEN LEDStreifen.Color(0, 255, 0) #define HELLGRUEN LEDStreifen.Color(0, 100, 153) #define GELB LEDStreifen.Color(255, 255, 0) #define ORANGE LEDStreifen.Color(200, 50, 0) #define PINK LEDStreifen.Color(255, 20, 147) #define MAGENTA LEDStreifen.Color(139, 0, 139) |
Der setup-Block startet den Seriellen Monitor und initialisiert den LED-Streifen.
1 2 3 4 5 6 7 | void setup() { Serial.begin(9600); // NeoPixel Bibliothek initialisieren LEDStreifen.begin(); } |
Der loop-Teil.
Beachte die Kommentare.
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 | void loop() { // LEDs ausschalten LEDStreifen.clear(); /* PotiHelligkeit abfragen map -> Bereich von 0 bis 1023 (dem mit analogRead gelesenen Wert des Potentiometers) auf 0 bis 255 übertragen (Helligkeit des LED-Streifens) */ int Helligkeit = map(analogRead(PotiHelligkeit), 0, 1023, 0, 255); // Helligkeit setzen LEDStreifen.setBrightness(Helligkeit); /* PotiFarbe abfragen Bereich 0 bis 1023 Bereiche festlegen -> nach jeweils 128 Werten neue Farbe */ switch (analogRead(PotiFarbe)) { case 0 ... 128: LEDStreifen.fill(ROSA, 0, AnzahlLED); LEDStreifen.show(); break; case 129 ... 256: LEDStreifen.fill(ROT, 0, AnzahlLED); LEDStreifen.show(); break; case 257 ... 384: LEDStreifen.fill(HELLBLAU, 0, AnzahlLED); LEDStreifen.show(); break; case 385 ... 512: LEDStreifen.fill(BLAU, 0, AnzahlLED); LEDStreifen.show(); break; case 513 ... 640: LEDStreifen.fill(HELLGRUEN, 0, AnzahlLED); LEDStreifen.show(); break; case 641 ... 768: LEDStreifen.fill(GRUEN, 0, AnzahlLED); LEDStreifen.show(); break; case 769 ... 896: LEDStreifen.fill(GELB, 0, AnzahlLED); LEDStreifen.show(); break; case 897 ... 1023: LEDStreifen.fill(ORANGE, 0, AnzahlLED); LEDStreifen.show(); break; default: LEDStreifen.clear(); } } |
Verwandte Anleitungen:
Letzte Aktualisierung:






