Heute möchte ich gerne das Ultraschallmodul HC-SR04 vorstellen. Dieses Modul gibt es für wenige Euro bei Amazon oder Ebay (Hier bitte die extremen Lieferzeiten beachten!).
Die Funktionsweise dieses Sensors ist ähnlich wie der einer Fledermaus, denn mit diesem Ultraschallsensor können wir Objekte in einem Abstand von 2 cm bis 5 m deuten.
Hier nun ein paar technische Daten:
- Spannung: 5V DC
- Leistungsaufnahme: <2mA
- Winkel <15°
- Messdistanz 2 cm bis 5 m
- Genauigkeit 0,3 cm
Der Schaltplan
- VCC – 5V
- Trigger – digitaler PIN 3
- Echo – digitaler PIN 2
- GND – GND
Der Quellcode
const int TrigPin = 2; //Der PIN welcher auf das Trigger Signal gelegt wird. const int EchoPin = 3; //Der PIN welcher auf das Echo Signal gelegt wird. float cm; void setup() { Serial.begin(9600); //Die Übertragungsgeschwindigkeit setzen. pinMode(TrigPin, OUTPUT); //Den Trigger auf das Output Signal des Sainsmart setzen. pinMode(EchoPin, INPUT); //Das Echo auf das Input Signal des Sainsmart setzen. } void loop() { digitalWrite(TrigPin, LOW); //Trigger Signal ausschalten delayMicroseconds(2); //2 ms warten digitalWrite(TrigPin, HIGH); //Trigger Signal einschalten delayMicroseconds(10); //10ms warten digitalWrite(TrigPin, LOW); //Trigger Signal ausschalten cm = pulseIn(EchoPin, HIGH) / 58.0; //Das Empfangene Echo Signal in cm umrechnen //Da der Sensor mit einer Messgenauigkeit von 0,3cm arbeitet können wir das //Ergbnis auf 2 Nachkommastellen begrenzen cm = (int(cm * 100.0)) / 100.0; Serial.print(cm); //Den Wert auf den Seriellen Monitor ausgeben Serial.println("cm"); //Der geschriebenen Zeile "cm" anfügen und einen Zeilenumbruch ausführen. delay(1000); //1sek. warten }
Das Video
Auf dem folgenden Video können Sie sehen wie sich die Werte in dem Serial Monitor der Arduino IDE ändern. Dabei habe ich einfach meine Hand zum Sensor hin und wieder weg bewegt.
Ein Fazit
Als mein Fazit möchte ich gerne sagen das dieser Sensor für den “Hausgebrauch” geeignet. Die Werte schwanken sehr stark und die Messgenauigkeit von 0,3 cm ist wirklich sehr schön geredet, ab einem Abstand von 3 cm bekommt man schon keine vernünftigen Werte zurück.
(Höchstwahrscheinlich muss man hier den Quellcode anpassen, sodass weniger ms für das Senden und Empfangen verwendet werden muss.)