Donnerstag, 21. Mai 2015

Entfernung messen mit einem Ultraschallsensor

Heute klingelte bei mir mal wieder der Postbote und brachte mir den Ultraschallsensor HC-SR04 . Ein Ultraschallsensor ist ein Sensor der einen Ton ausgibt (im Ultraschallbereich hört man ihn nicht) und schaut wie lange es dauert, bis der Ton wieder ankommt. Aus dieser Zeit kann er dann die Entfernung berechnen.

HC-SR04
Um ihn mal zu testen können wir einfach ein kleines Programm schreiben, dass eine Näherungsmeldung ausgibt, wenn ein Objekt sagen wir mal näher als 30cm ist.

Die Verkabelung

Glücklicherweise steht am HC-SR04 direkt drauf welcher Pin wofür ist. Von links nach rechts: Ground zum Ground, Echo zu einem digitalen Pin, Trig zu einem digital Pin und Vcc wieder an die 5V Spannungsversorgung. Ich habe digital Pin 7 für Trig und Pin 8 für Echo verwendet.

Die Funktionsweise und das Programm

Der Ultraschallsensor hat zwei Datenpins, wobei der Trig Pin dem Sensor mitteilt, dass dieser nun messen soll und der Echo Pin dem Arduino mitteilt wie lange der Schall vom Sensor weg und wieder zurück braucht. Damit der Sensor misst muss die Spannung am Trig Pin für 5 Mikrosekunden auf HIGH sein. Wenn man nun die Zeit misst, wie lange die Spannung am Echo Pin HIGH ist, so weiß man die Zeit die der Schall braucht. Zum Messen dieser Zeit gibt es die Funktion pulseIn(PIN, ZUSTAND);. Diese Funktion wartet bis der Pin auf den definierten Zustand geht und zählt die Zeit bis er ihn wieder ändert in Mikrosekunden. Wir können uns diesen Wert über die serielle Verbindung(siehe letzter Post: hier) ausgeben lassen. Der Sketch sieht dann so aus.
Nun müssen wir nur noch die LED mit dem kurzen Bein an den Ground anschließen, und mit dem langen Bein an einen Datenpin. Dazu dann im Programm eine if Abfrage.




Das Ergebnis ist dann, das ab 30 cm Entfernung oder niedriger die LED blinkt. Kurzes Video zur Demonstration:

video
Wozu werdet ihr euren Ultraschallsensor verwenden? Schreibt es in die Kommentare.

Keine Kommentare:

Kommentar veröffentlichen