Ihr seid der Hit, danke. Ich habe es aber noch nicht ganz geschafft.
Dank der Nachtwächtererklärung habe ich es begonnen zu verstehen.
https://forum.arduino.cc/index.php?topic=423688.0
Ich habe es geschaftt 2 einzelne LED mit unterschiedlichen Blinkgeschwinigkeiten zu programmieren.
Hier erstmal der Code:
unsigned long LED1_timestore; // Variable Speicher für Systemzeit.
int Led1_Status = LOW;
int Led1_Pin = 13;
unsigned long LED2_timestore; // Variable Speicher für Systemzeit.
int Led2_Status = LOW;
int Led2_Pin = 12;
void setup() {
pinMode(Led1_Pin, OUTPUT); // teilt dem Arduino mit, dass das ein Ausgang ist.
pinMode(Led2_Pin, OUTPUT); // teilt dem Arduino mit, dass das ein Ausgang ist.
}
void loop() {
/* LED-1 ============================ */
if (Led1_Status == LOW) {
if (millis() - LED1_timestore> 1000 ) {
digitalWrite(Led1_Pin, HIGH);
LED1_timestore = millis();
Led1_Status = HIGH;
}
} else {
if (millis() - LED1_timestore> 500) {
digitalWrite(Led1_Pin, LOW);
Led1_Status = LOW;
}
}
/* LED-1 - ENDE ====================== */
/* LED-2 ============================ */
if (Led2_Status == LOW) {
if (millis() - LED2_timestore> 2000 ) {
digitalWrite(Led2_Pin, HIGH);
LED2_timestore = millis();
Led2_Status = HIGH;
}
} else {
if (millis() - LED2_timestore> 500) {
digitalWrite(Led2_Pin, LOW);
Led2_Status = LOW;
}
}
/* LED-2 - ENDE ====================== */
}
Die Adaptierung an mein LED-Panel funktioniert noch nicht.
Hier der funktionierende Code zur Ansteuerung eines LED-Pannels mit delay
/* Mithilfe des Arduino-Forums erstellt */
/*
// Zur Nachahmung:
// 1. Adafruit_NeoPixel.h Bibliothek (Library) importieren.
// Daten Pin 8 verwenden oder in der Zeile "#define PIN 8" die Zahl 8 abändern, je nach verwendetem Pin
// Die zwei anderen Kabel bei GRN und bei 5V hineinstecken.
// In der Zeile "#define NUM_LIGHTS 64" die Zahl 64 entspricht der Anzahl der LEDs - bei Bedarf die Zahl anpassen
// Farbe abändern: In der Zeile "uint32_t high = strip.Color(5, 0, 0);" die Werte in der Klammer abändern (Rot, Grün, Blau) (Werte zwischen 0-255 verwenden)
// Blinkgeschwindigkeit in diesen zwei Zeilen zu ändern "delay(15);" (Wert in Millisekungen; 1000 = 1 Sekunde)
*/
#include <Adafruit_NeoPixel.h> // 1. Adafruit_NeoPixel.h Bibliothek (Library) importieren.
#define PIN 8 // Daten Pin 8 verwenden oder in der Zeile "#define PIN 8" die Zahl 8 abändern, je nach verwendetem Pin
#define NUM_LIGHTS 64 // Die Zahl 64 entspricht der Anzahl der LEDs - bei Bedarf die Zahl anpassen
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LIGHTS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
strip.show(); // Initialize all pixels to 'off'
}
void loop() {
uint32_t low = strip.Color(0, 0, 0);
uint32_t high = strip.Color(5, 0, 0); // Hier die Lichtfarbe abändern. (Rot, Grün, Blau) (Werte zwischen 0-255 verwenden)
for( int i = 0; i<NUM_LIGHTS; i++){
strip.setPixelColor(i, high);
}
strip.show();
delay(100); // Zeitdauer in der das Licht an ist.
for( int i = 0; i<NUM_LIGHTS; i++){
strip.setPixelColor(i, low);
// strip.show();
}
strip.show();
delay(100); // Zeitdauer in der das Licht aus ist.
}
Hier mein Versuch ein LED-Pannel mit millis zu steuern. Ich bekomme eine Fehlermeldung
Hier der Code:
/* Quelle einzelne LEDs ohne delay zu steuern =================================== */
unsigned long LED1_timestore; // Variable Speicher für Systemzeit.
int Led1_Status = LOW;
int Led1_Pin = 8;
/* Quelle ENDE =================================== */
/* Mithilfe des Arduino-Forums erstellt */
/*
// Zur Nachahmung:
// 1. Adafruit_NeoPixel.h Bibliothek (Library) importieren.
// Daten Pin 8 verwenden oder in der Zeile "#define PIN 8" die Zahl 8 abändern, je nach verwendetem Pin
// Die zwei anderen Kabel bei GRN und bei 5V hineinstecken.
// In der Zeile "#define NUM_LIGHTS 64" die Zahl 64 entspricht der Anzahl der LEDs - bei Bedarf die Zahl anpassen
// Farbe abändern: In der Zeile "uint32_t high = strip.Color(5, 0, 0);" die Werte in der Klammer abändern (Rot, Grün, Blau) (Werte zwischen 0-255 verwenden)
// Blinkgeschwindigkeit in diesen zwei Zeilen zu ändern "delay(15);" (Wert in Millisekungen; 1000 = 1 Sekunde)
*/
#include <Adafruit_NeoPixel.h> // 1. Adafruit_NeoPixel.h Bibliothek (Library) importieren.
#define PIN 8 // Daten Pin 8 verwenden oder in der Zeile "#define PIN 8" die Zahl 8 abändern, je nach verwendetem Pin
#define NUM_LIGHTS 64 // Die Zahl 64 entspricht der Anzahl der LEDs - bei Bedarf die Zahl anpassen
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LIGHTS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
/* Quelle einzelne LEDs ohne delay zu steuern =================================== */
pinMode(Led1_Pin, OUTPUT); // teilt dem Arduino mit, dass das ein Ausgang ist.
/* Quelle ENDE =================================== */
strip.begin();
strip.show(); // Initialize all pixels to 'off'
}
void loop() {
/* Quelle einzelne LEDs ohne delay zu steuern =================================== */
if (Led1_Status == LOW) {
if (millis() - LED1_timestore> 1000 ) {
/* digitalWrite(Led1_Pin, HIGH);
LED1_timestore = millis();
Led1_Status = HIGH; */
uint32_t low = strip.Color(0, 0, 0);
uint32_t high = strip.Color(5, 0, 0); // Hier die Lichtfarbe abändern. (Rot, Grün, Blau) (Werte zwischen 0-255 verwenden)
for( int i = 0; i<NUM_LIGHTS; i++){
strip.setPixelColor(i, high);
}
strip.show();
}
} else {
if (millis() - LED1_timestore> 500) {
/* digitalWrite(Led1_Pin, LOW);
Led1_Status = LOW;
*/
for( int i = 0; i<NUM_LIGHTS; i++){
strip.setPixelColor(i, low);
// strip.show();
}
strip.show();
}
}
/* Quelle ENDE =================================== */
}
Hier die Fehlermeldung:
Folgende Code-Zeile ist im Arduino-Programm rot hinterlegt:
strip.setPixelColor(i, low);
Die dazugehörige Fehlermeldung lautet:
exit status 1
'low' was not declared in this scope
Könnt Ihr mir sagen was da falsch ist? Danke!