#include #define PIN 6 //LED-Stripe #define NUMPIXELS 66 #define SENSORPIN1 A3 //Schalter hell #define SENSORPIN2 A5 //Schalter dunkel Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRBW + NEO_KHZ800); int Sensorstatus1 = 0; int Sensorstatus2 = 0; int a=0; int b=0; void setup() { pinMode(SENSORPIN1, INPUT); pinMode(SENSORPIN2, INPUT); digitalWrite(SENSORPIN1, LOW); //10KOhm-R digitalWrite(SENSORPIN2, LOW); //10KOhm-R pixels.begin(); } void EinschaltsequenzTag() { for(int i=-7; i<66; i++) { pixels.setPixelColor(i, pixels.Color(100,100,200,250)); // weiß wird hell dargestellt pixels.show(); pixels.setPixelColor(i+1, pixels.Color(0,0,0,200)); pixels.setPixelColor(i+2, pixels.Color(0,0,0,150)); pixels.setPixelColor(i+3, pixels.Color(0,0,0,100)); pixels.setPixelColor(i+4, pixels.Color(0,0,0,50)); pixels.setPixelColor(i+5, pixels.Color(0,10,0,0)); pixels.setPixelColor(i+6, pixels.Color(0,60,0,0)); pixels.setPixelColor(i+7, pixels.Color(0,150,0,0)); pixels.setPixelColor(i+8, pixels.Color(0,250,0,0)); // erstes Pixel grün pixels.show(); delay(20); } } void EinschaltsequenzNacht() { for(int i=-7; i<66; i++) { pixels.setPixelColor(i, pixels.Color(20,20,20,20)); // weiß wird dunkel dargestellt pixels.show(); pixels.setPixelColor(i+1, pixels.Color(0,0,0,20)); pixels.setPixelColor(i+2, pixels.Color(0,0,0,30)); pixels.setPixelColor(i+3, pixels.Color(0,0,0,40)); pixels.setPixelColor(i+4, pixels.Color(0,0,0,50)); pixels.setPixelColor(i+5, pixels.Color(0,10,0,0)); pixels.setPixelColor(i+6, pixels.Color(0,60,0,0)); pixels.setPixelColor(i+7, pixels.Color(0,150,0,0)); pixels.setPixelColor(i+8, pixels.Color(0,250,0,0)); // erstes Pixel grün pixels.show(); delay(20); } } void EingeschaltenTag() { for(int i=-7; i<60; i++) { pixels.setPixelColor(i, pixels.Color(100,100,200,250)); // helles Weiß pixels.show(); } } void EingeschaltenNacht() { for(int i=-7; i<60; i++) { pixels.setPixelColor(i, pixels.Color(20,20,20,20)); // dunkles Weiß pixels.show(); } } void Ausschaltsequenz() { for(int i=70; i>-4; i--) { pixels.setPixelColor(i, pixels.Color(0,0,0,0)); pixels.show(); pixels.setPixelColor(i-1, pixels.Color(20,0,0,0)); //letztes Pixel rot pixels.setPixelColor(i-2, pixels.Color(60,0,0,0)); pixels.setPixelColor(i-3, pixels.Color(120,0,0,0)); pixels.setPixelColor(i-4, pixels.Color(255,0,0,0)); pixels.show(); delay(50); } } void Ausgeschalten() { for(int i=-7; i<66; i++) { pixels.setPixelColor(i, pixels.Color(0,0,0,0)); pixels.show(); } } void Bunt() { for(int i=66; i>-1; i--) { pixels.setPixelColor(i, pixels.Color(150,0,150,0)); // sind beide Kanäle "akiviert", leuchtet es pink delay(20); pixels.show(); } } void loop() { Sensorstatus1 = digitalRead(SENSORPIN1); Sensorstatus2 = digitalRead(SENSORPIN2); if((Sensorstatus1 == HIGH) && (Sensorstatus2 == LOW)) { if(a==0) { a++; EinschaltsequenzTag(); } else if(a==1) { b=0; EingeschaltenTag(); } } else if((Sensorstatus1 == LOW) && (Sensorstatus2 == HIGH)) { if(a==0) { a++; EinschaltsequenzNacht(); } else if(a==1) { b=0; EingeschaltenNacht(); } } else if((Sensorstatus1 == LOW) && (Sensorstatus2 == LOW)) { if((b==0) && (a==1)) { b++; Ausschaltsequenz(); } else { a=0; Ausgeschalten(); } } else if((Sensorstatus1 == HIGH) && (Sensorstatus2 == HIGH)) { a=0; b=0; Bunt(); } else {} }