Hallo an alle,
ich habe angefangen mir ein Sketch zu schreiben, in dem ich verschiedene Animationen von LEDs ablaufen lasse.
Das Programm läuft dann ca. 5 mal, bis es sich im 6ten Durchgang nach der ersten Animation aufhängt. Ich kann das Programm durch den Reset Button wieder Starten.
Wenn man Beobachtet, wie die LEDs leuchten, fallen mir ab und zu Unregelmäßigkeiten auf (LEDs blinken kurz auf, wenn sie eigentlich nicht leuchten sollten). Diese Unregelmäßigkeiten haben scheinbar ein Muster und werden auch scheinbar schlimmer, bis das Programm nicht mehr weiter läuft.
Hat jemand Tipps, wie man das Programm aufbauen sollte, damit es "stabil" läuft?
Das Programm läuft auf dem Arduino UNO, welcher über USB vom PC mit Strom versorgt wird.
// Verschiedene Animationen
// Ohne Button zum Weiterschalten
// Ohne Potentiometer zur Geschwindigkeitsregelung
// Mit delay Funktion
byte ledPin[] = {2,3,4,5,6,7,8,9,10,11,12,13};
int i,x;
long Pause = 1000;
int Speed = 50;
void setup() {
for (i=0; i<12; i++) {
pinMode (ledPin[i], OUTPUT);
}
}
void loop() {
//-------------------------Annimation 1-------------------------------------------
for (i=0; i<12; i++){
digitalWrite (ledPin[i], LOW);
}
for (x=0; x<5; x++){
for (i=0; i<12; i++) {
digitalWrite (ledPin[i], HIGH);
delay (Speed);
digitalWrite (ledPin[i], LOW);
}
}
delay (Pause);
//-------------------------------Annimation 2-------------------------------------------
for (i=0; i<12; i++){
digitalWrite (ledPin[i], LOW);
}
for (x=0; x<5; x++){
for (i=13; i>-1; i--) {
digitalWrite (ledPin[i], HIGH);
delay (Speed);
digitalWrite (ledPin[i], LOW);
}
}
delay (Pause);
//------------------------------Annimation 3-------------------------------------------
for (i=0; i<12; i++){
digitalWrite (ledPin[i], LOW);
}
for (x=0; x<5; x++){
for (i=0; i<12; i++) {
digitalWrite (ledPin[i], HIGH);
delay (Speed);
}
for (i=0; i<12; i++){
digitalWrite (ledPin[i], LOW);
}
}
delay (Pause);
//-------------------Annimation 4-------------------------------------------
for (i=0; i<12; i++){
digitalWrite (ledPin[i], LOW);
}
for (x=0; x<5; x++){
for (i=13; i>-1; i--) {
digitalWrite (ledPin[i], HIGH);
delay (Speed);
}
for (i=0; i<12; i++){
digitalWrite (ledPin[i], LOW);
}
}
delay (Pause);
}
Danke für die Mühe!
Grüße