Hallo, für meine Freundin möchte ich gerne einen "Tageszähler" basteln, der auf nem gewöhnlichen LCD-Display anzeigt, wie viel Tage wir schon zusammen sind. Da ich ein absoluter Anfänger bin, eine Frage: Mache ich das am besten, wie im AVR-Tutorial beschrieben mit einem Mikrocontroller, Breadbord und nem LCD-Display oder gibt es bessere/einfachere/andere Lösungen? Vielen Dank für Eure Hilfe Markus
Habe gerade im Onlineshop (http://shop.mikrocontroller.net) die AVR Entwicklungsplatine (ATmega16) gefunden - spare ich mir damit die "Zusammenbauerei" auf das Breadbord und kann dafür gleich anfangen mit dem Anschließen des LCD?
Soweit ich die Paltine vom Shop hier in erinnerung habe sollte das damit kein Problem sein. Gruß Jochen
Hallo, welche Freundin hat da Spaß daran, wenn man ihre Tage zählt? Freundin und Elektronik. Paßt das zusammen? Falls Du im Programmieren fit bist, würde ich die Mikrocontroller-Lösung empfehlen, damit könnte man menügeführt alle möglichen Ereignisse damit zählen. Falls nicht, würde ich einen konventionellen Aufbau empfehlen. Drei- oder Vierstellig liegt dann in Deinem Ermessen. Ein auf Lochraster gelöteter Aufbau kann jahrelang funktionieren. Gruß
Ok, danke. Dann kann ich also mit dieser Platine meine Idee des "Tageszählers" realisieren? Was brauche ich denn alles? ATmega16 16MHz 7.20 Euro, AVR Entwicklungsplatine (ATmega16) 24,50 Euro, AVR Entwicklungsplatine (ATmega16) 14 Euro, Parallelport-Verlängerung 1,8m 2,50 Euro (?), und einen LCD: Kann ich mit dem ATmega16 auch Grafik-LCDS mit einem HD6120FS-Controller ansteuern?
Ich weiß, ich schein Euch zu nerven, aber ich bitte Euch noch wenigstens um eine Auskunft: Wenn ich mit Timer arbeiten muss (will ja alle 24 Stunden einen Wert erhöhen) ist dann der ATMEL AVR Typ ATmega32-16PI nicht geeigneter als der ATMEL AVR Typ ATmega16-16-PI, weil in der Beschreibung steht, dass der 32er 2x 8-Bit-Timer, 1x 16-Bit-Timer hat - hat das irgendwas mit Stundenzählen zu tun, oder ist das auf was anderes bezogen? Vielen Dank Markus
Hi zum Thema Freundin und Elektronik. Ja das passt. Aber nur gaaanz selten... Meine studiet (wie ich auch) Elektrotechnik an der FH Giessen... Gruß Tobi
Hi noch was zum Thema. Wenn Du willst das der Tageszähler nicht ausfällt wenn ihm mal der Saft ausgeht würd ich vorschlagen, das Du alle Stunde oder so mal den Wert im EEPROM speicherst. (Nicht öfter denn das EEPROM hat nur beschränkte Zyklen) Solltest Du zuviel Zeit haben kannst Du auch ein DCF77 Modul anschliessen, was die Tage stehts neu berechnet. Gruß Tobi
Und schreibe nie aus einer Interruptroutine (auch nicht über verschlugene Pfade) in das EEPROM, sondern in der Hauptschleife, sonst geht dir die Uhr ein paar Sekunden pro Tag nach, wenn man es jede halbe Stunde schreiben lässt. Wieso sagt mir das vorher keiner?
Danke Tobias für die Unterstützung ;-) Aber wie ist das nun? Brauche ich unbedingt den ATMEL AVR Typ ATmega32-16-PI, mit 2x 8-Bit-Timer, 1x 16-Bit-Timer (was bedeutet das genau) oder reicht es auch ein ATMEL AVR Typ ATmega16-16-PI? Gruß Markus
Ich will ja nicht unhöflich sein, aber ich denke, du brauchst erstmal ein Konzept und etwas mehr Grundlagenwissen... Bit- & Bytebruch... ...HanneS...
Also, kurz zur Erklärung: Ein 8-Bit bzw. 16-Bit-Timer ist beim Mikrocontroller ein Register, welches im Falle von 8 Bit Breite einen der Werte 0 ... 255 bzw. bei 16 Bit 0 ... 65535 "speichern" kann. Das Besondere an diesen Registern ist nun, dass sie entweder durch den Systemtakt (z. B. Quarz) oder auch durch ein externes Rechtecksignal ihren Wert automatisch nach jeder Periode um "1" erhöhen. Falls also z. B. der 16-Bit-Timer zu Beginn den Wert 0 hat und der Quarz 65535 Rechtecksignale ausgegeben hat, so ist der Wert des Timers dann 65535 . Beim nächsten Impuls nimmt der Timer dann den Wert 0 an und zählt wieder bis 65535. Dieser sogenannte Überlauf kann dann benutzt werden, um in einer Interruptroutine zeitlich kritische Ereignisse auszulösen. Hier kann dann z. B. ein Tagezähler weitergesetzt werden. Im Prinzip ist es egal, ob man dann einen Controller mit 8-Bit-Timer oder 16-Bit-Timer zur Realisierung dieser Aufgabe einsetzt. Der Takt für den Timer sollte auf jeden Fall mit den zur Verfügung stehenden Vorteilern soweit wie möglich heruntergebrochen werden, d. h. der Timer wird dann nicht mehr mit z. B. 16 MHz sondern bei einem Teiler von 1024 mit 15625 Hz getaktet. Eine Interruptroutine würde bei einem 8-Bit-Timer dann alle 16ms ausgelöst. Im Interrupt muss dann zuerst eine Hilfsvariable erhöht werden. Soll der Controller sonst keine besonders zeitkritischen Aufgaben lösen wäre es auch sinnvoll, einen Quarz von z. B. nur 4 MHz einzusetzen. Ein kurzes Beispiel: >> Controller mit 8-Bit-Timer >> angeschlossener Quarz 4 MHz >> Vorteiler 1024 >> Timer wird mit 3906 Hz getaktet -> Periodendauer T = 256µs >> Timerstartwert = 22 >> Überlauf erfolgt alle 0,000256s * 234 = 60ms im Interrupt: >> Timer mit Startwert 22 neu laden >> wenn Sekundenzähler den Wert 1000 hat, dann Minutenzähler um eins weitersetzen >> wenn Minutenzähler den Wert 1440 hat, dann Tagezähler weitersetzen
Bis Du Dir das Grundwissen angeeignet hast, wäre wahrscheinlich wieder Schluss, also investiere das Geld und die Zeit lieber in ein romantisches Essen mit Ihr :)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.