Ultraschallsensor HC-SR04: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Kategorie:Arduino]] | [[Kategorie:Arduino]] | ||
[[Kategorie:Sensoren]] | |||
[[Datei:Ultrasonic-Sensor-1.jpg|thumb|rigth|300px|Abb. 1: Ultraschallsensor HC-SR04]] | [[Datei:Ultrasonic-Sensor-1.jpg|thumb|rigth|300px|Abb. 1: Ultraschallsensor HC-SR04]] | ||
'''Autoren:''' [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]], [[Tim Leonard Bexten|Tim Leonard Bexten]] | '''Autoren:''' [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]], [[Tim Leonard Bexten|Tim Leonard Bexten]] | ||
== Einleitung == | == Einleitung == | ||
Der HC-SR04 ist ein Ultraschall-Sensormodul, welches mit Hilfe eines Ultraschallimpulses, berrührungslos den Abstand zu einem Objekt messen kann. Das Ultraschallmodul hat einen Arbeitbereich von 2 cm bis zu 3 m. Es besitzt eine | Der HC-SR04 ist ein Ultraschall-Sensormodul, welches mit Hilfe eines Ultraschallimpulses, berrührungslos den Abstand zu einem Objekt messen kann. Das Ultraschallmodul hat einen Arbeitbereich von 2 cm bis zu 3 m. Es besitzt eine Auflösung von 3 mm. | ||
== Technische Übersicht == | == Technische Übersicht == | ||
Zeile 11: | Zeile 12: | ||
! style="font-weight: bold;" | Daten | ! style="font-weight: bold;" | Daten | ||
|- | |- | ||
| Spannungsversorgung<br/> || VCC 5 V / | | Spannungsversorgung<br/> || VCC 5 V / ±10%<br/> | ||
|- | |- | ||
| Stromaufnahme<br/> || < 2 mA<br/> | | Stromaufnahme<br/> || < 2 mA<br/> | ||
Zeile 32: | Zeile 33: | ||
|- | |- | ||
|} | |} | ||
== Pinbelegung == | == Pinbelegung == | ||
[[Datei:Pinout-hc-sr04.jpg|thumb|rechts|500px|Abb. 2: Pinbelegung des HC-SC04 Abstandssensor]] | |||
{| class="wikitable" | {| class="wikitable" | ||
! style="font-weight: bold;" | Pin | ! style="font-weight: bold;" | Pin | ||
! style="font-weight: bold;" | | ! style="font-weight: bold;" | Belegung | ||
! style="font-weight: bold;" | Signal | |||
|- | |- | ||
| | | 1 || Versorgungsspannung VCC || 5 V | ||
|- | |- | ||
| | | 2 || Triggereingang || TTL-Pegel | ||
|- | |- | ||
| | | 3 || Echo, Ausgang Messergebnis || TTL-Pegel | ||
|- | |- | ||
| 4 || Masse (GND) || 0 V | |||
|} | |} | ||
== Prinziperklärung == | == Prinziperklärung == | ||
[[Datei:Messablauf.png|thumb|rechts|500px|Messablauf des HC-SC04 Abstandssensor]] | [[Datei:Messablauf.png|thumb|rechts|500px|Abb. 3: Messablauf des HC-SC04 Abstandssensor]] | ||
Das Messprinzip des Ultraschallsensormoduls ist ein Laufzeitverfahren. Der Ultraschallsensor strahlt zyklisch einen kurzen, hochfrequenten Schallimpuls aus. Diese Schallwellen pflanzen sich mit Schallgeschwindigkeit in der Luft fort. Wenn nun die Schallwelle auf ein Objekt, im Messfeld des Sensors trifft, wird diese reflektiert. Die wieder beim Sensor eintreffende Schallwelle wird detektiert und die Zeit zwischen dem Aussenden und dem Wiedereintreffen gemessen. Aus der Zeit und der Schallgeschwindigkeit in einem bestimmten Medium (Luft) kann die Distanz zum detektierten Objekt errechnet werden. <br/> | Das Messprinzip des Ultraschallsensormoduls ist ein Laufzeitverfahren. Der Ultraschallsensor strahlt zyklisch einen kurzen, hochfrequenten Schallimpuls aus. Diese Schallwellen pflanzen sich mit Schallgeschwindigkeit in der Luft fort. Wenn nun die Schallwelle auf ein Objekt, im Messfeld des Sensors trifft, wird diese reflektiert. Die wieder beim Sensor eintreffende Schallwelle wird detektiert und die Zeit zwischen dem Aussenden und dem Wiedereintreffen gemessen. Aus der Zeit und der Schallgeschwindigkeit in einem bestimmten Medium (Luft) kann die Distanz zum detektierten Objekt errechnet werden. <br/> | ||
<math>Strecke = v_{Luft} \cdot \dfrac {t_{mess}}{2}</math><br/> | <math>Strecke = v_{Luft} \cdot \dfrac {t_{mess}}{2}</math><br/> | ||
Zeile 67: | Zeile 70: | ||
== Verwendete Software== | == Verwendete Software== | ||
[[Datei:HC-SR04Fritzing.png|thumb|rechts|300px|Anschluss des HC-SC04 Abstandssensor]] | [[Datei:HC-SR04Fritzing.png|thumb|rechts|300px|Abb. 4: Anschluss des HC-SC04 Abstandssensor]] | ||
Die für diese Sensoranalyse wurde folgende Software verwendet: | Die für diese Sensoranalyse wurde folgende Software verwendet: | ||
* Arduino IDE | * Arduino IDE | ||
* Excel 365 | * Excel 365 | ||
Zeile 78: | Zeile 79: | ||
== Bewertung der Sensordaten == | == Bewertung der Sensordaten == | ||
[[Datei:LaufzeitMessung.png|thumb|rechts|300px|Diagramm der Laufzeit über der Messdistanz]] | [[Datei:LaufzeitMessung.png|thumb|rechts|300px|Abb. 5: Diagramm der Laufzeit über der Messdistanz]] | ||
Mit dem Hardwareaufbau wurden nun wie im YouTube Video zu sehen, Tests durchgeführt. Es wurde der Abstand zu einem Objekt mit einer Breite von 28 cm und einer Höhe von 20 cm gemessen. Es wurden für jede Messreihe 1000 Laufzeitmessungen durchgeführt, welche in eine Exceltabelle überführt wurden. Nach jeder Messreihe wurde der Abstand sukzessive um 10 cm erhöht und die Messreihe erneut gestartet. <br> | Mit dem Hardwareaufbau wurden nun wie im YouTube Video zu sehen, Tests durchgeführt. Es wurde der Abstand zu einem Objekt mit einer Breite von 28 cm und einer Höhe von 20 cm gemessen. Es wurden für jede Messreihe 1000 Laufzeitmessungen durchgeführt, welche in eine Exceltabelle überführt wurden. Nach jeder Messreihe wurde der Abstand sukzessive um 10 cm erhöht und die Messreihe erneut gestartet. <br> | ||
Aus diesen Messwerten ließ sich ein Mittelwert der Laufzeiten bilden. Die Laufzeiten, wie in der Grafik zusehen, steigen linear mit dem Abstand an. Was den Erwartungen entspricht. Des Weiteren kann aus der großen Anzahl der Messungen, unter der Annahme dass die Messwerte gaußförmig verteilt sind eine Standardabweichnung berechnet werden. Darüber lassen sich Aussagen über die Genauigkeit einer einzelnen Messung treffen. Die Standardabweichung bei 20 cm Messdistanz betrug etwa 0,2 cm, hingegen bei 220 cm schon 1,4 cm. Das bedeutet bei steigendem Abstand kommt es zu größeren Fehlern bei der Messung der Laufzeit. Mögliche Ursachen für diese Fehler können sein, Reflektion der Schallwellen von Wänden, Temperaturschwankungen, Bewegeung der Umgebungsluft etc.<br> | Aus diesen Messwerten ließ sich ein Mittelwert der Laufzeiten bilden. Die Laufzeiten, wie in der Grafik zusehen, steigen linear mit dem Abstand an. Was den Erwartungen entspricht. Des Weiteren kann aus der großen Anzahl der Messungen, unter der Annahme dass die Messwerte gaußförmig verteilt sind eine Standardabweichnung berechnet werden. Darüber lassen sich Aussagen über die Genauigkeit einer einzelnen Messung treffen. Die Standardabweichung bei 20 cm Messdistanz betrug etwa 0,2 cm, hingegen bei 220 cm schon 1,4 cm. Das bedeutet bei steigendem Abstand kommt es zu größeren Fehlern bei der Messung der Laufzeit. Mögliche Ursachen für diese Fehler können sein, Reflektion der Schallwellen von Wänden, Temperaturschwankungen, Bewegeung der Umgebungsluft etc.<br> | ||
Zeile 93: | Zeile 94: | ||
== | == Datenblätter == | ||
*[[Medium:Ultraschallsensor HC SR04 Datenblatt.pdf|elecFreaks: Datenblatt HC-SR04]] | *[[Medium:Ultraschallsensor HC SR04 Datenblatt.pdf|elecFreaks: Datenblatt HC-SR04]] | ||
*[[ | *[[Medium:HC-SR04-datasheet-version-2.pdf|ITead Studio: Datenblatt HC-SR04]] | ||
*[[ | *[[Medium:Datasheet HC-SR04 ultraschallmodul.pdf|KT-elektronic: Ultraschall Messmodul HC-SR04]] | ||
*[[Medium: KY-050-and-HC-SR04-Utrasonic-Sensor-schematic.jpg|HC-SR04 Schaltplan]] | |||
== Videos == | == Videos == | ||
* {{#ev:youtube|https://www.youtube.com/watch?v=BEDGEZsV7IY| 600 | | Video 1: DE BitBastelei #327 - Abstandsmessung per Ultraschall: HC-SR04 mit Arduino|frame}} | * {{#ev:youtube|https://www.youtube.com/watch?v=BEDGEZsV7IY| 600 | | Video 1: DE BitBastelei #327 - Abstandsmessung per Ultraschall: HC-SR04 mit Arduino|frame}} | ||
* {{#ev:youtube|https://youtu.be/J5JUtGzJbeg| 600 | | Video 2: Tim Bexten - HSHL Mechatronik - Sensortechnik HC-SR04 Ultraschallsensor|frame}} | * {{#ev:youtube|https://youtu.be/J5JUtGzJbeg| 600 | | Video 2: Tim Bexten - HSHL Mechatronik - Sensortechnik HC-SR04 Ultraschallsensor|frame}} | ||
---- | ---- | ||
→ zurück zum Hauptartikel: [[HSHL-Mechatronik-Baukasten]] | → zurück zum Hauptartikel: [[HSHL-Mechatronik-Baukasten]] |
Aktuelle Version vom 2. November 2023, 11:06 Uhr
Autoren: Prof. Dr.-Ing. Schneider, Tim Leonard Bexten
Einleitung
Der HC-SR04 ist ein Ultraschall-Sensormodul, welches mit Hilfe eines Ultraschallimpulses, berrührungslos den Abstand zu einem Objekt messen kann. Das Ultraschallmodul hat einen Arbeitbereich von 2 cm bis zu 3 m. Es besitzt eine Auflösung von 3 mm.
Technische Übersicht
Eigenschaft | Daten |
---|---|
Spannungsversorgung |
VCC 5 V / ±10% |
Stromaufnahme |
< 2 mA |
Messbereich | 2 cm bis ca. 450 cm |
Messunsicherheit | 3 mm |
Messfrequenz | 50 Hz |
Erkennungswinkel | 15° |
Eingangstriggersignal | TTL-Impuls 10 µS |
Ausgangssignal | TTL Low aktiv |
Betriebstemperatur | -15 °C – 70 °C |
Abmessung (l,b,h) |
45 mm x 21 mm x 18 mm |
Pinbelegung
Pin | Belegung | Signal |
---|---|---|
1 | Versorgungsspannung VCC | 5 V |
2 | Triggereingang | TTL-Pegel |
3 | Echo, Ausgang Messergebnis | TTL-Pegel |
4 | Masse (GND) | 0 V |
Prinziperklärung
Das Messprinzip des Ultraschallsensormoduls ist ein Laufzeitverfahren. Der Ultraschallsensor strahlt zyklisch einen kurzen, hochfrequenten Schallimpuls aus. Diese Schallwellen pflanzen sich mit Schallgeschwindigkeit in der Luft fort. Wenn nun die Schallwelle auf ein Objekt, im Messfeld des Sensors trifft, wird diese reflektiert. Die wieder beim Sensor eintreffende Schallwelle wird detektiert und die Zeit zwischen dem Aussenden und dem Wiedereintreffen gemessen. Aus der Zeit und der Schallgeschwindigkeit in einem bestimmten Medium (Luft) kann die Distanz zum detektierten Objekt errechnet werden.
Messablauf
Der Messzyklus des Ultraschallmoduls wird durch eine fallende Flanke am Trigger-Pin ausgelöst. Bevor die fallende flanke detektiert werden kann, muss am Trigger-Pin zuvor erst mindestens für 10 μs ein High-Pegel anliegen. Im Anschluss auf die detektierte fallende Flanke, sendet das Modul 8 aufeinander folgende Ultraschallsignale, mit einer Frequenz von 40 kHz aus (Burst-Siganle). Diese Phase dauert 200 μs. Nachdem die Siganle ausgesendet wurden, wird der Echo-Pin sofort auf einen High-Pegel gesetzt und das Modul wartet auf die Rückkehr des Echos der Burst-Siganle. Wenn das Echo eintrifft, wird der Echo-Pin wieder auf einen Low-Pegel gesetzt. Die Triggerung des Trigger-Pins kann alle 20 ms erfolgen. Wenn kein Echo detektiert werden konnte, weil die Schallwelle zu großen teilen Absorbiert wurde, oder kein Hindernis in der nähe ist, so wartet das Modul 200 ms und zeigt die Erfolglose Messung somit an. Die Messung kann danach mit der fallenden Flanke am Trigger-Pin erneut gestartet werden.
Messgenauigkeit
Die Modulabhänige Messgenauigkeit, die mit 3 mm angegeben ist hängt mit der Abtastrate des Moduls zusammen. Des Weiteren ist bei Ultraschallmessverfahren die Temperatur der Umgebungsluft ein nicht unwesentlicher Faktor. Die Schallgeschwindigkeit in Luft bei 20 °C beträgt 343,5 m/s. Die Schallgeschwindigkeit lässt sich mit Hilfe der Formel:
Näherungsweise bestimmen, für den Temperaturbereich -20 °C bis 40 °C.
Es ist zu empfehlen, wenn größere Abstände genau ermittelt werden sollen, den HC-SR04 Ultraschallsensor mit einem Umgebungstemperatursensor zu koppeln und so die Schallgeschwindigkeit genauer bestimmen zu können.
Verwendete Software
Die für diese Sensoranalyse wurde folgende Software verwendet:
- Arduino IDE
- Excel 365
Hardwareaufbau
Das HC-SR04 Ultraschallmodul benötigt als Anschluss an den Arduino nur vier Leitungen. Der VCC-Pin des Ultraschallmoduls wird mit dem 5 V Anschluss des Arduinos verbunden und der GND-Pin mit dem GND am Arduino. Der Trigger-Pin und der Echo-Pin des Ultraschallmoduls werden an die Digitalen I/O Ports des Arduinos angeschlossen. In diesem Fall wird der Pin 8 des Arduinos mit dem Trigger-Pin verbunden und der Echo-Pin wird an Pin 9 des Arduins angeschlossen. Um nun das Ultraschallmodul, wie in Abschnitt Prinzieperklärung anzusprechen, muss der Pin 8 als digitaler Output und Pin 9 als digitaler Input deklariert werden.
Bewertung der Sensordaten
Mit dem Hardwareaufbau wurden nun wie im YouTube Video zu sehen, Tests durchgeführt. Es wurde der Abstand zu einem Objekt mit einer Breite von 28 cm und einer Höhe von 20 cm gemessen. Es wurden für jede Messreihe 1000 Laufzeitmessungen durchgeführt, welche in eine Exceltabelle überführt wurden. Nach jeder Messreihe wurde der Abstand sukzessive um 10 cm erhöht und die Messreihe erneut gestartet.
Aus diesen Messwerten ließ sich ein Mittelwert der Laufzeiten bilden. Die Laufzeiten, wie in der Grafik zusehen, steigen linear mit dem Abstand an. Was den Erwartungen entspricht. Des Weiteren kann aus der großen Anzahl der Messungen, unter der Annahme dass die Messwerte gaußförmig verteilt sind eine Standardabweichnung berechnet werden. Darüber lassen sich Aussagen über die Genauigkeit einer einzelnen Messung treffen. Die Standardabweichung bei 20 cm Messdistanz betrug etwa 0,2 cm, hingegen bei 220 cm schon 1,4 cm. Das bedeutet bei steigendem Abstand kommt es zu größeren Fehlern bei der Messung der Laufzeit. Mögliche Ursachen für diese Fehler können sein, Reflektion der Schallwellen von Wänden, Temperaturschwankungen, Bewegeung der Umgebungsluft etc.
Des Weiteren viel auf, dass der Ultraschallsensor bei Distanzen > 220 cm keine verlässlichen Daten mehr liefern konnte. Dies kann zusammenhängen mit der Größe des zu detektierenden Objektes oder wie eingangs erwähnt mit Störeinflüssen in der Umgebung.
Der Sensor kann stabil planare Objekte erkennen und die Distanz konkret bestimmen bis zu einem Abstand von etwa 220 cm. Bei Größeren entfernungen muss das zu detektierende Objekt auch größer werden. Die im Datenblatt angegebenen 300 cm Messdistanz sind nur dann möglich wenn das Objekt eine Wand oder ähnliches ist.
Gesamtfazit
In diesem Wikiartikel wurde das HC-SR04 Ultraschallmodul vorgestellt. Nach der Durchführung verschiedener Test im Einsatzbereich des Sensors wurde festgestellt, dass der Sensor einfach anzuschießen und zu programmieren ist. Die Daten die der Sensor liefert müssen erst von einer Laufzeit in eine Distanz umgerechnet werden, um einen Distanzwert zu erhalten. Im weiteren Verlauf des Testens viel auf, dass die angegebene Reichweite von bis zu 3 m in meinem Testaufbau nicht zu ereichen ist. Die detektierbaren Objekte müssen mit steigendem Abstand zum Sensor ebenfalls größer werden, um verlässliche Daten zu liefern. Außerdem vielen weitere typische Fehlerursachen von Ultraschallmessungen auf, wie zum Beispiel die Reflektion von Wänden und anderen Objekten, die sich seitlich von der Messstrecke befanden. Ebenso liefert der Sensor bei konvexen Oberflächen keine verlässlichen Resultate mehr, da die Schallenwellen von einem konvexen Objekt in alle Raumrichtung reflektiert werden und somit die Schallenergie schon bei kleineren Abständen nicht mehr ausreicht, um verlässliche Messwerte zu liefern.
Abschließend lässt sich sagen, dass das HC-SR04 Ultraschallmodul gute Messwerte im Bereich von 10 cm bis 200 cm liefert und mit einer Frequenz von etwa 50 Hz ansteuerbar ist. Der Sensor ist gut einsetzbar im Mitteldistanzbereich.
Lernerfolg
Bei der Arbeit mit dem HC-SR04 Ultraschallmodul konnte man sehr gut die, in der Vorlesung besprochenen Inhalte zum Thema Laufzeitverfahren zur Distanzbestimmung mit Hilfe von Ultraschall vertiefen. Des Weiteren war die Auseinandersetzung hilfreich für das in diesem Semester ebenfalls anstehende GET-Praktikum, in dem meine Projektgruppe ebenfalls das HC-SR04 Ultraschallmodul verwendet hat. Die Beschaltung des Moduls ist durch die interen Signalvorverarbeitung sehr benutzerfreundlich gelöst. Die Programmierung sowie die Auswertung der Messergebnisse die größere Herausforderung.
Datenblätter
- elecFreaks: Datenblatt HC-SR04
- ITead Studio: Datenblatt HC-SR04
- KT-elektronic: Ultraschall Messmodul HC-SR04
- HC-SR04 Schaltplan
Videos
→ zurück zum Hauptartikel: HSHL-Mechatronik-Baukasten