Besucher seit 10/07/2004
kostenlose counter
   

Im WWW Suchen

Benutzerdefinierte Suche
   

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.

Tiny-2313-Uhr

Tsic206Wie 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 .

Tiny2313 Uhr Schaltplan

TinyClock backNicht 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.

Tiny2313 Uhr Layout

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.

PCB realDa 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

Tinyclock Fusebits

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