Eigene LED Uhr bauen und programmieren

3 Antworten

so wie ich das sehe ist alles in einem loop

anzahl LED ist gleich stunde bzw minute bzw sekunde ,

man könnte bei kreis auch den vorherigen sekunden LED löschen um ein wandern wie ein zeiger zu simluieren .

Aber im folgenden (ich kenne den syntax nicht so richtig

sollte das der loop sein , diode (da gehört noch ein sleep oder so rein damit natürlich ein lop eine sekunde ist .)


int minute = 0; 
int secunde = 0;
int stunde = 0;
int led = 132;
void loop() {

++secunde;

if (secunde > 60 ) {
++minute; secunde = 0;
for (i=1 ; i < 61 ; ++i) {
digitalWrite(i, LOW);
}

} else {
digitalWrite(0+secunde, HIGH);
}
if (minute > 60 ) {
++stunde; minute = 0;
for (i=1 ; i < 61 ; ++i) {
digitalWrite(60+i, LOW);
}
} else {
digitalWrite(61+minute, HIGH);
}
if (stunde > 12 ) {
  secunde = 0; minute = 0; stunde = 0;
for (i=1 ; i < 13 ; ++i) {
digitalWrite(120+i, LOW);
}
} else {
digitalWrite(121+stunde, HIGH);
}
}



martin7812  02.05.2015, 07:30

digitalWrite(121+stunde, HIGH);

Nur die größten Microcontroller haben mehr als 100 GPIOs.

ATtiny84 hat gerade mal 12, wenn man ihn nicht mit einem "parallelen Programmer" programmiert; wenn man ihn mit dem "USBtiny Programmer" programmieren will, maximal 11 GPIOs.

Die eigentliche Schwierigkeit liegt also darin, 132 LEDs mit maximal 11 GPIOs anzusteuern...

RakonDark  01.05.2015, 21:19

ok noch einige fehler

digitalWrite(61+minute, HIGH);

muss

digitalWrite(60+minute, HIGH);

digitalWrite(121+stunde, HIGH);

muss

digitalWrite(120+stunde, HIGH);

und dann darf kein HIGH bei stunde 0 und minute 0 und secunde 0 sein .

RakonDark  01.05.2015, 21:17

und noch bissel  was zu tun , weil bei werten 0 nicht  das HIGH gesetzt werden darf muss man das ausschliessen .

RakonDark  01.05.2015, 21:15

falsch

} else {

digitalWrite(0+secunde, HIGH);

}

richtig

} else {

digitalWrite(1+secunde, HIGH);

}

Hast du dir auch schon überlegt, wie du 132 LEDs an den Controller anschließt?

Da der ATtiny84 nur 11 Anschlüsse hat, wirst du auf jeden Fall zusätzliche Bauteile brauchen...

Meines Wissens kann man einen ATtiny mit einer Spannung zwischen 3.3V und 5V betreiben. Wenn du 3 x 1.5V-Batterien in Reihe nimmst, hast du 4.5V.

Du musst dann aber darauf achten, dass auch die oben erwähnten zusätzlichen Bauteile mit 4.5V klar kommen.

Alternativ kannst du auch eine Batterie mit einer höheren Spannung (z.B. 9V-Block) und einen 5V-Linearregler (7805) nehmen.


GamerX76 
Beitragsersteller
 04.05.2015, 15:20

Ich bin momentan schon am überlegen wie ich die 132 LEDs am besten unterbringen kann. 

Eine andere Möglichkeit wäre die Zahlen mit den LEDs darzustellen. Somit hätte man mehrere LEDs für eine Zahl und schon mal nur 12 ansteuerbare Punkte. Die 3,6,9 und 12 könnten zudem dauerhaft angeschaltet sein (Keine Steuerung notwendig). Also nur noch 8 ansteuerbare Punkte. Minuten und Sekunden würden trotzdem noch fehlen. Obwohl ich wenigstens die Sekunden per LED's anzeigen lassen möchte. 

Also Zahlen aus LEDs (8), Minuten zur Not aufs Ziffernblatt (keine LEDs) und Sekunden als LEDs (60). 

Wie das ganze am Ende aussieht wenn es z.B. 11 Uhr ist (mit MInuten und so) weiß ich auch noch nicht ... 

Insgesamt bräuchte ich jedoch mehr als nur 11/12 Pins... Welcher Mikrocontroller käme denn da in Frage ? Vllt. einer der ATmega Reihe...

Da ich bei dem ganzen jedoch einen Abgabetermin einhalten muss, könnte ich auch nichts aus China bestellen. Keine allzu teuren Mikrocontroller die innerhalb von 1-2 Wochen hier sind. 

Wie die Reihenschaltung an Batterien aussieht ist ebenfalls noch ein Problem. Da müsste ich dann etwas ausprobieren :/

...


GamerX76 
Beitragsersteller
 01.05.2015, 20:59

Ich bin mal kurz über das Tutorial gegangen und... Er schließt den Arduino an den ATtiny 84 (meiner) und steuert damit die LED.

Allerdings über den Strom des Arduino's und nicht über Batterie. Deswegen verwirrt mich deine erwähnte Batterieschaltung :/ Ich kann leider auch nichts vom Code übernehmen weil ich nur den Programmer und einen Raspberry Pi zur Verfügung habe... Aber danke für den Blog. Ein bisschen dafür dürfte ich dafür gebrauchen :)

RakonDark  01.05.2015, 21:20
@GamerX76

naja , programmierung einer uhr ist pseudosprachentechnisch ja das gleiche , das ist ja nun wirklich simple .