DS18B20 Tester mit LCD

  • In einem Projekt kam es immer mal wieder zu merkwürdigen Problemen. Nachdem ich alle Ursachen ausgeschlossen habe, kam ich auf die Idee, dass es evtl. am Temperatursensor liegen könnte. Tatsächlich, er war ootB defekt. Seitdem überprüfe ich jeden DS18*20, bevor ich ihn verbaue.

    Damit nicht jedes Mal eine (fehleranfällige) fliegende Verdrahtung neu aufgebaut werden muss, habe ich dazu jetzt eine kleine Platine entwickelt. Sie wird von hinten auf ein 1602 (oder 2004) LCD gelötet. Auf der Platine werkelt ein ATMega8 (88, 168 oder 328 wären auch möglich), der sowohl den DS18B20 testet, als auch das Ergebnis auf das LCD ausgibt. Helligkeit und Kontrast des LCD werden direkt im Sketch hinterlegt (so meine ursprüngliche Idee, Details folgen mit der zweiten Version der Hardware).

    Das LCD zeigt an, um welchen Typ DS18*20 es sich handelt, welche ID er hat und was er im Augenblick misst.

    Da ich bei der anfänglichen Entwicklung dieses Projektes ein Problem bei der Abfrage des DS18*20 hatte, dachte ich auf Grund meiner ungenügenden Softwarekenntnisse zuerst an ein Softwareproblem und bat daher dreamshader mal einen Blick auf meinen Sketch zu werfen. Letztlich war es aber doch nur ein dusseliger Fehler in der Hardware, den ich behoben habe.

    Er aber fand das Projekt interessant und hatte noch viele weitere Ideen. Die habe ich in einer zweiten Version der Platine (Fotos folgen) umgesetzt.
    Was ich aber nicht ahnte, war, dass er aus meinen noch nicht einmal 200 Zeilen Software ein Programm entwickelt hat, dass inzwischen fast 2600 Zeilen Code umfasst und bei allen aktivierten Optionen einen ATmega 328 benötigt.

    Zur Firmware von dreamshader geht es hier entlang.

    An dieser Stelle ein fettes :danke_ATDE: :danke_ATDE: :danke_ATDE:

    Der hier zu sehende Prototyp läuft mit einem ATmega88. Der Hinweis in der ersten Zeile wechselt sich ab. Die Schrift in der zweiten Zeile läuft durch. Drückt man den Taster, wird der Sensor mit 5V versorgt und ausgelesen. Die Anzeige erfolgt für etwa 5 Sekunden. Danach wird die Stromzufuhr zum Sensor wieder abgestellt, so dass man während des Betriebes einen anderen Sensor einsetzen kann.

    Wer Interesse an der Platine hat, darf sich gerne per PN bei mir melden. Bei Bedarf bestücke ich sie auch.

  • hihi, deine USB Kabel sind auch gekommen?

    tolle Sache, aber du bist ja der Platinenbauer, ich habe mich nun mit Arduino Steckbrett und Nokiadisplay angefreundet,
    muss noch mal aufbauen, dein LCD hat den charmanten Vorteil das die Seriennummer direkt aufs Display in eine Zeile passt, beim Nokia müsste man die 16 Zeichen ja splitten.

    PS, habe deine beiden LCD Platinen wiedergefunden, müsste endlich mal die Version rausfinden und ein LCD ranhängen.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Jep, wie man sehen kann, hat amazon zuverlässig schnell geliefert. Danke noch mal an Zentris für den Tip!
    Steckbretter sind eine feine Sache, aber bei zu vielen Verbindungen verliere ich regelmäßig den Überblick. Hut ab, vor Deinem Projekt. So sauber sieht das bei mir irgendwie nie aus :s :s


  • .... So sauber sieht das bei mir irgendwie nie aus :s :s

    der Vorteil, Uhr und Nokia brauchen keine weiteren Verbindungen und andere mache ich mit farbigen Schaltdraht passend gekürzt statt langer wilder Steckbrücken

    attachment.php?aid=1792

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Von der Hardware her wird es einen Lötjumper geben, mit dem man zwischen 1602 und 2004 LCD wählen kann. Rx/Tx sind ausgeführt und somit zugänglich. Es wird ein 2x3pin 2.54mm ISP Anschluss vorhanden sein, damit jeder Zugriff auf den µC bekommen kann. Zusätzlich eine LED, die anzeigt, ob am Sensor Spannung anliegt oder nicht. Statt des Tasters wird es einen Drehimpulsgeber (mit integriertem Taster) incl. Hardwareentprellung geben.

    Die passende Software mit entsprechenden Features beschreibt dreamshader am besten selber.

  • Servus,
    naja ... angedacht ist ein Menü ... wahlweise über UART oder dem LCD. Ein Punkt wird ein Testlauf eines Sensors sein, der ausführlichere Informationen ausgibt, wie z.B. die Auflösung (9 bis 12 bit) ...
    Dann sollen Helligkeit und Kontrast individuell angepasst werden und im EEPROM gespeichert werden können.
    Zusätzlich sollen halt die einzelnen Funktionen explizit ansteuerbar sein ... also Sensor einschalten/ausschalten ... vielleicht noch ein paar sensorspezifische Funktionen.
    Ein Punkt wird das Rücksetzen auf Werkseinstellungen sein.
    Die Liste ist im Moment noch dynamisch ...

    Ob und und vor allem wie das dann auf einem 2004 oder gar einem 1602 dargestellt werden kann, exisitiert im Moment nur als grobe Idee.
    Zur Steuerung ist der DIG da ... also Klick/Doppelklick/rechts/links.

    Also im Grunde nix weltbewegendes ...

    Da aber relativ viel Text benötigt wird, muss die MCU mehr hergeben als ein MEGA8 ... inwiefern sich das dann auf einen 168er eindampfen lässt, wird sich zeigen. Tendenziell wird's wohl ein ATMEGA328 ...

    Der sketch wird derselbe sein, wie für die aktuelle MEGA8 Version und dann wohl auch auf github landen, sofern Neueinsteiger damit einverstanden ist.

    cheers,
    -ds-

  • Es gibt eine neue Version der Platine. Die Funktionalität ist identisch mit der ersten Version. Allerdings wurde eine LED neben dem Sockel hinzu gefügt, so dass man nun erkennen kann, wie lange Spannung am Sensor anliegt. Ist die LED aus, kann man den Sensor gegen einen anderen tauschen, ohne die gesamte Schaltung abschalten zu müssen.

    Zusätzlich wurde ein ISP Anschluss vorgesehen. Auch sind jetzt Rx/Tx über Lötanschlüsse erreichbar. Über den neuen Lötjumper lässt sich nun auswählen, ob ein 2004 oder ein 1602 LCD angeschlossen sind.

    Die nächste Version wird zur Steuerung einen Drehimpulsgeber nutzen. Mehr dazu in den nächsten Tagen.

  • Servus,
    die ist jetzt noch mit dem MEGA8, oder?
    Ich überleg' halt grad, wie ich dem sketch mitteile, dass zwar ein MEGA8 die Zielplattform ist, aber Hardware-Serial verfügbar ist ...
    #ifdefs hätte ich zwar schon, aber das werde ich, glaube ich, nicht automatisch abdecken können.
    Hab' ich da irgendeinen Anhaltspunkt (Pin, Jumper, ...)? :s

    cu,
    -ds-


  • Es gibt eine neue Version der Platine.

    upps, hättest mich mal angepingt


    Die Funktionalität ist identisch mit der ersten Version. Allerdings wurde eine LED neben dem Sockel hinzu gefügt, so dass man nun erkennen kann, wie lange Spannung am Sensor anliegt. Ist die LED aus, kann man den Sensor gegen einen anderen tauschen, ohne die gesamte Schaltung abschalten zu müssen.

    warum bei diesen kurzen Strecken?

    mit VCC und GND auf GND und 4,7k -> 5V oder 3,3k -> 3,3V auf Data würde der auch zum Testen laufen, da könnte man auch ohne Spannung abschalten tauschen, das eine mögliche mA zerschiesst keinen DS
    allenfalls ein Taster zum Start, neu einlesen und ansprechen wäre dann noch nötig.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • @ds: Ja genau, da sitzt der ATMega8, bzw. 88 drauf. Ich könnte eine kleine Lötbrücke von A1 auf GND anbieten.

    jar: Die Idee der Strombegrenzung ist nicht schlecht. Viele Wege führen nach Rom. Die abgeschaltete Spannung ist eine Sicherheitsmaßnahme, damit unter anderem mögliche Kurzschlüsse beim Tausch des Sensor nicht zu einem Defekt der Schaltung oder des Sensors führen.


  • jar: Die Idee der Strombegrenzung ist nicht schlecht. Viele Wege führen nach Rom. Die abgeschaltete Spannung ist eine Sicherheitsmaßnahme, damit unter anderem mögliche Kurzschlüsse beim Tausch des Sensor nicht zu einem Defekt der Schaltung oder des Sensors führen.

    aber wenn man eine LED beobachten MUSS ist Fehlbedienung nicht immer vermeidbar, von daher ........

    Mir gefällt parasitäte Speisung über Data mit Rv halt besser ;)

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Die LED dient nur der visuellen Kontrolle. Solange die Werte des Sensors im LCD angezeigt werden, leuchtet die LED.
    Der Sensor ist mit einem 4K7 Pullup von der Datenleitung beschaltet. So kann ich sicher sein, dass es keine Übertragungsprobleme gibt, für den Fall, dass das Layout der Platine nicht 100% dem Optimum an Störsicherheit entspricht. Bei den bisherigen Tests gab es diesbezüglich noch nie Probleme.


  • ....Bei den bisherigen Tests gab es diesbezüglich noch nie Probleme.

    da zweifel ich keine Sekunde, passt schon, es ging mir ja eher um unter Spannung stecken bei Fehlbedienung.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Servus ...


    @ds: ... eine kleine Lötbrücke von A1 auf GND anbieten.

    das ist eine Idee ...
    Dann sehen wir das mal so vor. Wird sich zeigen, ob das verlässlich klappt.

    jar: Ich hab' den Aufbau auf nem Breadboard mit einem Pro Mini nachgebaut und Sensoren auch schon "unter Strom" gewechselt ... da passiert eh nix.
    Das mit dem Strom weg hat u.a. auch den Hintergrund, dass der Bus dann einen reset macht und der Sensor verlässlich erkannt und ausgelesen wird. ;)

    //EDIT: das mit der Lötbrücke probieren wir bei Gelegenheit. Ob das Sinn macht sehen wir dann, denn wenn der sketch mit dem ganzen seriellen I/O nicht mehr auf den MEGA8 passt, muss ich mir eh noch was einfallen lassen.

    ciao,
    -ds-

  • nun ja, ich las nur der Atmel schaltet die Spannung ab, ob dem DS was passieren kenn weiss ich nicht und dem Atmel sollte auch nichts passieren nach Möglichkeit, aber entweder extern strombegrenzt wie mit dem Data pullup oder nur durch den Controller, mag sich jeder selber denken was besser ist.

    So gesehen schaltet ja auch einer die Steckdose ab ohne das was passiert beim Kurzschluß :)

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Edited once, last by jar (May 15, 2017 at 10:21 AM).


  • Das Problem ist damit nicht gelöst. Gerade die DS18B0 aus Fernost sind nicht immer zuverlässig. Ich hab zig davon verbaut in diversen Pi's. Entweder sind sie direkt schon im Eimer und geben gar keine oder Phantasiewerte aus, hatte auch schon welche die erst nach 14 Tagen aufgeben bzw. nicht mehr richtig messen. Die wasserdichten mit Anschlusschnur dran sind auch nicht besser. 1 von 5 säuft ab. Das ist zumindest meine Quote. Mit deiner Schaltung findest du die die eine Fehlfunktion haben, das schützt dich aber nicht vor Ausfall im laufenden Betrieb. Um zu testen ob die Sensoren zuverlässig sind müsste man min. 14 Tage am Stück testen und protokollieren. Aber zum initial testen ob der DS18B20 reagiert ist die Schaltung natürlich schön :)

  • bei mir haben sich die Sensoren nach 5 Jahren im AP verschoben und ich musste von 2,2k auf 1,5k Pullup verkleinern, ist für mich noch verzeihlich

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!