Moin, als Followup zu meinen Beitrag "LED Display NSM4202" kommt hier das Projekt für das ich das LED-Display verwende: ein digitaler Kurzzeittimer, in meinem Fall vorgesehen zur Steuerung des im Bau befindlichen Platinenbelichters. Eckdaten: Zeitauflösung 1 sec. Maximum 99:59 min, weniger kann im Quellcode eingestellt werden (in der angehängten Version: 30:00 min). Schaltausgang ist ein 5V CMOS Pin. Der eingestellte Wert kann im EEPROM abgespeichert werden und steht dann nach dem nächsten Einschalten sofort zur Verfügung. Zur Bedienung gibt es einen Encoder (Alps EC11E, 30 Rastungen mit Button), ein Display im Format 88:88 und 3 Status-LED, die die 3 Betriebszustände anzeigen. Der Encoder hat ein Beschleunigungsverhalten, so daß man auch längere Zeiten relativ bequem einstellen kann. Funktion. Es gibt wie gesagt 3 grundlegende Betriebszustände: Bereit - grüne LED. In diesem Zustand kann durch Drehen am Encoder die Zeit verändert werden. Mit einem kurzen Tastendruck statet der Timer, mit einem langen Tastendruck (1 Sekunde oder mehr) wird die eingestellte Zeit im EEPROM gespeichert und der Zustand wechselt auf Fertig. Läuft - gelbe LED. Jetzt ist der Schaltausgang aktiviert und die Zeit läuft sekundenweise herunter. Nach dem Ablauf der Zeit oder nach einem Tastendruck wechselt der Zustand zu Fertig. Falls abgebrochen wurde, bleibt der aktuelle Zählerstand erhalten. Fertig - rote LED. Ein Tastendruck schaltet zurück auf Bereit. Falls der Zähler abgelaufen war, wird die Zeit bei der gestartet wurde wieder hergestellt. Als Hardware-Basis dient ein AT90S2313, der hier noch herumflog. Im Flash sind 1360 von 2048 Bytes belegt, im RAM 45 von 128 Bytes. Das angehängte tar.gz enthält Quellcode, Makefile, Schaltplan und Board. Ein Foto von der Unterseite der Platine ist bei o.g. Thread zum Display zu finden. XL
:
Verschoben durch User
hier kommt ein Firmware-Update. Wesentliche Neuerung ist ein akustischer Alarm mit mit einem Piezo-Buzzer, angeschlossen an PD3/PD5. Der akustische Alarm kann ein/ausgeschaltet werden (gemerkt im EEPROM) Zusätzliche Bedienfunktion: wenn die eingestellte Zeit != 0:00 ist, dann führt ein langer Druck wie bisher zum Abspeichern der Zeit im EEPROM. Wenn die Zeit hingegen 0:00 ist, dann führt ein kurzer Tastendruck zur Anzeige des Alarmstatus. Ein langer Druck wechselt zwischen "Alarm an" und "Alarm aus" und speichert die Einstellung im EEPROM. XL
Sollte man vielleicht besser in die Codesammlung verschieben.
Hallo, danke für die Veröffentlichung :-) wenn die Zeit und Lust hast wäre es zumindest für die "totalen" Anfänger nützlich wenn du das Progrogramm an einen ATiny 2313 (oder ähnliches) anpassen kannst - die se sind mittlerweile leichter und billiger zu bekommen. Alles kein großes Problem für jemanden der schon etwas Erfahrung hat, aber ich kann mich noch gut an die Zeiten erinnern an den ich froh war das ich es mit hilfe einer genauen Beschreibung geschafft habe den µC (AVR) mit den hex File zu brennen und die Fuses zu übernehmen (ohne genau zu wissen wozu diese gut sind). Also wenn du lust und Zeit hast... ;-) Zeitnehmer
Die Dioden hinter dem Netzteil sind verpolt (+/-)tauschen.
Moin, kritiker schrieb: > Die Dioden hinter dem Netzteil sind verpolt (+/-)tauschen. Danke für den Hinweis. Ich habe es geändert und auch im ersten Teil des Schaltplans den Piezo-Buzzer nachgetragen. Zeitnehmer schrieb: > wenn die Zeit und Lust hast wäre es zumindest für die "totalen" Anfänger > nützlich wenn du das Progrogramm an einen ATiny 2313 (oder ähnliches) > anpassen kannst - die se sind mittlerweile leichter und billiger zu > bekommen. Keine schlechte Idee. Die neue Firmware V1.2 (im Anhang) erlaubt jetzt die Verwendung des ATtiny2313 durch die Änderung einer einzigen Zeile im Makefile. Von dritter Seite gab es Gemaule, weil ich das Firmware-Archiv als .tar.gz verpackt habe. Da das auch nur eine Zeile im Makefile ist, habe ich es jetzt zu .zip geändert. Hoffentlich kommen jetzt auch Windows-Legastheniker damit zurecht :P XL
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.