Hallo Arduino Forum.
Ich bin ziemlich neu im Forum und brauche eure Hilfe zu einem Projekt.
Ich arbeite seit einiger Zeit an einem Nachbau einer "Wortuhr" die ich mit einem Arduino Due ansteuren möchte.
Ich habe dazu ein ziemlich simples Programm dafür geschrieben.
Die Uhr funktioniert seit einigen Tagen einwandfrei und sehr präzise doch ich weiss leider nicht wie ich sie dazu bringe, die Zeit umzustellen.
Das ganze funktioniert mit der Schedulerfunktion mit der ich 2 Schleifen (In meinem Fall sind es loop2 und loop3) gleichzeitig laufen lasse. Die erste Schleife beinhaltet die 4 Eck-LED`s die die einzelnen Minuten anzeigen. Die andere Schleife ändert im 5 minuten takt die anzuzeigenden Wörter.
Nun meine Frage:
Gibt es eine Möglichkeit 1 Button zu integrieren mit der ich beispielsweise loop3 unterbrechen kann und an einer anderen Stelle innerhalb der Schleife weiterlaufen lassen kann? Soquasi den Code für eine Stunde zu überspringen?
Habe schon verschiedene Youtube- Tutorials angeschaut und das Arduino Tutorial durchgelesen doch irgendwie komme ich einfach nicht weiter.
Ich bedanke mich herzlich im Voraus für jeden Tipp.
Hier noch ein Teil meines Codes:
#include <Scheduler.h>
Scheduler.startLoop(loop2);
Scheduler.startLoop(loop3);
//Dieser Teil zeigt die Minuten an (Eck LED`s)
void loop2() {
digitalWrite(erstemin, LOW);
digitalWrite(zweitemin,LOW);
digitalWrite(drittemin,LOW);
digitalWrite(viertemin,LOW);
delay(60000);
digitalWrite(erstemin, HIGH);
delay(60000);
digitalWrite(zweitemin,HIGH);
delay(60000);
digitalWrite(drittemin,HIGH);
delay(60000);
digitalWrite(viertemin,HIGH);
delay(60000);
digitalWrite(erstemin,LOW);
digitalWrite(zweitemin,LOW);
digitalWrite(drittemin,LOW);
digitalWrite(viertemin,LOW);
}
void loop3() { // Hier startet dann die erste Stunde
digitalWrite(esist,HIGH);
digitalWrite(zwoelf, HIGH);
digitalWrite(uhr,HIGH);
delay(300000);
digitalWrite(uhr,LOW);
digitalWrite(fuenf2,HIGH);
digitalWrite(nach,HIGH);
delay(300000);
digitalWrite(fuenf2,LOW);
digitalWrite(zehn2,HIGH);
delay(300000);
digitalWrite(zehn2,LOW);
digitalWrite(viertel,HIGH);
delay(300000);
digitalWrite(viertel,LOW);
digitalWrite(zwanzig,HIGH);
delay(300000);
digitalWrite(zwanzig,LOW);
digitalWrite(nach,LOW);
digitalWrite(zwoelf,LOW);
digitalWrite(fuenf2,HIGH);
digitalWrite(vor,HIGH);
digitalWrite(halb,HIGH);
digitalWrite(eins,HIGH);
delay(300000);
digitalWrite(fuenf2,LOW);
digitalWrite(vor,LOW);
delay(300000);
digitalWrite(fuenf2,HIGH);
digitalWrite(nach,HIGH);
delay(300000);
digitalWrite(fuenf2,LOW);
digitalWrite(nach,LOW);
digitalWrite(halb,LOW);
digitalWrite(vor,HIGH);
digitalWrite(zwanzig,HIGH);
delay(300000);
digitalWrite(zwanzig,LOW);
digitalWrite(viertel,HIGH);
delay(300000);
digitalWrite(viertel,LOW);
digitalWrite(zehn2,HIGH);
delay(300000);
digitalWrite(zehn2,LOW);
digitalWrite(fuenf2,HIGH);
delay(300000);
digitalWrite(fuenf2,LOW);
digitalWrite(vor,LOW);
digitalWrite(uhr,HIGH);
delay(300000);
// Hier die 2te Stunde
digitalWrite(uhr,LOW);
digitalWrite(fuenf2,HIGH);
digitalWrite(nach,HIGH);
delay(300000);
digitalWrite(fuenf2,LOW);
digitalWrite(zehn2,HIGH);
delay(300000);
digitalWrite(zehn2,LOW);
digitalWrite(viertel,HIGH);
delay(300000);
digitalWrite(viertel,LOW);
digitalWrite(zwanzig,HIGH);
delay(300000);
digitalWrite(zwanzig,LOW);
digitalWrite(nach,LOW);
digitalWrite(eins,LOW);
digitalWrite(fuenf2,HIGH);
digitalWrite(vor,HIGH);
digitalWrite(halb,HIGH);
digitalWrite(zwei,HIGH);
delay(300000);
digitalWrite(fuenf2,LOW);
digitalWrite(vor,LOW);
delay(300000);
digitalWrite(fuenf2,HIGH);
digitalWrite(nach,HIGH);
delay(300000);
digitalWrite(fuenf2,LOW);
digitalWrite(nach,LOW);
digitalWrite(halb,LOW);
digitalWrite(vor,HIGH);
digitalWrite(zwanzig,HIGH);
delay(300000);
digitalWrite(zwanzig,LOW);
digitalWrite(viertel,HIGH);
delay(300000);
digitalWrite(viertel,LOW);
digitalWrite(zehn2,HIGH);
delay(300000);
digitalWrite(zehn2,LOW);
digitalWrite(fuenf2,HIGH);
delay(300000);
digitalWrite(fuenf2,LOW);
digitalWrite(vor,LOW);
digitalWrite(uhr,HIGH);
delay(300000);