Ich baue eine Led Uhr und brauche Hilfe

Mein Projekt:

Ich baue zur Zeit eine Uhr die in halben-stunden anzeig wie viel Uhr gerade ist

Die 12 LED's sind im kreis angeordnet

wenn nur 1 Led leuchtet dann ist es gerade ... :00 UHR
wenn zwei Led's leuchten dann ist es gerade ... :30 UHR

Meine Probleme:

  1. Ich weiß nicht wie ich die Uhr Autonom Aktualisieren kann
  2. Jedes mal wenn ich meinen PC starte resete fängt die Uhr von vorne an
  3. Ich weiß nicht wie ich das folgende Program kürzen kann
  4. Ich bin kein blutiger Anfänger aber auch kein Profi
  5. Ich benutze einen "Arduino Nano" mit einem "ATmega328P" Prozessor
  6. Ich verzweifle an Problem 1 und 2 :sweat_smile:

Mein Program:

void setup() {
  pinMode(1, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  digitalWrite(8, HIGH);
  
    }
void loop() {

  delay(1800000);
  digitalWrite(9, HIGH);
  delay(1800000);
  digitalWrite(8, LOW);
  delay(1800000);
  digitalWrite(10, HIGH);
  delay(1800000);
  digitalWrite(9, LOW);
  delay(1800000);
  digitalWrite(11, HIGH);
  delay(1800000);
  digitalWrite(10, LOW);
  delay(1800000);
  digitalWrite(12, HIGH);
  delay(1800000);
  digitalWrite(11, LOW);
  delay(1800000);
  digitalWrite(1, HIGH);
  delay(1800000);
  digitalWrite(12, LOW);
  delay(1800000);
  digitalWrite(2, HIGH);
  delay(1800000);
  digitalWrite(1, LOW);
  delay(1800000);
  digitalWrite(3, HIGH);
  delay(1800000);
  digitalWrite(2, LOW);
  delay(1800000);
  digitalWrite(4, HIGH);
  delay(1800000);
  digitalWrite(3, LOW);
  delay(1800000);
  digitalWrite(5, HIGH);
  delay(1800000);
  digitalWrite(4, LOW);
  delay(1800000);
  digitalWrite(6, HIGH);
  delay(1800000);
  digitalWrite(5, LOW);
  delay(1800000);
  digitalWrite(7, HIGH);
  delay(1800000);
  digitalWrite(6, LOW);
  delay(1800000);
  digitalWrite(8, HIGH);
  delay(1800000);
  digitalWrite(7, LOW);
}

Freue mich über Hilfe

Grüße Valencius

Für die Zeit solltest brauchst Du eine RTC. Nimm eine DS3231, die ist am genauesten. Achte auf einen Akku LIR2032, wenn eine Ladeschaltung verbaut ist.

Hier wäre eine Lib dazu, es geht aber auch ohne.

Zur Verkürzung könntest Du Dir Arrays anschauen.

Gruß Tommy

Hi

Ich muß Tommy56 zustimmen.
Nicht nur, daß Dir der delay()-Zirkus binnen weniger Stunden aus dem Ruder laufen wird - je nach Temperatur Mal in die Eine, Mal in die andere Richtung - auch kann Dein Sketch so NIE noch etwas nebenher machen.
Hier vll. auch nicht nötig - aber vll. soll die Uhr ja Mal wachsen, eine Alarm-Funktion oder eine Möglichkeit, die Uhrzeit einzustellen bekommen ...
Zumindest haben wir noch alle halbe Jahr das Problem, daß wir zwischen Sommer- und Normalzeit hin und her schalten.
Noch sehe ich in Deinem Sketch Nichts, was Das nachbilden würde (Jurs hatte Da Was gebastelt).
Aber auch eine DS3231 könnte 'aus dem Ruder laufen' - spätestens, wenn Deren Batterie (CR2032) leer ist, behält Die Sich die Uhrzeit auch nicht mehr.
Somit wäre auch hier die Möglichkeit, die Uhrzeit einzustellen, 'toll'.

Das wird aber frühestens Etwas, wenn Du von delay() weg kommst.
Dazu kannst Du, bei Interesse, die Nachtwächter-Erklärung hier im Forum suchen.

MfG