www.mikrocontroller.net

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


Autor: Bernhard (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.