Forum: Projekte & Code Thermometer 3-stellig (Assembler) ATmega8


von Bernhard (Gast)


Angehängte Dateien:

Lesenswert?

Ich wollte mal "schnell" ein Digital-Thermometer bauen,
als Geschenk-Idee für einen guten Freund, aber:

Die 7-Segment-LED-Display (SA-23, SC23) Bauhöhe 7cm, sind so hell, dass
man nachts ein Zimmer damit ausleuchten könnte.

Deshalb stattete ich das Thermometer mit einer internen Uhr aus, die
sich beim Einschalten automatisch auf 21.00 Uhr stellt, somit konnte
ich die Tasten zum Stellen einsparen.
Zwischen 23 und 5 Uhr arbeitet das Display im abgedunkelten Betrieb.

Besonderheiten zum 7-Segment-LED-Display (SA-23, SC23):

Die Flussspaunnung UF beträgt bei den Balken a...f ca 7V und beim DP
ca. 4V (also 5V reichen nicht aus, um die Balken zum leuchten zu
animieren).
Aber die Leuchtkraft ist sehr interessant, schon bei ca. 5mA pro Balken
wird man regelrecht geblendet.

Nun mein Tipp:

Die Balken des Display habe ich mit 8 Transistoren angesteuert, diese
kann man problemlos weglassen, somit entfallen 16 Bauelemente,
Transistor + Basiswiderstand.

Zum Assembler-Programm:
Jede Sekunde wird die Temperatur gemessen/berechnet, ein Mittelwert
gebildet (über 1 Minute) und die Uhrzeit berechnet.
Nach jeder vollen Minute erscheint für einige Sekunden die aktuelle
Stunde, damit man inetwa weiß, auf welcher Uhrzeit die interne Uhr
steht.

Noch ein Tipp:
Wird das Display zu schnell getaktet, dann treten seltsame Effekte auf,
z.B. die ausgeschalteten Balken werden nicht richtig dunkel, wird es zu
langsam getaktet, dann flimmert alles.

Als Dateianhang habe ich eingefügt:
 - Fuse-Bits
 - Schaltplan
 - Assemblercode für Quarz 4,096 MHz
 - hex -File
 - 2 Fotos

Bernhard

von crazy horse (Gast)


Lesenswert?

wie kommst du auf die Idee, die Segmenttreiber könne man weglassen? Kann
man nicht, dann bekommst du die 10V auf die AVR-Ports, wenn das Digit
eingeschaltet, das Segment aber aus ist.
Auf jeden Fall ist es höchst unsauber, meiner Meinung nach geht der AVR
davon sofort oder in kurzer Zeit ins Nirwana.
Aber einen ULN2803 könntest du dafür benutzen.

von Bernhard (Gast)


Lesenswert?

>dann bekommst du die 10V auf die AVR-Ports, wenn das Digit
 eingeschaltet, das Segment aber aus ist.

Die 10V liegen nicht am AVR-PIN an,
da ca. 6...7 Volt immer über das Segment "abfällt" und
der Fluss-Strom in diesem Zustand nur wenige µA beträgt.
Und das kann der AVR verkraften.

>Aber einen ULN2803 könntest du dafür benutzen.
Danke für den Tipp

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
Noch kein Account? Hier anmelden.