Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

HC-SR04 Ultraschallsensor mit Arduino meistern: Komplettes Tutorial

Einführung

In diesem Tutorial lernen Sie, wie der HC-SR04 Ultraschallsensor funktioniert und wie man ihn mit Arduino zur Entfernungsmessung einsetzt. Er ist der beliebteste Sensor für Distanzmessung und Hindernisvermeidung bei Arduino-Robotern.

Projekte mit HC-SR04:

Video oder schriftliches Tutorial unten. Enthält Spezifikationen, Pinout, Verdrahtung, Codes, NewPing-Library, Temperaturkompensation mit DHT22.

HC-SR04 Hardware-Übersicht

Günstiger, einfach zu nutzender Distanzsensor: 2 cm – 400 cm (ca. 1 Zoll – 13 ft).

Zwei Ultraschall-Wandler:

Prinzip wie SONAR in U-Booten.

HC-SR04 Ultraschallsensor mit Arduino meistern: Komplettes Tutorial

Technische Daten

Betriebsspannung5 V DC
Stromaufnahme15 mA
Frequenz40 kHz
Min. Reichweite2 cm / 1 Zoll
Max. Reichweite400 cm / 13 ft
Genauigkeit3 mm
Messwinkel< 15°
Abmessungen45 × 20 × 15 mm

HC-SR04 Pinbelegung

HC-SR04 Ultraschallsensor mit Arduino meistern: Komplettes Tutorial

Trig: 10 µs High-Puls startet 8-Zyklus-Ultraschallburst. Echo: geht HIGH, wartet auf Reflexion, geht LOW bei Empfang (oder Timeout nach 38 ms).

Funktionsprinzip

Ultraschall (40 kHz) breitet sich aus, reflektiert an Objekt. Aus Laufzeit und Schallgeschwindigkeit wird Distanz berechnet.

HC-SR04 Ultraschallsensor mit Arduino meistern: Komplettes Tutorial
  1. Trig 10 µs HIGH → 8 Zyklen Ultraschall gesendet.
  2. Echo geht sofort HIGH, startet Zeitmessung.
  3. Kein Objekt → Echo nach 38 ms Timeout LOW.
  4. Objekt erkannt → Echo früher LOW. Dauer = Hin- + Rückweg.
HC-SR04 Ultraschallsensor mit Arduino meistern: Komplettes Tutorial

Formel: Distanz = (Schallgeschwindigkeit × Zeit) / 2

Beispiel: Echo HIGH 2 ms (2000 µs) → Distanz = (0,034 × 2000) / 2 = 34 cm.

HC-SR04 Ultraschallsensor mit Arduino meistern: Komplettes Tutorial

HC-SR04 an Arduino anschließen

HC-SR04 Ultraschallsensor mit Arduino meistern: Komplettes Tutorial

Benötigte Bauteile

HC-SR04 Arduino Code (Basis)

/* Ultrasonic Sensor HC-SR04 & Arduino
 * by Dejan Nedelkovski, www.HowToMechatronics.com
 */
const int trigPin = 9;
const int echoPin = 10;
long duration;
int distance;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  // Trigger-Puls
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // Echo-Laufzeit messen
  duration = pulseIn(echoPin, HIGH);

  // Distanz berechnen (cm)
  distance = duration * 0.034 / 2;

  // Ausgabe
  Serial.print("Distance: ");
  Serial.println(distance);
}

Code-Erklärung

HC-SR04 mit LCD-Display

Ergebnis auf 16×2 LCD statt Serial Monitor:

HC-SR04 Ultraschallsensor mit Arduino meistern: Komplettes Tutorial
HC-SR04 Ultraschallsensor mit Arduino meistern: Komplettes Tutorial
/* Ultrasonic Sensor HC-SR04 & Arduino with LCD
 * by Dejan Nedelkovski, www.HowToMechatronics.com
 */
#include <LiquidCrystal.h>
LiquidCrystal lcd(1, 2, 4, 5, 6, 7);

const int trigPin = 9;
const int echoPin = 10;
long duration;
int distanceCm, distanceInch;

