Schwarz auf Weiß

Auch als Buch mit dem Titel '10 Selbstbauprojekte', ISBN-Nr. 978-3-7448-3433-9 und als e-book mit der ISBN-Nr. 9783744806299 erschienen.

Besuchen Sie auch meine Art site https://khomet.de

Samstag, 25. April 2020

Ultraschall Entfernungsmesser mit Temperaturkompensation

Inhaltsverzeichnis

Motivation
Aufbau und Funktion
Software
Entwicklungsumgebung
Downloads
Quellen
Ausblick


Motivation
Die Idee war, mit geringem technischen Aufwand einen einfachen Distanzsensor mit Temperaturkompensation zu realisieren. 

Aufbau und Funktion
Bei diesem Projekt wurden der Arduino Nano, der Ultraschallsensor HC-SR04 und der Temperatursensor DS18B20 eingesetzt. Der Trigger-Anschluss des HC-SR04 wird mit A1 und der Echo-Anschluss mit A2 des Arduino Nanos verbunden. Eine Bibliothek ist zur Ansteuerung nicht notwendig, da der Nano lediglich den Trigger anstossen muss. Zeitversetzt, entsprechend der Distanz und somit der Ultraschalllaufzeit in Luft, erscheint an A2 dann das Echo-Signal. Die Laufzeit wird vom Nano in cm umgerechnet. Da die Schallgeschwindigkeit stark temperaturabhängig ist (ca. 0,6 m/s / °C) wird mit dem DS18B20 fortlaufend die Temperatur gemessen und die Laufzeit entsprechend korrigiert. Der DS18B20 ist über die 1-Drahtschnittstelle mit D2 verbunden. Hier werden die Bibliotheken DallasTemperature.h und OneWire.h benötigt. Die Stromversorgung und die Programmierung geschieht über den USB-Anschluss des Nano. Das Projekt ist ohne Problem auch auf dem Pro Mini lauffähig, allerdings muss dieser z. B. über einen Nano per ISP programmiert werden, da er keinen USB-Anschluss hat. Mit dem seriellen Monitor wird die aktuelle Entfernung angezeigt. Die Baude Rate beträgt 115200.

Schaltbild
Praktischer Aufbau

Software
Um das Signal zu beruhigen, wird ein gleitender Mittelwert aus drei Werten gebildet. Mit Wichten kann die Reaktion noch beeinflusst werden. Bei der Berechnung der Entfernung ist zu berücksichtigen, dass der Schall den doppelten Weg zurücklegt.

Entfernung temperaturkompensiert:



Schallgeschwindigkeit temperaturkompensiert:




Sleep wird realisiert mit dem internen Watchdog Timer WDT. Mit den Flags WDP0, WDP1, WDP2 und WDP3 kann die Zeit bis zur Auslösung des Watchdog Alarms gewählt werden.




Entwicklungsumgebung
Arduino IDE 1.8.5


Einstellungen in Werkzeuge
Die passende COM wird im Gerätemanager durch Abziehen und Anstecken des USB-Anschlusses zum Nano ermittelt.


Downloads
fritzing Schaltbild:


Quellen
Github Library MilesBurton, DallasTemperature.h
Github Library PaulStoffregen, oneWire.h
Funduino Sketch Nr.11: Entfernung messen


Ausblick
Eventuell ist ein Einsatz aus aktuellem Anlass als Abstandssensor zur Einhaltung der minimalen 1,5 m denkbar, da der Sensor bis 5 m messen kann. Dazu könnte ein Arduino mit weniger Stromverbrauch und z. B. eine Lithiumzelle mit 3,7 V eingesetzt werden. Mit dem Nano wird eine Gesamtstromaufnahme von ca. 28 mA erreicht. Ebenso könnte der Arduino schlafen gelegt und z. B. durch einen Timer wieder aufgeweckt werden. Gut geeignet wäre auch das LilyPad-System für Kleidung. Die Unterschreitung des Abstandes könnte mit einer LED signalisiert werden. Ohne die Messung zu beeinflussen, kann eine Stoffschicht (Hemd) direkt über dem Sensor angeordnet sein. 


Keywords
#arduinonano #abstand #distance #temperaturkompensiert #Ultraschall #ultraschallsensor #Entfernungsmesser #gleitendermittelwert #ultrasonic #distancesensor