Weitere Informationen zum Ultraschallsensor HC-SR04 findet man unter
Der HC-SR04 Ultraschallsensor ist um ein Vielfaches billiger als der PING))) Sensor der Fa. Parallax und steht in den Leistungsdaten diesen um nichts nach. Wer also ein wenig auf das Geld achten muss, ist mit diesem Sensor bestens bedient.
Die vier Daten- und Versorgungsleitungen müssen nur richtig verdrahtet werden und schon lassen sich Abstands- und Entfernungsmessungen durchführen. Dazu ein Blick in das Datenblatt.
Der Anschluss Trig wird mit P6 und Echo mit P8 des Propeller Controllers verbunden. Den Triggerimpuls erzeugen wir über den Befehl
mit den Argumenten
pin: I/O Pin des Controllers
time: Impulslänge
Bei einer minimalen Impulslänge von 10µs (vom Hersteller vorgegeben), wählen wir hier 12µs. Der Anschlusspin ist P6.
Die Abfrage des Echopin an P8 erfolgt über den Befehl
mit den Argumenten
pin: I/O Pin des Controllers, an dem das Signal vom Sensor einläuft.
state: Status des Pulses (1 für Spannungssprung von HIGH nach LOW (fallende Flanke), 0 für einen Spannungssprung von LOW nach HIGH (steigende Flanke))
Der Echopin wird vom Sensor auf HIGH gesetzt, deshalb wählen wir hier für state die 1 und den Pin P8 (Echo vom HC-SR04).
Das folgende Programm erfüllt alle Bedingungen für eine einfache Messwertdurchführung. Die Zeit wird in diesem Fall über ein Oszilloskop (PicoScope 2205A MSO mit digitalen Kanälen) an P8 gemessen.
Schaltungsaufbau
Das Programm in Prop-C
Gleiche Ergebnisse erzielt man mit dem Arduino und dem Sensor HC-SR04. Das Arduino-C Programm ist etwas aufwändiger, da die Funktion pulse_out dort nicht vorhanden ist. Sie lässt sich in diesem Fall leicht nachbilden. Die ersten drei Programmzeilen in der Methode loop() setzen dies um. Zum Vergleich hier das Arduino C Programm..
Das Programm in Arduino-C
Mit Hilfe eines Oszilloskops erfassen wir die Laufzeiten des Echosignals. Die Bedeutung der beiden Signale erklärt die zweite Abbildung.
Die blaue Kurve zeigt die Signale am Controller-Anschluss P6 (TRIG des Ultraschallsensors), die rote Kurve die am Controller-Anschluss P8 (ECHO des Ultraschallsensors). Das Triggersignal zum Aktivieren des Sensors ist kurz (ca. 12 µs). Nach einer Pause von ca. 250µs sendet der HC-SR04 automatisch ein 40kHz Burstsignal (Ultraschallsignal) von 200µs Dauer. Danach wird der Echo-Ausgang am Sensor auf HIGH gesetzt und vom Eingang P8 des Propeller Controllers über den Befehl PULSE_IN als HIGH erkannt. Sobald das am Hindernis reflektierte Ultraschallsignal am Sensor eintrifft, setzt dieser seinen Echo-Ausgang auf LOW, was vom Eingang P8 des Controllers ebenfalls erfasst wird.
Die Hin- und Rücklaufzeit t des Echosignals in der Einheit µs wird über das Programm in einer Variablen t abgelegt (Zeile 20 im Programm) und kann im Programm weiter verarbeitet werden.