Contenido
1 – Beschreibung.
Der Sensor „HC-SR04“ kann zur Messung von Entfernungen verwendet werden, der hat einen Sender, der Schallwellen aussendet, und der Empfänger empfängt sie, wenn die Wellen an einem Objekt abprallen. Die Zeit, die vom Verlassen des Empfängers bis zum Empfang der Welle vergeht, wird zur Berechnung der Entfernung zum Objekt verwendet.
In der obigen Abbildung befindet sich der Sender auf der linken Seite und der Empfänger auf der rechten Seite. Der Sensor hat vier Stifte, zwei für die Stromversorgung, einen für die Anzeige, wann der Tonimpuls gesendet werden soll (Trig), und einen für das Empfangssignal.
Der Sensor kann Objekte von zwei Zentimetern bis zu vierhundert Zentimetern mit einer Genauigkeit von 3 Millimetern und einem Erfassungswinkel von 15 Grad erkennen.
Der Betrieb dieses Sensors beginnt mit dem Befehl:
digitalWrite(TriggerPin, HIGH);
An diesem Punkt sollte ein 5 Volt Signal mit einer Dauer von 10 Mikrosekunden vom „TriggerPin“ unserer Platine gesendet werden.
Wenn der Sensor dieses Signal erkennt, sendet er von der „T“-Membran eine Schallwelle aus. Die Schallwelle besteht aus 8 Impulsen von je 5 Volt bei 40 Hertz.Diese 8 Impulse werden von der Sendermembran ausgestrahlt, prallen am physikalischen Medium ab (oder auch nicht) und werden von der Empfängermembran „R“ erfasst.
Wenn der Sensor die 8 Impulse erkennt, berechnet er die Zeit, die vom Verlassen des Senders bis zum Empfang durch den Empfänger vergangen ist. Sobald er die Zeit kennt, gibt er über den Echo-Pin ein 5-Volt-Signal ab, dessen Breite proportional zur berechneten Zeit ist.
Um das Signal zu erhalten, das über den „Echo“-Pin des Sensors gesendet wird, verwenden wir die Anweisung:
Duración = pulseIn(EchoPin,HIGH);
Mit diesem Befehl wandeln wir die Breite des 5-Volt-Signals, das vom „Echopin“-Pin gesendet wird, in Mikrosekunden um. In diesem Fall wird der Wert in Millisekunden in der Variablen „Duracion“ gespeichert.
2 – Technische Daten des Sensors HC-SR04.
Betriebsspannung – 5 VDC.
Betriebsstrom – 15 mA.
Frequenz – 40 Hz
Messabstand von 2 cm bis 400 cm.
Winkel der Messung – 15 Grad.
Pin Vcc – Spannungseingang 5 VDC
Pin GND – Masse
Pin Trig (Trigger)- Wenn ein digitales Signal empfangen wird, wird eine Schallwelle erzeugt.
Pin Echo – Es sendet ein digitales Signal aus, wenn der Empfänger die vom Sender ausgestrahlte Schallwelle empfängt.
Der Schaltplan der „HC-SR04“ Sensorplatine sieht wie folgt aus:
Im obigen Schaltplan sehen wir 3 integrierte Schaltkreise, das Innere dieser 3 Schaltkreise, STC11, TL074 und MAX232 ist in den folgenden Bildern dargestellt:
Der integrierte Schaltkreis STC11, in dem die Informationen verarbeitet werden:
Dieser integrierte Schaltkreis entspricht dem folgenden Funktionsplan:
3 – Anschlussplan.
Elektrischer Anschlussplan mit der elektronischen Karte „NodeMCU“.
Elektrischer Anschlussplan mit der elektronischen Karte „Arduino Uno“.
In diesem Anschlussplan ist die Masseleitung in schwarz und die Plusleitung in rot dargestellt, von wo aus wir eine Spannung von 5 Volt liefern werden.
Die beiden blauen Kabel sind für die Datenübertragung vorgesehen, in diesem Fall der Pin GPIO12 oder einfach PIN12 (für Arduino), wird mit der Pin „Trig“ von unsere Ultraschallsensor „HC-SR04“ verbinden.
Mit der folgenden Anweisung wird der Trig-Pin des Sensors mit Spannung versorgt:
digitalWrite(TriggerPin, HIGH);
In diesem Moment gibt der Ultraschallsensor einen Ton von 8 Impulsen mit einer Frequenz von 40 KHz ab, die Auslösezeit für die Aktivierung des „trig“-Pins beträgt 10 µS.
Diese Schallwelle muss vom Empfänger des Ultraschallsensors aufgenommen werden. Nach der Berechnung der Zeit, die die Welle gebraucht hat, wird ein Signal über Echo an den GPIO13 oder PIN13 auf dem Arduino ausgegeben.
pulseIn(EchoPin,HIGH);
Diese Anweisung gehört zu dem unten stehenden Beispielcode. Mit der Funktion pulseIn aktivieren wir den PIN13 im Arduino oder den GPIO13 im Nodemcu. Was diese Funktion zurückgibt, ist ein Wert in Mikrosekunden im Verhältnis zum Signal, das vom Echo-Pin des Sensors ausgegeben wird.
4 – Programmierung.
Dieses Beispiel ist sehr einfach und hat nur den Code, um den Sensor zu starten und das Ergebnis zu drucken, auch wissen, dass dieser Code wir eine „delay“ in Mikrosekunden von 1000 verwenden, dann beenden Sie die „loop“ und drucken Sie das neue Ergebnis:
//Ejemplo sensor ultrasonidos const int Trigger = 13; const int Echo = 12; long duracion; void setup() { pinMode(Trigger, OUTPUT); pinMode(Echo, INPUT); Serial.begin(115200); } void loop() { digitalWrite(Trigger, LOW); delayMicroseconds(1000); digitalWrite(Trigger, HIGH); delayMicroseconds(10); digitalWrite(Trigger, LOW); duracion = pulseIn(Echo, HIGH); duracion = (duracion / 2.9) / 2; Serial.println(duracion); }
Dieses Beispiel gibt das Ergebnis in Millimetern auf dem Monitor der Arduino IDE aus. In diesem Code wird die Funktion long Distance(long time) verwendet, um die Entfernung zu berechnen. In diesem Code wird ein delayMicroseconds von 2 verwendet:
//Beispielcode für die Verwendung mit NodeMCU oder Arduino Uno. const int TriggerPin = 12; //Trig pin const int EchoPin = 13; //Echo pin long Duration = 0; void setup(){ pinMode(TriggerPin,OUTPUT); // Trigger ist ein Ausgang pinMode(EchoPin,INPUT); // Echo ist ein Eingang Pin Serial.begin(115200); // Ausgang von Serieller Anschluss } void loop(){ digitalWrite(TriggerPin, LOW); delayMicroseconds(2); digitalWrite(TriggerPin, HIGH); // Aktivieren Sie den Trigger-Pin (Pin 12) delayMicroseconds(10); // 10 Mikrosekunden warten digitalWrite(TriggerPin, LOW); // Deaktivieren Sie den Trigger-Pin Duration = pulseIn(EchoPin,HIGH); // Aktivieren Sie den Pin Echo (Pin 13) // Die Funktion gibt die ermittelte Dauer
// zurück long Distance_mm = Distance(Duration); // Wir verwenden die Dauer, um die Entfernung zu
// berechnen. Serial.print("Distance = "); // Wir schreiben für Monitor Serial.print(Distance_mm); Serial.println(" mm"); delay(1000); // Ein Sekunde warten } long Distance(long time) { // Berechnung der Entfernung in mm // ((time)*(Geschwindigkeit des Schalls))/ hin und her zu dem Objekt) * 10 long DistanceCalc; // Berechnung der Variablen DistanceCalc = ((time /2.9) / 2); // Berechnung in mm //DistanceCalc = time / 74 / 2; // Berechnung in Zoll return DistanceCalc; // Die Funktion gibt den Wert in mm zurück. }
Schreibe einen Kommentar Antworten abbrechen