Eigene LED Uhr bauen und programmieren
Ich habe vor für ein Kunstprojekt in der Schule eine Uhr mit LED- Dioden zu bauen, nur hakelt es leider an der Programmierung der Uhr.
Ich habe hier noch einen ATtiny84-pu von Atmel und einen USBtiny programmer liegen und wollte mit Hilfe des programmers ein passenden code auf den Attiny spielen, damit dieser die LEDs entsprechend anschaltet.
Da ich mich nicht so gut damit auskenne, bräuchte ich ein bisschen Hilfe mich da durch zu kämpfen.
Letztendlich möchte ich einen Kreis für Stunden (12) , Minuten (60) und Sekunden (60) aus LEDs haben (also insgesamt 132 LEDs). Der ATtiny müsste also per Code die Minuten nach 60 Sekunden umschalten und auch die Stunden nach 60 Minuten.
Das ganze sollte noch per Batterie betreibbar sein, wenn nicht, dann bräuchte ich da ebenfalls Hilfe :/
Jede Idee wäre bestimmt schon hilfreich, also bitte auch diese schreiben.
:)
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);
}
}
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...
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 .
und noch bissel was zu tun , weil bei werten 0 nicht das HIGH gesetzt werden darf muss man das ausschliessen .
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.
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 :/
...
Die Baterrieschaltung findest du dort
http://www.3bm.de/2013/09/17/attiny84-mit-arduino-uno-programmieren/
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 :)