Tiny Uhr
Eigentlich
habe ich nur aus reinem Interesse mit dem Temperatursensor TSIC206
gespielt. Da aber nach der Programmierung des Thermometers noch jede
Menge Platz auf meinem 16*2 LCD war, habe ich gleich noch eine
Uhr mit Kalender programmiert, die nun meinen Schreibtisch ziehrt
. Das ganze passt locker
in einen Tiny2313. Die einseitige Platine ist in der
Breite dem LCD angepasst und wird Huckepack mit M3 Gewindebolzen mit
dem LCD verschraubt. Da ich keine RTC oder andere
Spezialbauteile benutzt habe, ist die Genauigkeit der Uhr von dem
verwendetem 8 MHz Quarz abhängig. Ich habe vor nach einer gewissen Zeit
(wenn ich die Abweichungen genau kenne) einen Softwareabgleich
durchzuführen. Beim vergleich mit der Uhr vom Videotext geht sie nach
24 Stunden ca. 3,5 Sekunden vor.

Wie
man im Bild oben sieht, habe ich dem verwendeten Temperatursensor
Tsic206 eine Hülle spendiert. Optimal geeignet war der
Druckknopf eines Kugelschreibers, den ich mit
2-Komponentenkleber gefüllt und den Tsic samt 100nF Kondensator so
eingeschlossen habe.
Links im Bild sieht man den Sensor noch nackt. Zwischen den beiden
äusseren Pins (VCC und GND) sitzt der 100nF Kerko (ein SMD
0805) der durch das orange Kabel (Datenleitung) verdeckt wird.
Der
Tsic206 ist als Zugabe zu einer Uhr wohl mehr als
ausreichend. Er hat einen Temperaturbereich von -50° bis +150°
Celsius, eine Auflösung von 0,1° und eine Genauigkeit von Typ. 0,3°
(max. 0,5°) im Bereich von 10 bis 90° Celsius.
Besonders jedoch gefällt mir die handliche Bauform und das einfache
Protokoll (genannt Zacwire).
Hier kurz das wesentliche:
- Alle Einstellungen der Uhr werden über einen Drehgeber gemacht.
- Der Wochentag wird aus Datum berechnet
- Automatische Uhrumstellung zur Sommer und Winterzeit
- Wecker
- Thermometer
- LCD - Hintergrundbeleuchtung in 8 Stufen dimmbar
Schaltplan
Da
ich die Uhr mit einem 9V Steckernetzteil betreibe ist ein 7805
Spannungsregler mit auf der Platine. Eigentlich hätte da auch die 100mA
Version (78L05) gereicht, jedoch hatte ich nur den
Standarttyp zur Hand. D1 ist als Verpolungsschutz gedacht.
Wie man sieht wird das
16*2 LCD
im 4Bit Modus betrieben. An JP3 sellt man die Betriebsspannung für die
LED Hintergrundbeleuchtung ein. Da ich keinen Kühlkörper für
den
Spannungsregler eingebaut habe, habe bei mir eine feste Brücke
von
Pin2 - Pin3 eingelötet und habe somit 9V eingestellt. R5 ist dann 33
Ohm/1W. Bei 5V reicht 6,8 Ohm/1W. Den Kontrast stellt man wie üblich an
dem 10k Trimmpoti ein.
An JP2 wird der TSIC 206 angeschlossen, der (lt. Datenblatt) mit dem
RC-Glied 220Ohm/100nF zum AVR-Port B0..1 geführt wird. C8 ist zwar auf
der Platine vorhanden, braucht aber nicht bestückt zu werden da ich
diesen direkt an die Pins des Sensors gelötet habe (siehe oben).
Der Drehgeber (
Alps STEC12E08) ist an PB2-4 angeschlossen. Leider ist die
Achse des Drehgebers zu kurz, dafür gibt es aber Verlängerungen. Ich
habe zu diesem Zweck 2 Potiknöpfe mit 2-Komponentenkleber
übereinander geklebt, das hält solange, bis ich wieder bestelle .

Nicht
im Schaltplan zu sehen ist der Summer. Es sollte ein 5 Volt Exemplar
verwendet werden der bei anlegen der Gleichspannung summt. Dieser kann
am AVR ISP angeschlossen werden. Dazu verbindet man den VTG
Pin des ISP-Steckers mit dem + Pin des Summers, den - Pol des Summers
kommt an SCK (PB7 am Tiny2313). ACHTUNG: Im Schaltplan oben stimmen die
Nummern des ISP-Steckers und nicht die Reihenfolge.
Die Platine
... ist den maßen des
LCDs angepasst und ragt rechts unter diesem hervor damit der Drehgeber
bedient werden kann. Beim bestücken empfield es sich für die beiden
Drahtbrücken die unter dem Tiny2313 verlaufen isolierten Schaltdraht zu
nehmen, da C3 und R1 darüber liegen. Die Verbindungen von der Platine
zum LCD, habe ich mit
Buchsenleisten und
IC-Adapterleisten hergestellt, wobei man die Buchsenleisten
stapeln kann um auf die benötigte Höhe zu kommen. Diese ist
abhängig von den verwendeten Abstandsbolzen.

