In diesem Tutorial lernst du, einfach mit dem Arduino Entfernungsmessung zu betreiben. Hierfür verwenden wir den Ultraschallsensor HC-SR04.
Ultraschallsensoren eignen sich bestens dafür, Abstände zu messen und Objekte berührungslos zu erkennen. Das Prinzip ist denkbar einfach: Zunächst einmal wird ein kurzer, hochfrequenter Schallimpuls abgesendet. Sobald der Impuls auf ein Objekt stößt, kommt es zu einer Reflexion. Dies wiederum ruft ein Echo hervor, das schließlich wieder beim Sensor ankommt. Anhand der Zeitspanne, die zwischen der Abgabe und dem Empfangen des Impulses liegt, errechnet der Sensor zuverlässig den Abstand zum jeweiligen Objekt.
Wichtig ist, dass der Gegenstand aus einem Material besteht, das den Schall reflektieren kann. Objekte aus Metall, Holz oder Kunststoff eignen sich für die Messung folglich sehr gut. Transparente Flüssigkeiten oder Gegenstände sind kein Hindernis für den Sensor, dasselbe gilt für Schmutz, Staubwolken oder Nebel.
Aufgrund der nützlichen Features stellen Ultraschallsensoren auch eine bedeutsame Komponente in der Automatisierungstechnik dar. In Selbstpark- und Antikollisionssystemen kommt das Werkzeug ebenso zum Einsatz wie bei der Messung von Flüssigkeitsständen, bei der Erkennung von Etiketten und bei der Positionierung von Robotern.
Im folgenden Tutorial zeigen wir dir, wie du diese Messmethode mithilfe deines Arduino Uno und eines Ultraschallsensors ganz einfach selbst anwenden kannst.
Das brauchst du für das Projekt
- Arduino Uno
- HC-SR04 Ultraschallsensor
- LCD 16×2 blau / weiß
- IIC / I2C Interface für 1602 / 2004 Displays
- Breadboard mit 400 Kontakten
- Jumper / Dupont Kabel Male-Male, trennbar
- Arduino IDE
Alle für dieses Projekt notwendigen Artikel landen mit einem Klick auf den Button direkt in deinem Warenkorb, sofern sie in unserem Shop verfügbar sind. Kontrolliere daher deinen Warenkorb genau!
Arduino Entfernungsmessung mit dem Ultraschallsensor HC-SR04: Schritt für Schritt erklärt
- Zunächst einmal gilt es, durch eine korrekte Schaltung die Weichen für das Projekt zu legen. Die folgende Übersicht soll dir dabei helfen, die verschiedenen Komponenten richtig zu verbinden:
I2C LCD Arduino
GND GND
VCC 5 V
SDA A4
SCL A5
HC-SR04 Arduino
VCC 5 V
Trig Pin 2
Echo Pin 3
GND GND
- Anschließend installierst du die LCD I2C Bibliothek. Dazu navigierst du zu „Sketch“, wählst „Bibliothek einbinden“ und schließlich „Bibliotheken verwalten…“. Dann gibst du in die Suchleiste „LiquidCrystal I2C“ by „Frank de Brabander“ ein. Klicke im Anschluss auf „Installieren“.
- Als nächstes öffnest du einen neuen Sketch und fügst folgenden Code ein:
//https://www.blog.berrybase.de/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // Set the LCD address to 0x27 for a 16 chars and 2 line display
int trigPin =2 ; // TRIG
int echoPin =3 ; // ECHO
float duration_us, distance_cm;
void setup() {
lcd.init(); // Initialize the lcd
lcd.backlight(); // Open the backlight
pinMode(trigPin, OUTPUT); // Config trigger pin to output mode
pinMode(echoPin, INPUT); // Config echo pin to input mode
}
void loop() {
// Generate 10-microsecond pulse to TRIG pin
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Measure duration of pulse from ECHO pin
duration_us = pulseIn(echoPin, HIGH);
// Calculate the distance
distance_cm = 0.017 * duration_us;
lcd.clear();
lcd.setCursor(0, 0); // Start to print at the first row & first line
lcd.print("Abstand: ");
lcd.setCursor(0, 1); // Print at the first row & second line
lcd.print(distance_cm);
lcd.print(" cm");
delay(500);
}
- Nun musst du noch den Code kompilieren und das Board programmieren. Öffne zu diesem Zweck die Option „Werkzeuge“ und wähle anschließend dein Arduino Board „Uno“ und den Port.
- Als letztes kompilierst du den Code noch einmal und lädst ihn auf deinem Arduino hoch.
Viel Spaß beim Nachbauen!
Falls du deine Arduino Experimentierlust noch nicht gestillt ist, kannst du dir hier noch weitere Tutorials anschauen.
Bei mir geht der Display aus wenn ich den sketch hochlade.
Das ist OK … beim Hochladen/Programmieren via SPI werden die Ports inaktiv geschaltet
Grüne Lampe hat ohne Programmierung geleuchtet ansonsten gut erklärt und einfach umsetzbar :))))
Wtf das stimmt nicht :((
bei mir hat das nur mit Programmierung funktioniert :))
hey!!
wieso löscht ihr meinen Kommentar
der war sehr qualitativ
Also erstens einmal ist die Qualität der Bilder nicht so rosig und auch die Erklärung ist komplette Scheisse. Diese Programmierung stimmt überhaupt nicht. Ich hoffe diese positive Rückmeldung kann ihnen helfen ihre nicht so überlegten Beiträge zu verbessern.
Uf Widerluege
Bei mir fun
Forheriger Commentar überflüßig, woll