Ihre Browserversion ist veraltet. Wir empfehlen, Ihren Browser auf die neueste Version zu aktualisieren.

Abstandsmessung mit dem  Ultraschallsensor

Aufgabe

Wenn ein Gegenstand näher als 20cm entfernt ist, soll eine LED leuchten

Aufbau der Schaltung

Material

  • Arduino
  • Ultraschallsensor HC-SR04
  • LED
  • Widerstand 150 - 330Ω
  • Breadboard
  • Leitungen

 

Aufbau der Schaltung

Der Ultraschallsensor ist ein Ultraschallsender  und –Empfänger in einem.

Bekommt er vom Arduino ein 5V Signal (HIGH) an den Trigger-Pin (hier Pin 8), sendet er einen Ultraschallpieps aus.

 

Dieser Schall wird von irgendeinem Gegenstand reflektiert und irgendwann später vom Sensor empfangen.

 

Der Sensor sendet daraufhin ein 5V Signal (HIGH) an den Arduino (hier Pin 7). Jetzt muss man im Programm dafür sorgen, dass die Zeit zwischen den Signalen gestoppt wird.

Aus der Schallgeschwindigkeit in Luft (344m/s bzw. 1cm in 29,1 Mikrosekunden) kann man nun den Abstand berechnen.

Diese Umrechenarbeiten nimmt uns aber ArduBlock ab!!!!

Das ArduBlock-Programm

Bedeutung der einzelnen Blöcke

(Steht unter dem Block keine Erklärung, dann wurde er bereits in einem Tutorial erklärt)

Eine Variable mit dem Namen „Abstand“ wird erstellt.

Ihren Wert erhält die Variable aus den Berechnungen, die sich aus den Zeitabständen der Signale an Pin 7 und Pin 8 ergeben.

An Pin 8 wird ein Signal ausgegeben, daraufhin sendet der Sensor einen Pieps. Sobald der Sensor das Echo  empfängt, legt er an Pin 7 ein HIGH-Signal an. Aus der Zeit zwischen Pieps und Echo wird die Entfernung berechnet und unter dem Namen „Abstand“ gespeichert.

 

An den seriellen Monitor werden die Buchstaben „Der Abstand ist“ und der Wert der Variablen „Abstand“ gesendet.

 

Ist die Abfrage in der Zeile "teste" wahr, dann wird der Befehl in der Zeile "dann" ausgeführt. Ist die Zeile "teste" nicht wahr, dann wird der Befehl in der Zeile "sonst" ausgeführt.

Wenn die der Wert der Variablen „Abstand“ kleiner als 20 ist, dann soll an Pin 3 ein HIGH gesendet werden (LED ist an) , Wenn nicht dann soll ein LOW gesendet werden (LED ist aus)

 

Der Arduino-Sketch

(Steht keine Erklärung, dann wurde der Befehl bereits in einem Tutorial erklärt)

1 int ardublockUltrasonicSensorCodeAutoGeneratedReturnCM(int trigPin, int echoPin)

/ Ein Variable mit dem langen Namen... wird gebildet. Dazu sind die beiden Variablen werden nötig: trigPin und echoPin.

2

 

3      int duration;  // Eine Variable mit dem Namen „Duration“ (Dauer) wird erstellt.
4      pinMode(trigPin, OUTPUT); // Der Pin mit dem Namen trigPin ist ein Ausgang.
5      pinMode(echoPin, INPUT); // Der Pin mit dem Namen echoPin ist ein Eingang.
6      digitalWrite(trigPin, LOW);  // Am Pin mit dem Namen trigPin wird eine Spannung von 0V (LOW) gelegt
7      delayMicroseconds(2); // Eine kurze Pause von 2 Mikrosekunden wird eingelegt.
8      digitalWrite(trigPin, HIGH);  // Am Pin mit dem Namen trigPin werden 5V (HIGH) angelegt. Der Sensor sendet einen Pieps.
9      delayMicroseconds(20); // Der Pieps dauert 20 Mikrosekunden
10       digitalWrite(trigPin, LOW); // Die Spannung am Pin trigPin wird wieder auf 0V gesetzt.
11       duration = pulseIn(echoPin, HIGH);

// Der Wert der Variablen wird berechnet: Wie lange ist der Zeitabstand vom Pieps bis zum Echo?

12      duration = duration / 59;

// Die Dauer wird erneut berechnet: Der alte Wert wird durch 59 geteilt, damit wird der Abstand in cm berechnet.

13       return duration;  
14  }  
15 int _ABVAR_1_Abstand;  
16 void setup()  
17 {  
18      _ABVAR_1_Abstand = 0;  
19      Serial.begin(9600);                                          

 

20 digitalWrite( 8 , LOW );

 

22  pinMode( 3 , OUTPUT);

 

22  }  
23  void loop()  
24  {  
25       ABVAR_1_Abstand = ardublockUltrasonicSensorCodeAutoGeneratedReturnCM( 8 , 7 ) ; // Die Variable “_ABVAR_1_Abstand” erhält den gleichen Wert, wie die langnamigen  Variable, die von Pin 7 und Pin 8 abhängig ist.
26       Serial.print( "Der Abstand ist" );  
27       Serial.print( _ABVAR_1_Abstand );  
28       Serial.println("");  
29       if (( ( _ABVAR_1_Abstand ) < ( 20 ) ))

// Wenn der Wert der Variablen ABVAR_1_Abstand < 20 ist, dann...

30               

 

31                digitalWrite( 3 , HIGH );

 

32            }

 

33      else

// sonst...

34           {

 

35                digitalWrite( 3 , LOW );  
36           }  
37 }  

Cookie-Regelung

Diese Website verwendet Cookies, zum Speichern von Informationen auf Ihrem Computer.

Stimmen Sie dem zu?