HC-SR04: Alles rund um den Ultraschallsensor

HC-SR04 Sensor

Manchmal ist es notwendig Entfernungen messen und dafür stehen Ihnen mehrere Sensoren zur Verfügung. Wir haben bereits einen Artikel gewidmet, um über a zu sprechen Hochpräziser Abstandssensor wie der VL52L0X. Dieser Sensor war vom Typ ToF und basierte dank seines Lasers auf sehr präzisen Messungen. Aber wenn Präzision für Sie nicht so wichtig ist und Sie etwas möchten, mit dem Sie Entfernungen zu einem niedrigen Preis messen können, ist dies eine weitere Möglichkeit Sie haben den HC-SR04 zur Hand.

Im Fall von HC-SR04 Distanzsensor, Distanz wird mittels Ultraschall gemessen. Das System ähnelt der optischen Methode des VL52L0X. Das heißt, es wird emittiert, es gibt einen Sprung und es wird empfangen, aber in diesem Fall ist es Ultraschall, anstatt ein Laser oder IR zu sein. Wenn Sie sich für Elektronik, Robotik oder Amateur interessieren, können Sie es für eine Vielzahl von DIY-Projekten verwenden, z. B. für Hinderniserkennungssysteme für Roboter, Anwesenheitssensoren usw.

Was ist der HC-SR04?

Nun, es ist offensichtlich, wie ich bereits in den vorhergehenden Absätzen kommentiert habe, Der HC-SR04 ist ein auf Ultraschall basierender Abstandssensor mit geringer Genauigkeit. Damit können Entfernungen auf einfache und schnelle Weise gemessen werden, obwohl dies im Prinzip normalerweise nicht verwendet wird. Meistens wird es als Wandler verwendet, um Hindernisse zu erkennen und sie durch andere Mechanismen zu vermeiden, die mit der Reaktion des Sensors verbunden sind.

Das Aussehen der HC-SR04 ist sehr charakteristisch und leicht erkennbar. Darüber hinaus ist es ein sehr beliebtes Produkt in Arduino-Starter-Kits und für eine Vielzahl von Projekten erforderlich. Es ist leicht zu identifizieren, da es zwei "Augen" hat, die tatsächlich die Ultraschallgeräte sind, die dieses Modul integriert. Einer von ihnen ist ein Ultraschallsender und der andere ein Empfänger. Es arbeitet mit einer Frequenz von 40 kHz und ist daher für Menschen unhörbar.

Prinzipien des Ultraschallsensors

Das Prinzip, in dem Es basiert auf der Simulation desjenigen, der verwendet wird, wenn Sie einen Stein in einen Brunnen werfen, um seine Tiefe zu messen. Sie werfen den Stein und legen fest, wie lange es dauert, bis er auf den Boden fällt. Dann berechnen Sie die Geschwindigkeit für die verstrichene Zeit und erhalten die Entfernung, die der Stein zurückgelegt hat. Aber in diesem Fall sind Sie der Sensor.

ESP8266
Verwandte Artikel:
ESP8266: das WIFI-Modul für Arduino

Beim HC-SR04 sendet der Sender Ultraschall aus und wenn er von einem Objekt oder Hindernis abprallt, so wie er vom Empfänger erfasst wird. Das Schaltung wird die notwendigen Berechnungen durchführen dieses Echos, um die Entfernung zu bestimmen. Dies ist Ihnen möglicherweise auch bekannt, wenn Sie das System kennen, mit dem einige Tiere wie Delfine, Wale oder Fledermäuse Hindernisse, Beute usw. lokalisieren.

Durch Zählen der Zeit seit dem Senden des Impulses bis zum Empfang der Antwort kann die Zeit und damit die Entfernung genau bestimmt werden. Erinnere dich daran [Raum = Geschwindigkeitszeit] Beim HC-SR04 müssen Sie diese Größe jedoch durch / 2 teilen, da die Zeit ab dem Zeitpunkt gemessen wurde, an dem der Ultraschall austritt und durch den Raum wandert, bis er auf das Hindernis und den Rückweg trifft die Hälfte davon ...

Pinbelegung und Datenblätter

