#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif
#define DEBUG
#define POTI_ANZAHL_LED A3
#define POTI_FARBE_ROT A2
#define POTI_FARBE_GRUEN A1
#define POTI_FARBE_BLAU A0
byte by_anzahl_leds = 0;
byte by_farbe_rot = 0;
byte by_farbe_gruen = 0;
byte by_farbe_blau = 0;
byte by_pixel = 0; // Zaehler
#define PIN_NEO_PIXEL 4 // Arduino pin that connects to NeoPixel
#define NUM_PIXELS 20 // The number of LEDs (pixels) on NeoPixel
Adafruit_NeoPixel NeoPixel(NUM_PIXELS, PIN_NEO_PIXEL, NEO_GRB + NEO_KHZ800);
void setup() {
NeoPixel.begin(); // Initializes the NeoPixel library.
#ifdef DEBUG
Serial.begin(9600);
#endif
}
void loop() {
by_anzahl_leds = map(analogRead(POTI_ANZAHL_LED), 0, 1023, 1, NUM_PIXELS);
by_farbe_rot = analogRead(POTI_FARBE_ROT) >> 2;
by_farbe_gruen = analogRead(POTI_FARBE_GRUEN) >> 2;
by_farbe_blau = analogRead(POTI_FARBE_BLAU) >> 2;
for (by_pixel = 0; by_pixel < NUM_PIXELS; by_pixel++) // Alle LEDs einstellen
{
// NeoPixel.setPixelColor verwendet RGB-Werte von 0,0,0 bis 255,255,255
if (by_pixel < by_anzahl_leds) // by_anzahl_leds LEDs einschalten
NeoPixel.setPixelColor(by_pixel, NeoPixel.Color(by_farbe_rot, by_farbe_gruen, by_farbe_blau));
else // restliche LEDs aus
NeoPixel.setPixelColor(by_pixel, NeoPixel.Color(0, 0, 0)); // Alle LEDs aus
}
NeoPixel.show(); // aktualisiere Zustand der LEDs
#ifdef DEBUG
Serial.print("Anzahl LEDs: ");
Serial.print(by_anzahl_leds);
Serial.print("\t|\tFarbe Rot: ");
Serial.print(by_farbe_rot);
Serial.print("\tFarbe Gruen: ");
Serial.print(by_farbe_gruen);
Serial.print("\tFarbe Blau: ");
Serial.println(by_farbe_blau);
#endif
}
Anzahl
Rot
Grün
Blau