Ultraschallsensor (HC-SR04) Arduino Tutorial – Einfach & Verständlich

 


 

Einleitung

In diesem Artikel erhalten Sie detaillierte Anleitungen und praktische Informationen, wie Sie einen Ultraschallsensor mit einem Arduino-Board (Arduino Uno) verbinden und steuern können.
Wir werden sowohl die benötigten Komponenten als auch den optimalen Schaltungsaufbau besprechen. Zudem werden wir den Code ausführlich erläutern, um den Sensor auszulesen und die Ergebnisse weiterzuverarbeiten bzw. übersichtlich darzustellen.

Am Ende dieses Artikels sind Sie in der Lage, den Ultraschallsensor erfolgreich mit einem Arduino einzusetzen und eigene spannende Projekte umzusetzen. Tauchen Sie ein in die faszinierende Welt der Ultraschallsensoren mit dem Arduino und beginnen Sie noch heute Ihre eigenen Elektronikabenteuer!

Arduion Uno erste Schritte

 

 

Verschaltung

Bibliotheken

Keine benötigt

Code Download

 
 

 




 

Hardware Aufbau – Verkabelung – Ultraschallsensor + Arduino Uno

bevor der Arduino Uno programmiert wird, muss der Hardware Aufbau vorbereitet werden.
Hierzu wird der Arduino Uno über Verbindungskabel mit dem Ultraschallsensor verbunden.
Es gibt hierbei 4 Verbindungen.

Arduino Uno 5V Pin -> Ultraschallsensor Vcc
Arduino Uno GND Pin -> Ultraschallsensor GND
Arduino Uno 6 Pin -> Ultraschallsensor Echo
Arduino Uno 7 Pin -> Ultraschallsensor Trig

 




 

Software Programmierung – Ultraschallsensor + Arduino Uno

Um den Ultraschallsensor mit Ihrem Arduino-Board zu steuern, müssen wir den entsprechenden Code entwickeln. Dieser ermöglicht es uns, die Daten des Sensors auszulesen und entsprechend zu verarbeiten. Im Folgenden werde ich Ihnen den Code Schritt für Schritt erklären.

 
Schritt 1: Initialisierung

Öffnen der Arduino-IDE und Erstellen eines neuen Projekts
Um mit der Arduino-IDE zu arbeiten, öffnen Sie zunächst die Anwendung auf Ihrem Computer. Falls Sie die Arduino-IDE noch nicht installiert haben, können Sie unter folgendem Link eine Anleitung hierzu finden:
Arduion IDE erste Schritte

Nachdem Sie die Arduino-IDE geöffnet haben, erstellen Sie ein neues Projekt, indem Sie auf „Datei“ klicken und dann auf „Neu“. Dadurch wird ein neues Sketch-Fenster geöffnet, in dem Sie Ihren Code eingeben können.


// Hier kommt dein Code
void setup(){
  // Initialisierung
}

void loop(){
  // Schleife
}

 
Schritt 2: Variablen definieren

Als nächstes definieren wir die benötigten Variablen für die Pins und die Messungen des Ultraschallsensors. Fügen Sie am Anfang Ihres Codes die folgenden Zeilen hinzu:


int TRIGGER_PIN =7; //Trigger-Pin Ultraschallsensors = Pin7  Arduino-Boards
int ECHO_PIN =6; //Echo-Pin Ultraschallsensors = Pin6 Arduino-Boards
long dauer=0; //Dauer = Variable, Zeit wird gespeichert, die eine Schallwelle bis zur Reflektion und zurück benötigt. Startwert ist hier 0.
long entfernung=0; //entfernung = variable („long“ damit größere Zahl gespeichert werden kann)

