Abstandsmessung



Zum Messen von Abständen benutzt man sogenannte Distanzsensoren.

In der Arduinospielwiese sollen zwei unterschiedliche Typen zur Anwendung kommen:

  •    Messung mittels Ultraschall

  •    Messung mittels Licht

Der Distanzsensor "HC-SR04", zu haben hier, arbeitet mit Ultraschall.


Er besitzt vier gut beschriftetet Pins:

  • Vcc ( = 5V )

  • Echo

  • Trigg ( = Trigger )

  • GND (= Ground = 0V)


Hier ein Programm:

/*
  Distanzsensor HC-SR04
  Aufgaben:
  a) rote LED bei Unterschreitung eines Abstands (Grenze), sonst gruene LED
  b) Ausgabe des Abstands als Wert im seriellen Monitor

  www.arduinospielwiese.de
*/

//die benutzten Pins
int ledGruen = 10;
int ledRot = 11;
int echoPin = 12;
int triggerPin = 13;

//ein paar Variablen
int Dauer, Abstand, Grenze = 20;


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


void loop() {
 
  //einen Ping senden
  digitalWrite(triggerPin, LOW); delayMicroseconds(2);
  digitalWrite(triggerPin, HIGH); delayMicroseconds(10);
  digitalWrite(triggerPin, LOW);
 
  Dauer = pulseIn(echoPin, HIGH);
  Abstand = (Dauer/2) / 29.1;

  // LEDs zeigen Unterschreitung einer Abstands-Grenze 
  if (Abstand < Grenze) { 
    digitalWrite(ledRot, HIGH);
    digitalWrite(ledGruen, LOW);
  }
  else {
    digitalWrite(ledRot,LOW);
    digitalWrite(ledGruen,HIGH);
  }
 

  // Zahlenwerte im seriellen Monitor ausgeben
  if (Abstand >= 200 || Abstand <= 0){
    Serial.println("ausserhalb der Reichweite");
  }
  else {
    Serial.print(Abstand);
    Serial.println(" cm");
  }
 
  delay(250);
}