void setup() {
  lcd.begin(16, 2);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  duration = pulseIn(echoPin, HIGH);
  distanceCm = duration * 0.034 / 2;
  distanceInch = duration * 0.0133 / 2;

  lcd.setCursor(0, 0);
  lcd.print("Distance: ");
  lcd.print(distanceCm);
  lcd.print(" cm");
  delay(10);

  lcd.setCursor(0, 1);
  lcd.print("Distance: ");
  lcd.print(distanceInch);
  lcd.print(" inch");
  delay(10);
}

NewPing Library – Einfachere Programmierung

NewPing kapselt Trigger/Messung/Rechnung. Einzeiler für Distanz:

#include <NewPing.h>
#define TRIGGER_PIN 9
#define ECHO_PIN 10
#define MAX_DISTANCE 400

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

void setup() {
  Serial.begin(9600);
}

void loop() {
  delay(50); // 20 Pings/sec max
  int distance = sonar.ping_cm(); // Distanz in cm (0 = außerhalb)
  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println("cm");
}

Weitere Features:

Genauigkeitsverbesserung: Temperaturkompensation mit DHT22

Schallgeschwindigkeit hängt von Temperatur (und Luftfeuchte) ab. Bei 20 °C ≈ 340 m/s, bei -20 °C ≈ 315 m/s.

Formel: v = 331,4 + 0,6 × T + 0,0124 × RH (T in °C, RH in %)

HC-SR04 Ultraschallsensor mit Arduino meistern: Komplettes Tutorial

Arduino Code mit DHT22 & NewPing

/* HC-SR04 with Temperature Compensation
 * by Dejan, How To Mechatronics, https://howtomechatronics.com/
 */
#include <NewPing.h>
#include "dht.h" // https://github.com/RobTillaart/DHTlib

#define TRIGGER_PIN 9
#define ECHO_PIN 10
#define MAX_DISTANCE 400
#define DHT22_PIN 5

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
dht DHT;

void setup() {
  Serial.begin(9600);
}

void loop() {
  delay(100);
  int chk = DHT.read22(DHT22_PIN);
  float temp = DHT.temperature;
  float hum = DHT.humidity;

  float vSound = 331.4 + (0.6 * temp) + (0.0124 * hum); // m/s

  unsigned int duration = sonar.ping_median(10); // µs
  float durationSec = duration / 1000000.0; // s
  float distance = (vSound * durationSec) / 2.0; // m
  distance *= 100; // cm

  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");
}

HC-SR04 Abmessungen & 3D-Modell

3D-Modell (STL/STEP) auf Thangs zum Download.

HC-SR04 Ultraschallsensor mit Arduino meistern: Komplettes Tutorial
HC-SR04 Ultraschallsensor mit Arduino meistern: Komplettes Tutorial

Hinweis: Maße können je Hersteller leicht abweichen.

Fazit

Der HC-SR04 ist ideal für berührungslose Distanzmessung, Objekterkennung, Füllstandsmessung etc. Weitere Projektideen:

Viel Erfolg! Fragen in den Kommentaren. Meine 30+ Arduino-Projekte anschauen.

Herstellungsprozess

  1. HC-SR04 Ultraschallsensor: Funktionsweise und Hauptanwendungen
  2. Arduino-Sensoren: Typen, Anwendungen und reale Projekte
  3. HC-SR04 Ultraschallsensor an Raspberry Pi 3 anschließen – Komplettanleitung
  4. HC-SR04 Ultraschallsensor an Raspberry Pi anschließen – Praktischer Leitfaden
  5. DHT11 Temperatur- & Feuchtesensor mit LED-Anzeige & Piezo-Summer
  6. FlickMote: Gestensteuerung per Ultraschall & IR für Smart Home (Arduino 101)
  7. Smart IoT-Glas bauen: Füllstand überwachen mit ESP8266, Arduino & Ultraschall
  8. Kompaktes Arduino-Radar mit HC-SR04 Ultraschallsensor & 1,8″ Display
  9. Ultraschall-Entfernungsmesser mit Arduino UNO und SR04-Sensor bauen
  10. Arduino Ultraschall-Distanz & Temperatur-Monitor mit LCD-Alarmsystem