Aller guten Dinge sind… 1-Wire Ultraschall Entfernungsmesser, ein neuer Ansatz

Eigentlich war ich mit der letzten Version (Link) schon sehr zufrieden, doch wurde ein IC eingesetzt welches nicht unbedingt günstig und gut beschaffbar war. Also habe ich das ganze Konzept noch einmal überarbeitet und es ist eine Lösung entstanden die gut funktioniert und günstig ist.

Die neue Platine wird so aussehen…
1-Wire-US-Abstandsmesser-mit-Fake-DS18B20-PCB Aller guten Dinge sind... 1-Wire Ultraschall Entfernungsmesser, ein neuer AnsatzDa ich angesprochen wurde doch mal wieder Platinen zu entwickeln deren 1-Wire Bausteine direkt ohne Umwege (z.B. Loxberry) zu gehen mit der Loxone 1-Wire Extension nutzbar sind emuliere ich diesmal einfach einen DS18B20 Temperatursensor welcher zu allen Systemen kompatibel sein sollte die den 1-Wire Bus einsetzen.

Es gibt mit der OneWireHub Library eine gute Bibliothek die in der Arduino IDE eingebunden werden kann (link siehe weiter unten).

Wie funktioniert das alles jetzt?

Ein Mikrocontroller vom Typ ATMEGA168 oder ATMEGA328 ermittelt die Entfernung mit Hilfe z.B. eines HC-SR04 Moduls, dann wird ein echter DS18B20 abgefragt und so die aktuelle Umgebungstemperatur ermittelt.

Die Entfernung wird nun passend zur Temperatur korrigiert und es werden 2 emulierte DS18B20 auf den 1-Wire Bus geschaltet.

Der erste emulierte DS18B20 hat die ID des echten DS18B20 und liefert auch den aktuellen Temperaturwert, der zweite emulierte DS18B20 bekommt eine ID die sich aus teilen der des echten DS18B20 zusammensetzt, und liefert statt der Temperatur einfach die Entfernung in Metern zurück.

Die Angabe von Metern ist notwendig da der DS18B20 nur bis 125°C messen kann und somit nur Wert bis max 125 übertragen werden können (sollten) um die Kompatibilität zu gewährleisten.

Zum Auslesen des echten DS18B20 nutze ich die in der Arduino IDE verfügbare 1Wire Library, zur Abfrage des Ultraschall Sensor eine Library welche unter folgendendem Link zu finden ist.

Link: https://github.com/Martinsos/arduino-lib-hc-sr04

Die OneWireHub Library findet man unter diesem Link https://github.com/orgua/OneWireHub.

Zur Zeit habe ich die Schaltung nur auf dem Steckbrett aufgebaut und teste den Dauerbetrieb, es sieht jetzt nach 3 Tagen sehr stabil aus.

Weiter geht es…

Die ersten Platinen sind da und gelötet 🙂

Fertig aufgebaut sieht der Entfernungsmesser jetzt so aus…
1-Wire-US-Abstandsmesser-mit-Fake-DS18B20-fertig Aller guten Dinge sind... 1-Wire Ultraschall Entfernungsmesser, ein neuer AnsatzNun folgt noch ein Dauertest dieser Version und dann folgt hier der Code.

Verlinke diesen Beitrag:

<a href="https://blog.thomasheldt.de/aller-guten-dinge-sind-1-wire-ultraschall-entfernungsmesser-ein-neuer-ansatz/">Aller guten Dinge sind… 1-Wire Ultraschall Entfernungsmesser, ein neuer Ansatz</a>

2 Gedanken zu „Aller guten Dinge sind… 1-Wire Ultraschall Entfernungsmesser, ein neuer Ansatz

  1. Markus

    Hallo Thomas,
    warum nutzt Du nicht die Hinter-Komma-Stellen um die Auflösung zu verbessern?
    D.h. z.B. 12.2°C = 122 cm
    Viele Grüße
    Markus

    Antworten
    1. Thomas H. Beitragsautor

      Hallo Markus,

      mache ich ja, der emulierte DS18B20 hat 3 Stellen nach dem Komma.

      Also z.B.: Die gemessene Entferunung ist 243cm dann gibt der emulierte DS18B20 2,43 als Wert raus.

      Gruß
      Thomas

      Antworten

Schreibe einen Kommentar zu Markus Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.