Hardware-Info
Ultraschallsensor HC-SR04 mit 4 Anschluss-Pins
Der Ultraschallsensor "HC-SR04" verwendet Ultraschallwellen, um den Abstände zu Objekten zu bestimmen. Das Modul "HC-SR04" kann berührungslose Messungen in einem Bereich von 20 bis 4000 Millimeter mit einer Genauigkeit von 3 Millimetern durchführen.
Jedes "HC-SR04"-Modul verfügt über einen Ultraschall-Sender, -Empfänger und eine elektronische Schaltung.
Der Sensor besteht aus einem Ultraschallsender und einem Empfänger. Der Sensor sendet Ultraschallwellen auf einer bestimmten Frequenz aus. Die Ultraschallwelle durchdringt den Raum, trifft auf ein Hindernis, wird von dem Hindernis zurückgeworfen und dann von einem Empfänger erfasst. Die Geschwindigkeit der Ultraschallwellen in der Luft beträgt etwa 343 m/s, so dass man nur das Zeitintervall vom Senden bis zum Empfang messen muss. Zur Berechnung der Entfernung wird die Geschwindigkeit der Ultraschallwelle in der Luft mit der Hälfte des Zeitintervalls multipliziert. Das Zeitintervall muss durch zwei geteilt werden, weil die Ultraschallwelle zum Hindernis und zurück wandert.
Technische Daten:
» Stromversorgung und Logik-Spannungsbereich: 5V
» Betriebsgleichstrom: 15mA
» Winkel der Messung: 15°
» Abstandsbereich: 20mm - 4000mm
» Praktischer Messabstand : 20mm - 800mm
Wenn wir das Modul mit dem Mikrocontroller verbinden, benötigen wir zwei Pins für die Messung: Den Trigger-Pin als Eingangspin und den Echo-Pin als Ausgangspin. Der Trigger-Pin muss für 10us auf den Zustand HIGH und dann auf den Zustand LOW gesetzt werden. Dadurch wird die Ultraschallwelle übertragen, und der Empfänger wartet darauf, dass die Welle zurückgeworfen wird. Wenn die Welle zurückkehrt, geht der Echo-Pin auf HIGH.
ACHTUNG!
Zur Schaltung geht es nur, wenn Sie bei TINKERCAD angemeldet sind!
Hier melden Sie sich an:
Beispiel für den Anschluss des Ultraschallsensors HC-SR04 mit 4 Anschluss-Pins an den Arduino:
int trigger = 7; //grün
int echo = 6; //blau
void setup() {
Serial.begin(9600);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
}
void loop() {
digitalWrite(trigger, LOW); delay (5);
digitalWrite(trigger, HIGH); delay (5);
digitalWrite(trigger, LOW);
int dauer = pulseIn(echo, HIGH); // Zeit bis Signal zurückkehrt in s
int entfernung = 0.0343*(dauer/2); // Zeit in Entfernung umrechnen; s = v*t
Serial.print(entfernung); Serial.println(" cm"); delay(1000);
}
Entfernung messen mit Ultraschall Aufgabe 1
Die PDF-Dateien zum Ausdrucken als Schüler-Arbeitsblätter
sind auf Technik-online verfügbar.
CODE Rückfahr-Warner
int trigger=7;
int echo=6;
long dauer=0;
int LED=12;
long entfernung=0;
void setup()
{
Serial.begin (9600);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
pinMode(12, OUTPUT);
}
void loop()
{
digitalWrite(trigger, LOW);
delay(5);
digitalWrite(trigger, HIGH);
delay(10);
digitalWrite(trigger, LOW);
dauer = pulseIn(echo, HIGH);
entfernung = (dauer/2) * 0.03432;
if (entfernung >= 500 || entfernung <= 0)
{
Serial.println("Kein Messwert");
}
else
{
Serial.print(entfernung);
Serial.println(" cm");
}
if (entfernung <= 40)
{
digitalWrite(LED, HIGH);
delay(entfernung*3);
digitalWrite(LED, LOW);
delay(entfernung*3);
}
}
Entfernung messen mit Ultraschall Aufgabe 2
#include <LiquidCrystal.h> // includes the LiquidCrystal Library
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
const int trigPin = 9;
const int echoPin = 10;
long duration;
int distanceCm, distanceInch;
void setup() {
lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
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); // Sets the location at which subsequent text written to the LCD will be displayed
lcd.print("Distance: "); // Prints string "Distance" on the LCD
lcd.print(distanceCm); // Prints the distance value from the sensor
lcd.print(" cm");
delay(10);
lcd.setCursor(0,1);
lcd.print("Distance: ");
lcd.print(distanceInch);
lcd.print(" inch");
delay(10);
}
Gehe zu TINKERCAD und vervollständige den Schaltplan mit den vorgegebenen Komponenten. Richte Dich mit den Anschlüssen nach der Vorlage oben links.
Wenn alles richtig funktioniert wie im Video links
- verändere den Code so, dass die Anzeige in Deutsch mit cm erscheint
Hier findest Du die Lösung!
Baue die Schaltung auf mit ARDUINO und Breadboard.
Kopiere den CODE