Digitales Temperaturmeßgerät -Teil 2-

Heureka.

Es hat geklappt.

Es ging viel schief bis jetzt, aber ich habe ein funktionierendes Messgerät hier neben mir.

Zum Werdegang :

Ich wollte ursprünglich die gesamte Hardware aufbauen wie in einem Schaltplan vorgesehen und die dazu passende, fertige Software direkt übernehmen. Nach dem probeweisen Aufbau auf einem Steckbrett, funktionierte nichts. Das Display zeigte 8888 und der Sensor wurde tierisch heiß. Locker über 80°C bestimmt. Danach hab ich alles zur Seite gestellt und das wars.

digital_anzeige_BETA08digital_anzeige_BETA09

Hier seht ihr zum einen den Programmiereradapter für den attiny. Ich hatte noch keinen für 20Pins und zum anderen die fertige Schaltung, die nicht funktioniert hat 🙂

Als nächstes hab ich ein altes Experimentierboard rausgesucht. Das konnte man nur per LTP-Druckerport programmieren und da ich den nicht mehr habe an meinem Rechner, kam nur der Anschluss per Kabel an meinen usbtinyisp in Frage. Das ganze ging ganz gut, nachdem ich die Stromversorgung auch damit gemacht habe und nicht über das Strominterface des Boards.

digital_anzeige_BETA14

Nachdem ich ein paar Tutorials ausprobiert habe, um wieder damit vertraut zu werden, nahm ich den schon fertigen Teil vom Steckbrett und schloss alles so an, dass ich das erste Segment leuchten lassen konnte. Als nächstes kam dann das Ansprechen von zwei verschiedenen Elementen, aber immer noch das selbe Segment oder zumindest nur eines. Ich hab dann beide einfach hin und herspringen lassen 🙂
digital_anzeige_BETA16digital_anzeige_BETA21

Am nächsten Tag (zwischen den einzelnen Schritten vergingen manchmal mehrere Tage) hab ich dann alle Segmente und alle Elemente angeschlossen. Zugegeben , am Anfang fehlte mir ein Segment, so dass ich nicht alle Zahlen darstellen konnte. Aber im Schaltplan des Boards habe ich recht schnell die fehlenden D-Ports gefunden und konnte dann alle 7 Segmente ansprechen. Die Stromversorgung erfolgt dabei schon die ganze Zeit seperat über eine 9V Batterie und einem kleinen 5V Generator. Der wird im Gegensatz zu meinem alten auch nicht mehr brüllend heiß.

digital_anzeige_BETA25digital_anzeige_BETA26

Auf dem ersten Bild sieht man noch die einzig sinnvolle Anzeige mit den Zahlen, die ich darstellen konnte 🙂 Auf dem zweiten Bild schon einen laufenden Ticker, der gerade von 9999 runtergezählt hat.

Als letztes fehlte noch der Temperatursensor. Den konnte ich jetzt bequem an Port B anschließen, der mir die ganze Zeit freigeblieben war. Den Code zum ansteuern habe ich aus einem PDF übernommen, welches das wirklich sehr, sehr gut erklärt. Dabei geht es vor allem auf die zeitgenaue Ansteuerung ein. Programmiert wird das ganze in C. Hier ein Link : Link .

Ehrlich gesagt, hat das ganze nicht funktioniert. Ich habe nur eine 2 angezeigt bekommen und dann auch noch war das ganze sehr am flackern, was ich komisch fand, weil es ja ohne super funktioniert hat. Das tolle war aber, dass die 2 bei genügend warmer Belüftung des Sensors eine 3 wurde und beim Abstellen des selbigen wieder auf die 2 sprang. Das war der Hinweis das irgendwas funktionieren musste. Nach einiger Recherche und Rumprobieren mit verschiedenen Takteinstellungen , fiel mir zum Glück auf , dass das oben angegebene PDF den DS18B20 behandelte und nicht den DS18S20, wie ich ihn benutzt habe. Ein Blick in die Datenblätter zeigte , dass nicht viel unterschiedlich war, außer einem Detail. Die Temperatur wird anders formatiert übertragen. Der S- Sensor ist nämlich viel ungenauer als der B. So habe ich das zumindest verstanden. Deshalb nutzt der B-Sensor auch viel mehr der Bits, die übertragen werden um die Temperatur zu kodieren. Also musste ich nicht viel ändern und tada, die richtige Temperatur wurde angezeigt. Leider immer noch sehr flackerig. Trotzdem toll.

Das flackern lag am Ende daran, dass der Sensor ganze 750 ms braucht um ein Temperatursignal zu errechnen. Das hält das gesamte Programm auf und somit wird das Display nicht mehr aktualisiert. Dadurch entstand das Flackern. Helfen musste mir ein Crashkurs in interrupts. Das sorgt jetzt dafür, dass das Display jetzt alle 2 1/2 Sekunden oder so ausgeht und nach 750 ms wieder 2 1/2 Sekunden die aktuelle Temperatur anzeigt. Das sieht aus wie ein alter digitaler Wecker, finde ich 🙂 Damit ihr die ganze Pracht sehen könnt, habe ich es als 720p Video auf youtube hochgeladen..

Zuletzt versuche ich es doch nochmal das ganze mit dem alten IC zusammen zu löten und in ein schönes Gehäuse zu verpacken. Bis jetzt ist das wohl mein selbstständigstes und längstes Projekt gewesen und das sollte geehrt werden.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.