Hallo Programierprofis
da ich mich nun auch in die Welt von ARDUINO eingearbeitet habe und mein erstes Projekt erstellt hab, brauche ich euere Hilfe.
Soweit steht alles und ich konnte so einigermasen meine Vorstellungen umsetzen
Nun geht nur darum eine erweiterung für später mal offen zu halten.
im Programm gehen Neopixel der Reihe nach an. Bis der Streifen voll ist. (PIN 11 0-300)
Wenn irgendwann Später mal das erweitert werden soll ist es möglich über PIN 10 nach einer delayzeit XY einen weiteren Streifen anzuschalten?
Quasi erst Streifen 1 0-300 dann 30ms Pause und dann Streifen 2 wieder 0-300. dieser ist dann aber an einem 2ten Ausgang. sollte den Effekt geben das die LED´s 0-600 einzelnd an gehen.
Die DATEN Ader fortlaufend zu Verlegen ist nicht wirklich einfach Realisier bar. Die benötigten Einspeisungen des LED Streifens ist kein Problem.
Hier mal das was ich zusammengebaut habe falls dies benötigt wird.
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define Stripe_1 11 // an welchem Pin der Streifen hängt
#define LED_1 300// Anzahl der angeschlossenen WS2812 LEDs
Adafruit_NeoPixel Band_1 = Adafruit_NeoPixel(LED_1, Stripe_1, NEO_GRBW + NEO_KHZ800);
int pause=30; // Millisekunden Pause bis zur Ansteuerung der nächsten LED.
int a=0; //Start LED Pixel Band 1
int b=LED_1;
int KLED=13; // Kontroll LED
const int S1 = 2; //Lichtschalter Pin
int LS = 0; //Lichtschalterstatus
boolean AN = false; //Merker Licht an/aus
void setup()
{
Serial.begin(9600); // zum evtl. auslesen(fehlersuche)
pinMode(S1, INPUT); //Lichtschalter
pinMode(KLED, OUTPUT);// Ausgang Kontroll LED
Band_1.begin();
Band_1.show();
}
void loop(){
LS = digitalRead(S1);// Schalter auslesen
if (LS == HIGH){
if (AN == false){
digitalWrite(KLED,HIGH);
Band_1.setPixelColor(a, Band_1.Color(0,0,0,255)); // Band anschalten
Band_1.show(); // Durchführen der Pixel-Ansteuerung
a=a+1; // vortlaufenden des Stripes
delay (pause); // ansprechzeit zur nächsten LED
if (a==LED_1)a=0,AN=true; //Stripe Ende zurücksetzten
}
}
else
{
LS = digitalRead(S1);// Schalter auslesen
if (AN == true){
if (LS == LOW){
digitalWrite(KLED, LOW); // Schalter auslesen
Band_1.setPixelColor(b, Band_1.Color(0,0,0,0)); // Band ausschalten rückwärts
Band_1.setPixelColor(0, Band_1.Color(0,0,0,0)); // Band ausschalten nur Letzer Pixel
Band_1.show(); // Durchführen der Pixel-Ansteuerung
b=b-1; // vortlaufenden des Stripes
delay (pause); // ansprechzeit zur nächsten LED
if (b==0) b=LED_1, AN = false; //Stripe Ende Zurücksetzten
}
}
{
LS = digitalRead(S1);// Schalter auslesen
}
}
}