In diesem Beispiel verwenden folgende Variablen definiert:
Die Variablen für Pins: TRIGGER_PIN und ECHO_PIN, um die Pin-Nummern festzulegen, an denen der Ultraschallsensor an den Arduino angeschlossen ist.
Die Variable „dauer“ wird verwendet, um die Zeit zu speichern welche die Schallwelle bis zur Reflektion und zurück benötigt.
Die Variable „entfernung“ wird verwendet um die tatsächlich Entfernung bzw. den Abstand zu speichern.

 
Schritt 3: Void Setup

Im Setup-Bereich des Codes initialisieren wir den seriellen Monitor und stellen die Pins für den Ultraschallsensor ein. Fügen Sie den folgenden Code hinzu:


void setup()
{
  Serial.begin(9600); //Serielle kommunikation starten, damit man sich später die Werte am serial monitor ansehen kann.
  pinMode(TRIGGER_PIN, OUTPUT); //Trigger-Pin ist ein Ausgang
  pinMode(ECHO_PIN, INPUT); //Echo-Pin ist ein Eingang
}

Der Serial.begin(9600) Befehl initialisiert den seriellen Monitor mit einer Baudrate von 9600, sodass Sie die Messergebnisse auf dem Monitor anzeigen können.
Die Funktion pinMode() legt die Pins TRIGGER_PIN und ECHO_PIN entsprechend als Ausgang bzw. Eingang fest.

 
Schritt 4: Loop Setup

Im Loop-Bereich des Codes werden die Messungen durchgeführt und die Ergebnisse verarbeitet. Fügen Sie den folgenden Code hinzu:


void loop()
{
  digitalWrite(TRIGGER_PIN, LOW); //kurze Zeit Spannung weg vom Trigger-Pin. Damit später beim senden des Trigger-Signals ein rauschfreies Signal hat.
  delay(5); //Dauer: 5 Millisekunden
  digitalWrite(TRIGGER_PIN, HIGH); //Jetzt sendet man eine Ultraschallwelle los.
  delay(10); //Dieser „Ton“ erklingt für 10 Millisekunden.
  digitalWrite(TRIGGER_PIN, LOW); //Dann wird der „Ton“ abgeschaltet.
  dauer = pulseIn(ECHO_PIN, HIGH); //Mikrokontroller zählt Zeit in Mikrosekunden, bis der Schall zum Ultraschallsensor zurückkehrt.
  entfernung = (dauer/2) * 0.03432; //Entfernung berechnen in Zentimetern. Man teilt zunächst die Zeit durch zwei (Weil man ja nur eine Strecke berechnen möchte und nicht die Strecke hin- und zurück). Den Wert multipliziert man mit der Schallgeschwindigkeit in der Einheit Zentimeter/Mikrosekunde und erhält dann den Wert in Zentimetern.
  if (entfernung >= 500 || entfernung <= 0) 
   {
    Serial.println("Kein Messwert"); //Wenn Entfernung über 500cm oder unter 0cm liegt weil falsch oder ungenau
  }
  else
  {
    Serial.print(entfernung); //Falls nicht: Entfernung in serial monitor ausgegeben
    Serial.println(" cm"); // Hinter Entfernung im Serial Monitor Einheit "cm"
  }
  delay(1000); //Das delay von einer Sekunde
}

In diesem Code werden zuerst die Trigger-Pin-Signale erzeugt, um den Ultraschallsensor zu aktivieren. Dann wird die Dauer gemessen, bis das Echo-Signal vom Sensor empfangen wird, und basierend darauf die Entfernung berechnet. Schließlich werden die gemessene Entfernung und die Einheit „cm“ auf dem seriellen Monitor ausgegeben. Eine Verzögerung von 500 Millisekunden wird verwendet, um zwischen den Messungen eine kurze Pause einzulegen.

Mit diesen Schritten haben Sie den grundlegenden Code erstellt, um den Ultraschallsensor mit dem Arduino anzusteuern. Sie können den Code jetzt auf den Arduino hochladen und anpassen, um Ihre spezifischen Anforderungen zu erfüllen. Viel Spaß beim Experimentieren und Erkunden der vielfältigen Möglichkeiten, die Ihnen der Ultraschallsensor und der Arduino bieten!