Sie wissen bereits, dass es das Beste ist, die vollständigen Daten des von Ihnen erfassten Modells anzuzeigen Finden Sie das Datenblatt Herstellerbeton. Zum Beispiel ist hier ein Sparkfun-Datenblatt, aber es gibt noch viel mehr als PDF. Hier sind jedoch die wichtigsten technischen Daten des HC-SR04:

  • Pinout: 4 Pins für Strom (Vcc), Trigger (Trigger), Empfänger (Echo) und Masse (GND). Der Auslöser zeigt an, wann der Sensor aktiviert werden soll (wenn der Ultraschall gestartet wird), und somit ist es möglich, die Zeit zu kennen, die vergangen ist, wenn der Empfänger das Signal empfängt.
  • Lebensmittel: 5v
  • Ultraschallfrequenz: 40 kHz, das menschliche Ohr kann nur von 20 Hz bis 20 kHz hören. Alles unter 20 Hz (Infraschall) und über 20 kHz (Ultraschall) ist nicht wahrnehmbar.
  • Verbrauch (Standby): <2mA
  • Verbrauch funktioniert: 15mA
  • Effektiver Winkel: <15º, abhängig von den Winkeln der Objekte können Sie bessere oder schlechtere Ergebnisse erzielen.
  • Gemessene Entfernung: von 2 cm bis 400 cm, obwohl von 250 cm die Auflösung nicht sehr gut sein wird.
  • Mittlere Auflösung: 0.3 cm Abweichung zwischen dem tatsächlichen Abstand und der Messung. Obwohl sie nicht wie Laser als hochgenau angesehen werden, sind die Messungen für die meisten Anwendungen durchaus akzeptabel.
  • Preis: ab ca. 0,65 €

Integration mit Arduino

HC-SR04 mit Arduino

zu Es könnte nicht einfacher sein, es mit Arduino zu verbinden. Sie müssen nur dafür verantwortlich sein, GND an den entsprechenden Ausgang Ihres Arduino anzuschließen, der als solcher gekennzeichnet ist, Vcc mit dem Arduino 5v-Netzteil und die anderen beiden Pins des HC-SR04 mit den für Ihr Projekt ausgewählten Ein- / Ausgängen. Sie können sehen, dass es im oberen Fritzing-Schema einfach ist ...

Sie müssen nur eine Überlegung machen, dass der Tigger einen elektrischen Impuls von mindestens 10 Mikrosekunden empfangen muss, damit er richtig aktiviert wird. Zuvor müssen Sie sicherstellen, dass der Wert NIEDRIG ist.

Um Code für Arduino IDESie müssen keine Bibliothek oder ähnliches wie bei anderen Komponenten verwenden. Machen Sie einfach die Formel, um die Entfernung zu berechnen, und sonst wenig ... Wenn Sie möchten, dass Ihr Projekt als Reaktion auf die Messung des HC-SR04-Sensors etwas unternimmt, müssen Sie natürlich den Code hinzufügen, den Sie benötigen. Anstatt einfach die Maße auf der Konsole anzuzeigen, können Sie beispielsweise Servomotoren für bestimmte Entfernungen in die eine oder andere Richtung bewegen, um das Hindernis zu umgehen, oder einen Motor zum Stoppen bringen, einen Alarm aktivieren, wenn er Nähe erkennt, usw. .

 Weitere Informationen zur Programmierung: Arduino Handbuch (Kostenloses PDF)

Zum Beispiel können Sie dies sehen Basiscode zur Verwendung als Basis:

//Define las constantes para los pines donde hayas conectado el pin Echo y Trigger
const int EchoPin = 8;
const int TriggerPin = 9;
 
void setup() {
   Serial.begin(9600);
   pinMode(TriggerPin, OUTPUT);
   pinMode(EchoPin, INPUT);
}

//Aquí la muestra de las mediciones
void loop() {
   int cm = ping(TriggerPin, EchoPin);
   Serial.print("Distancia medida: ");
   Serial.println(cm);
   delay(1000);
}

//Cálculo para la distancia
int ping(int TriggerPin, int EchoPin) {
   long duration, distanceCm;
   
   digitalWrite(TriggerPin, LOW);  //para generar un pulso limpio ponemos a LOW 4us
   delayMicroseconds(4);
   digitalWrite(TriggerPin, HIGH);  //generamos Trigger (disparo) de 10us
   delayMicroseconds(10);
   digitalWrite(TriggerPin, LOW);
   
   duration = pulseIn(EchoPin, HIGH);  //medimos el tiempo entre pulsos, en microsegundos
   
   distanceCm = duration * 10 / 292/ 2;   //convertimos a distancia, en cm
   return distanceCm;
}


Einen Kommentar, hinterlasse deinen

Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   Jose sagte

    Ich fand die Erklärung sehr nützlich und einfach.