Der 7805 sollte um 90° gebogen eingebaut werden damit der Abstand zum LCD nicht zu hoch wird. Deshalb (wie ich) anstatt JP3 eine Drahtbrücke einbauen oder eine gewinkelte Pfostenleiste verwenden.
Da
meine Uhr in keinem geschlossenem Gehäuse eingebaut ist, habe ich mich
entschlossen erstmals chem. Zinn und Lötstoplaminat auszuprobieren. Ich
bin begeistert
. Das laminieren und entwickeln
klappte problemlos. Das nötige Material und die PDFs dazu, gibt es bei Oktamex.de. Die
Platine lies sich optimal löten, obwohl die Folie beim belichten
minimal versetzt war (Bild rechts kann vergrössert werden), da muss ich
wohl das nächste mal besser Aufpassen.
Stückliste
R1 | 10k | Widerstand 1/4 Watt |
R2 | 220R | Widerstand 1/4 Watt |
R4 | 1k | Widerstand 1/4 Watt |
R5 | Siehe Text | Widerstand 1 Watt |
R3 | 10k | Trimmpoti |
C1, C2 | 22pF | Keramikkondensator |
C3,C4,C6-C8 | 100nF | Keramikkondensator |
C5 | 47-220µF / 25V | Elko (je nach Restwelligkeit des Steckernetzteils) |
D1 | 1N4004 o.Ä. | Gleichrichterdiode |
Dr1 | Alps STEC12E08 | Drehgeber, Drehencoder, Rotary Encoder,
Drehimpulsgeber :-) Sinvoller währe ein Exemplar mit einer längeren Drehachse |
Q1 | Quarz 8Mhz | |
Q2 | BC547, BC237, o.Ä | NPN- Kleinsignaltransistor |
IC1 | AT Tiny2313 | DIP Version |
IC2 | LM7805 | Spannungsregler |
IC3 | TSIC206 | Temperatursensor + 100nF SMD Kerko (Bauart 0805) |
LCD1 | LCD 162C LED | LCD-MODUL 16X2 mit Beleuchtung |
Teile aus der Bastelkiste: Diverse Pinheader usw., Potiknopf, Abstandsbolzen mit passenden Schrauben, Muttern usw.,Anschlussbuchse für Steckernetzteil. *Ich hoffe ich habe nichts vergessen |
Bedienung
Nach dem Einstecken des Steckernetzteil, beginnt die Uhr bei 00:00:00 loszulaufen. Ist man nicht gerade beim einstellen der Uhr oder Alarm, kann mit dem Drehimpulsgeber die Hintergrundbeleuchtung eingestellt werden.
Uhr stellen
Ein langer Tastendruck (etwa 1 Sekunde) auf den
Drehimpulsgeber startet das Setup.
Nun kann Datum und Uhrzeit durch drehen eingestellt werden.
Übernommen werden die Daten durch drücken auf den Drehgeber.
Wecker
Um den Wecker zu stellen muss innerhalb 1 Sekunde, 2 mal kurz
auf den Drehgeber gedrückt werden (Doppelclick). Danach kann man die
Stunden und Minuten (wie oben) durch rechts und linksdrehen einstellen.
Ist der Alarm eingeschaltet, ist im Display unten rechts ein kleiner
Lautsprecher zu sehen (Sonderzeichen, sichtbar im Bild ganz oben).
Der Alarmton dauert eine Minute, falls dieser nicht durch vorzeitiges
drücken abgebrochen wird. Der Summer wird anfangs mit kurzen Impulsen
(im Sekundentakt) angesteuert. Je mehr Zeit vergeht, ohne das der Alarm
abgebrochen wird, desto länger (und somit auch lauter) werden die Töne.
Dauert der Alarmton mehr als 24 Sekunden an, wird auch noch die
Frequenz verdoppelt (die Töne kommen alle halbe Sekunde) sodas der
Summer schon mächtig nervt .
Fuse-Bits
Beim programmieren des Tiny müssen die Fusebits auf den externen Quarz von 8 MHz eingestellt werden. Also auch die CKDIV8 Fuse nicht vergessen auszuschalten.
Beispiel der Fuse-Bits Einstellungen im AVR-Studio 4.19

Soll der Tiny2313 mit einer anderen Brennsoftware wie z.B. Ponyprog programmiert werden, hilft http://www.engbedded.com/fusecalc/ weiter. Hier kann man nach auswählen des Tiny 2313 die 3 Hexwerte (FF,DF,FF) eintragen und nach klicken von Apply Values die Haken für Ponyprog und die Kommandozeile für AVRDUDE ablesen.
Download
Eagle Dateien,ASM und Hex File
Viel Spass beim Basteln, Jürgen