Schritt für Schritt – Zusammenfassung
→ Schritt 1: Initialisierung
Arduino-Board anschließen,
IDE öffnen
Datei -> Neu
Werkzeug -> Board -> Arduino Uno
Port -> Arduino Uno

→ Schritt 2:
Variablen definieren

→ Schritt 3: Void Setup
Serielle Kommunikation starten
Eingänge und Ausgänge definieren

→ Schritt 4: Void Loop
Ultraschallsensor ansteuern
Umrechnung von Dauer in Entfernung (cm)
Ausgabe in Seriellen Monitor

 




 

Gesamter Programmiercode – Ultraschallsensor + Arduino Uno

Nochmal zur Übersicht den gesamten Programmier-Code aufgezeigt.


int TRIGGER_PIN =7; //Trigger-Pin Ultraschallsensors = Pin7  Arduino-Boards
int ECHO_PIN =6; //Echo-Pin Ultraschallsensors = Pin6 Arduino-Boards
long dauer=0; //Dauer = Variable, Zeit wird gespeichert, die eine Schallwelle bis zur Reflektion und zurück benötigt. Startwert ist hier 0.
long entfernung=0; //entfernung = variable („long“ damit größere Zahl gespeichert werden kann)

void setup()
{
  Serial.begin(9600); //Serielle kommunikation starten, damit man sich später die Werte am serial monitor ansehen kann.
  pinMode(TRIGGER_PIN, OUTPUT); //Trigger-Pin ist ein Ausgang
  pinMode(ECHO_PIN, INPUT); //Echo-Pin ist ein Eingang
}

void loop()
{
  digitalWrite(TRIGGER_PIN, LOW); //kurze Zeit Spannung weg vom Trigger-Pin. Damit später beim senden des Trigger-Signals ein rauschfreies Signal hat.
  delay(5); //Dauer: 5 Millisekunden
  digitalWrite(TRIGGER_PIN, HIGH); //Jetzt sendet man eine Ultraschallwelle los.
  delay(10); //Dieser „Ton“ erklingt für 10 Millisekunden.
  digitalWrite(TRIGGER_PIN, LOW); //Dann wird der „Ton“ abgeschaltet.
  dauer = pulseIn(ECHO_PIN, HIGH); //Mikrokontroller zählt Zeit in Mikrosekunden, bis der Schall zum Ultraschallsensor zurückkehrt.
  entfernung = (dauer/2) * 0.03432; //Entfernung berechnen in Zentimetern. Man teilt zunächst die Zeit durch zwei (Weil man ja nur eine Strecke berechnen möchte und nicht die Strecke hin- und zurück). Den Wert multipliziert man mit der Schallgeschwindigkeit in der Einheit Zentimeter/Mikrosekunde und erhält dann den Wert in Zentimetern.
  if (entfernung >= 500 || entfernung <= 0) 
   {
    Serial.println("Kein Messwert"); //Wenn Entfernung über 500cm oder unter 0cm liegt weil falsch oder ungenau
  }
  else
  {
    Serial.print(entfernung); //Falls nicht: Entfernung in serial monitor ausgegeben
    Serial.println(" cm"); // Hinter Entfernung im Serial Monitor Einheit "cm"
  }
  delay(1000); //Das delay von einer Sekunde
}

 

Ausführung – Ultraschallsensor + Arduino Uno

Nachdem der Code nun in die IDE eingegeben ist, muss dieser noch Ausgeführt werden und auf den Arduino übertragen werden.
Hierzu geht man wie folgt vor:
Schritt 1: Überprüfen (Haken)
Schritt 2: Hochladen (Pfeil)
Schritt 3: Werkzeuge -> Serieller Monitor

Nachdem der Arduino nun programmiert ist, funktioniert der Ultraschallsensor.
Hierbei muss der Serielle Monitor den Abstand in Centimeter ausgeben.