hier mal ein test Code von mir, wo ich rum gespielt habe ohne erfolge!
Ich brauche ein paar stösse in die richtige Richtung
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
int TK=7; //Das Wort „TK Türkontakt“ steht jetzt für den Wert 7.
int TKStatus=0; //Das Wort „TKStatus“ steht jetzt zunächst für den Wert 0. Später wird unter dieser Variable gespeichert, ob der Türkontakt geschlossen ist oder nicht.
int ZVOpen=8; //Das Wort „ZVOpen Zentralverriegelungs Impuls öffnen“ steht jetzt für den Wert 8.
int ZVOpenStatus=0; //Das Wort „ZVOpenStatus“ steht jetzt zunächst für den Wert 0. Später wird unter dieser Variable gespeichert, ob der ZV Impuls High oder Low ist.
int ZVClose=9; //Das Wort „ZVClose Zentralverriegelungs Impuls schliessen“ steht jetzt für den Wert 9.
int ZVCloseStatus=0; //Das Wort „ZVCloseStatus“ steht jetzt zunächst für den Wert 0. Später wird unter dieser Variable gespeichert, ob der ZV Impuls High oder Low ist.
const int LEDFussraum = 6;// LED Fussraum Bel.=Pin6
#define NUM_LEDS 6 //6 ws2812 LEDS conected
Adafruit_NeoPixel strip1 = Adafruit_NeoPixel(NUM_LEDS, LEDFussraum, NEO_GRB + NEO_KHZ800);
void setup(){
pinMode(TK, INPUT_PULLUP); //Der Pin mit dem TK Anschluss (Pin 7) ist jetzt ein Eingang.
pinMode(ZVOpen, INPUT_PULLUP); //Der Pin mit dem ZVOpen Anschluss (Pin 8) ist jetzt ein Eingang.
pinMode(ZVClose, INPUT_PULLUP); //Der Pin mit dem ZVClose Anschluss (Pin 9) ist jetzt ein Eingang.
Serial.begin(9600);
strip1.begin();
}
void loop(){
TKStatus=digitalRead(TK); //Hier wird der Pin7 ausgelesen (Befehl:digitalRead).
//Das Ergebnis wird unter der Variable „TKStatus“ mit dem Wert „HIGH“ für 5Volt oder „LOW“ für 0Volt gespeichert.
if (TKStatus == LOW)//Verarbeitung: Wenn der Türkontakt geschlossen ist (Das Spannungssignal ist HIGH)
{ //Programmabschnitt des IF-Befehls öffnen.
strip1.setPixelColor(0, strip1.Color(30,30,30)); // weiss gedimmt led 1
strip1.setPixelColor(1, strip1.Color(30,30,30)); // weiss gedimmt led 2
strip1.setPixelColor(2, strip1.Color(30,30,30)); // weiss gedimmt led 3
strip1.setPixelColor(3, strip1.Color(30,30,30)); // weiss gedimmt led 4
strip1.setPixelColor(4, strip1.Color(30,30,30)); // weiss gedimmt led 5
strip1.setPixelColor(5, strip1.Color(30,30,30)); // weiss gedimmt led 6
strip1.show();
} //Programmabschnitt des IF-Befehls schließen.
else if (TKStatus == HIGH)//Verarbeitung: Wenn der Türkontakt offen ist (Das Spannungssignal ist LOW)
{ //Programmabschnitt des IF-Befehls öffnen.
strip1.setPixelColor(0, strip1.Color(255,255,255)); // weiss hell led 1
strip1.setPixelColor(1, strip1.Color(255,255,255)); // weiss hell led 2
strip1.setPixelColor(2, strip1.Color(255,255,255)); // weiss hell led 3
strip1.setPixelColor(3, strip1.Color(255,255,255)); // weiss hell led 4
strip1.setPixelColor(4, strip1.Color(255,255,255)); // weiss hell led 5
strip1.setPixelColor(5, strip1.Color(255,255,255)); // weiss hell led 6
strip1.show();
} //Programmabschnitt des IF-Befehls schließen.
// -----------------------------------------------------------------------------------------------
ZVOpenStatus=digitalRead(ZVOpen); // Hier wird der Pin8 ausgelesen (Befehl: digitalRead).
//Das Ergebnis wird unter der Variable "ZVOpenStatus" mit dem Wert "HIGH" für 5Volt oder "LOW" für 0Volt gespeichert.
if (ZVOpenStatus == LOW) //Verarbeitung: Wenn der ZV Open Impuls erkannt wird (Spannungssignal ist hoch)
{ // if-Schleife wird geöffnet
strip1.setPixelColor(0, strip1.Color(0,255,0)); // Grün led 1
strip1.setPixelColor(1, strip1.Color(0,255,0)); // Grün led 2
strip1.setPixelColor(2, strip1.Color(0,255,0)); // Grün led 3
strip1.setPixelColor(3, strip1.Color(0,255,0)); // Grün led 4
strip1.setPixelColor(4, strip1.Color(0,255,0)); // Grün led 5
strip1.setPixelColor(5, strip1.Color(0,255,0)); // Grün led 6
strip1.show();
delay (5000); //und zwar für 5 Sekunden.
} // if-Schleife wird geschlossen
else if (ZVOpenStatus == HIGH && TKStatus == LOW) //Verarbeitung: Wenn der ZV Open Impuls erkannt wird (Spannungssignal ist hoch)
{ // if-Schleife wird geöffnet
strip1.setPixelColor(0, strip1.Color(0,0,0)); // off led 1
strip1.setPixelColor(1, strip1.Color(0,0,0)); // off led 2
strip1.setPixelColor(2, strip1.Color(0,0,0)); // off led 3
strip1.setPixelColor(3, strip1.Color(0,0,0)); // off led 4
strip1.setPixelColor(4, strip1.Color(0,0,0)); // off led 5
strip1.setPixelColor(5, strip1.Color(0,0,0)); // off led 6
strip1.show();
} // Programmabschnitt des if-Befehls wird geschlossen
TKStatus=digitalRead(TK); //Hier wird der Pin7 ausgelesen (Befehl:digitalRead).
//Das Ergebnis wird unter der Variable „TKStatus“ mit dem Wert „HIGH“ für 5Volt oder „LOW“ für 0Volt gespeichert.
if (TKStatus == LOW)//Verarbeitung: Wenn der Türkontakt geschlossen ist (Das Spannungssignal ist HIGH)
{ //Programmabschnitt des IF-Befehls öffnen.
strip1.setPixelColor(0, strip1.Color(30,30,30)); // weiss gedimmt led 1
strip1.setPixelColor(1, strip1.Color(30,30,30)); // weiss gedimmt led 2
strip1.setPixelColor(2, strip1.Color(30,30,30)); // weiss gedimmt led 3
strip1.setPixelColor(3, strip1.Color(30,30,30)); // weiss gedimmt led 4
strip1.setPixelColor(4, strip1.Color(30,30,30)); // weiss gedimmt led 5
strip1.setPixelColor(5, strip1.Color(30,30,30)); // weiss gedimmt led 6
strip1.show();
} //Programmabschnitt des IF-Befehls schließen.
if (TKStatus == HIGH)//Verarbeitung: Wenn der Türkontakt offen ist (Das Spannungssignal ist LOW)
{ //Programmabschnitt des IF-Befehls öffnen.
strip1.setPixelColor(0, strip1.Color(255,255,255)); // weiss hell led 1
strip1.setPixelColor(1, strip1.Color(255,255,255)); // weiss hell led 2
strip1.setPixelColor(2, strip1.Color(255,255,255)); // weiss hell led 3
strip1.setPixelColor(3, strip1.Color(255,255,255)); // weiss hell led 4
strip1.setPixelColor(4, strip1.Color(255,255,255)); // weiss hell led 5
strip1.setPixelColor(5, strip1.Color(255,255,255)); // weiss hell led 6
strip1.show();
} //Programmabschnitt des IF-Befehls schließen.
/*
ZVCloseStatus=digitalRead(ZVClose); // Hier wird der Pin9 ausgelesen (Befehl: digitalRead).
//Das Ergebnis wird unter der Variable "ZVCloseStatus" mit dem Wert "HIGH" für 5Volt oder "LOW" für 0Volt gespeichert.
if (ZVCloseStatus == HIGH) //Verarbeitung: Wenn der ZV Close Impuls erkannt wird (Spannungssignal ist hoch)
{ // if-Schleife wird geöffnet
strip1.setPixelColor(0, strip1.Color(255,0,0)); // Rot led 1
strip1.setPixelColor(1, strip1.Color(255,0,0)); // Rot led 2
strip1.setPixelColor(2, strip1.Color(255,0,0)); // Rot led 3
strip1.setPixelColor(3, strip1.Color(255,0,0)); // Rot led 4
strip1.setPixelColor(4, strip1.Color(255,0,0)); // Rot led 5
strip1.setPixelColor(5, strip1.Color(255,0,0)); // Rot led 6
strip1.show();
delay (5000); //und zwar für für 5 Sekunden (5000 Millisekunden).
} // if-Schleife wird geschlossen
else // ...ansonsten...
{ // Programmabschnitt des else-Befehls wird geöffnet
strip1.setPixelColor(0, strip1.Color(0,0,0)); // off led 1
strip1.setPixelColor(1, strip1.Color(0,0,0)); // off led 2
strip1.setPixelColor(2, strip1.Color(0,0,0)); // off led 3
strip1.setPixelColor(3, strip1.Color(0,0,0)); // off led 4
strip1.setPixelColor(4, strip1.Color(0,0,0)); // off led 5
strip1.setPixelColor(5, strip1.Color(0,0,0)); // off led 6
strip1.show();
} // Programmabschnitt des else-Befehls wird geschlossen
*/
}