Du bist hier:
Arduino Ultraschallsensor programmieren
Lerne mit dieser Anleitung, wie du den HC-SR04 Ultraschallsensor ohne zusätzliche Library in wenigen Schritten mit einem Arduino programmieren kannst. Messe damit präzise Distanzen zu beliebigen Objekten und verstehe, wie ein Parksensor funktioniert oder wie sich selbstfahrende Autos im Verkehr orientieren.
Diese Anleitung basiert auf dem vereinfachten Controller von PGLU, kann aber mit jedem Arduino UNO oder NANO umgesetzt werden.
1. Vorbereiten
Der Arduino Ultraschallsensor sendet und empfängt ein akustisches Signal und berechnet anhand der verstrichenen Zeit dazwischen, die Distanz zu reflektierenden Objekten.
- Ultraschallsensor kaufen ↗
- Arduino Roboter Starter Kit kaufen ↗
- Arduino Roboter Starter Kit Anleitung zum Bau ↗
Der Ultraschallsensor wird so angeschlossen:
- VCC → +5V
- GND → -5V
- Trig → L3 - (Minuspol)
- Echo → S3▲(Eingang)
Anschluss an Arduino UNO/NANO:
- VCC → +5V
- GND → GND
- Trig → D3
- Echo → A2
2. Ultraschallsensor Verwenden
Alle Programmierungen werden mit dem grafischen PGLU-Editor ↗ gemacht. Den originalen Arduino Code findest du dann in der Code-Ansicht des Editors
2.1. Simple Verwendung dank einer "Funktion"
Mit dem Ultraschallsensor können Distanzen zwischen 1 cm und ca. 400 cm gemessen werden und dies mit einer erstaunlichen Genauigkeit. Gleich wie beim Servo, wird die Programmierung mit einer Funktion bewerkstelligt. Das ist sehr praktisch, denn die Funktion kann so an jeder beliebigen Stelle im Code eine Distanzmessung vornehmen und das Ergebnis in cm ausgeben.
2.2. Das Sketch
Hinweis: du kannst auch mit dem Ultraschallsensor arbeiten, wenn du dieses Kapitel nicht 100%ig nachvollziehst. Kopiere einfach den Code im grauen Kasten in den grafischen Editor ↗ und experimentiere mit dem Sensor. Den originalen Arduino Code findest du dann in der Code-Ansicht des Editors.
Welche Abläufe braucht es, um mit dem Ultraschallsensor HC-SR04 eine Distanz zu messen?
- Der Sensor besitzt einen Schall-Sender und einen Empfänger
- Der Sender wird in den Bereitschaftsmodus versetzt und dazu für die Dauer von 5μs ausgeschaltet
- Der Sender sendet ein Burst (Schall)-Signal von 10 μs Dauer
- Der Empfänger erwartet das Echo dieses Signals und misst die verstrichene Zeit zwischen Senden und Empfangen
- Das Ergebnis dieser Messung wird als Stromimpuls von einer bestimmten Länge ausgegeben und in cm umgerechnet
Kopiere diesen XML-Code mit Klick/Berührung und füge ihn in den PGLU-Editor ↗ ein:
2.3. Präzise Messungen mit dem Arduino Serial Monitor
Manchmal möchtest du ganz genau wissen, welche Werte dein Ultraschallsensor misst, um ihn zu kalibrieren.
Mit dem Serial Monitor in der Arduino IDE kannst du beliebige Werte von Variablen vom Mikrocontroller an deinen PC zurücksenden. Verbinde deinen Mikrocontroller direkt via USB mit deinem Rechner und lass dir die Messwerte am Monitor live anzeigen.
- Füge Serial.begin(9600); in dein Setup ein (siehe XML-Code weiter unten)
- Füge Serial.println(Distanz_in_cm, 0); in den Hauptloop ein
Kopiere diesen XML-Code mit Klick/Berührung und füge ihn in den PGLU-Editor ↗ ein.
3. Challenge
3.1. Selbstfahrendes Auto und Automatisierte Mobilität
Automatisiertes Fahren im Strassenverkehr beflügelt eine ganze Industrie zu intensiver Forschung und Entwicklung. Treibende Kräfte dahinter sind eine Verbesserung der Verkehrssicherheit, effizientere Nutzung der Energie sowie unser Wunsch das Auto noch bequemer zu machen :-)
Der Ultraschallsensor spielt, zusammen mit Videokameras und Messsystemen die auf Laser basieren (Lidar), zu den wichtigsten Technologien für diese Entwicklung.
Kannst du ein einfaches selbstfahrendes Auto bauen, mit nur einem einzigen Ultraschallsensor? Tipp: Wenn dein Auto von Zeit zu Zeit stillsteht, kann es seine Umgebung erkunden, indem es kurz nach links und nach rechts abdreht, um den Raum in beide Richtungen zu vermessen. Eine andere Variante wäre es, den Sensor auf einem Servo zu platzieren.
- Bosch: Produkte für die Automatisierte Mobilität ↗
- ETH Zürich: Forschung zur Automatisierten Mobilität ↗
Die nachfolgenden Videos zeigen 4 Strategien, wie mit dem Ultraschallsensor ein Arduino Roboter mit Hinderniserkennung gesteuert werden kann. Studiere auch die dazugehörigen Flussdiagramme um zu verstehen, wie du dein selbstfahrendes Auto in wenigen Schritten intelligenter machen kannst.
Die Komponenten sind so an den PGLU-Mikrocontroller MOTOR oder KOMFORT angeschlossen:

Diese Teile sind nicht unbedingt notwendig:
- Klassische Tastsensoren: S1 und S2
- Neopixel mit 5 Pixeln: L1
- Druckversion Anschlussschema Roboter Starter Kit
Hinweis 1: Du kannst dieses Projekt auch mit einem klassischen Arduino Board umsetzen.
- Verstehen, wie die Komponenten angeschlossen werden und wie du jedes Arduino grafisch programmieren kannst.
Hinweis 2: Alle vorgestellten Projekte basieren auf unserem Arduino Robotik Starter Set. Sie können aber auch mit jedem Arduino UNO oder NANO umgesetzt werden.
Selbstfahrendes Auto Level 1: Direkt abdrehen
Mit Klick/Berührung XML-Code kopieren und in PGLU-Editor ↗ einfügen
Links Grundversion, rechts Version wie in Video
Selbstfahrendes Auto Level 2: Stoppen und Umgebung erkunden I
Mit Klick/Berührung XML-Code kopieren und in PGLU-Editor ↗ einfügen
Links Grundversion, rechts Version wie in Video
Selbstfahrendes Auto Level 3: Stoppen und Umgebung erkunden II
Mit Klick/Berührung XML-Code kopieren und in PGLU-Editor ↗ einfügen
Links Grundversion, rechts Version wie in Video
Selbstfahrendes Auto Level 4: Fahren und Umgebung erkunden
Mit Klick/Berührung XML-Code kopieren und in PGLU-Editor ↗ einfügen
Links Grundversion, rechts Version wie in Video