sketch_22_ultraschall_abstandsmessung

sketch_22_ultraschall_abstandsmessung
  /*Dieser Sketch misst die Entfernung zu einem Hindernis mit einem Ultraschallsensor HC-SR04 und zeigt sie im Serial Monitor an.
   Wenn die Entfernung unter 30cm ist, ertoent der Buzzer (Piezo-Summer).
   Der Buzzer ist ein Passive Buzzer, man kann unterschiedliche Tonsignal-Frequenzen programmieren*/
  
  void setup()
  {
  /*Programmiere die Arduino-Anschluesse D2, D4 und A5=D19 als Ausgang oder Eingang*/  
    pinMode(2, OUTPUT);                   //Signal Trig zum HC-SR04
    pinMode(19, INPUT);                   //Signal Echo vom HC-SR04
    pinMode(4, OUTPUT);                   //Tonsignal zum Buzzer 
  
  /*Starte die serielle Kommunikation (Baudrate 9600), damit man sich die Werte am Serial Monitor ansehen kann*/
    Serial.begin (9600);  
  }                 
  
  void loop()
  {
  /*Zunaechst werden einige Variablen definiert*/
    long dauer=0;                         // in der Variablen "dauer" wird die Zeit gespeichert, die eine Schallwelle bis zur Reflektion und zurueck benoetigt 
    long entfernung=0;                    // in der Variablen "entfernung" soll die berechnete Entfernung gespeichert werden 
     
  /*Dieser Programmteil ermittelt die Entferung zu einem Hindernis*/
    digitalWrite(2, LOW);                   //Hier nimmt man die Spannung fuer kurze Zeit vom Trig-Pin, fuer ein rauschfreies Signal beim Senden
    delay(5);                               //...fuer die Dauer 5 Millisekunden
    digitalWrite(2, HIGH);                  //Ein HIGH-Signal wird zum Trig-Eingang des HC-SR04 gesendet
    delayMicroseconds(15);                  //Die Dauer muss mindestens 10 Mikrosekunden sein, hier gewaehlt 15
    digitalWrite(2, LOW);                   //Wenn das Trig-Signal wieder auf LOW geht, sendet der HC-SR04 Ultraschallwellen aus (8 mal, Frequenz 40kHz)
    dauer = pulseIn(19, HIGH);              //Der Arduino zaehlt die Zeit in Mikrosekunden, bis der reflektierte Schall zum Ultraschallsensor zurueckkehrt
    entfernung = (dauer/2) * 0.03432;       //Nun wird aus der Zeit die Entfernung in cm berechnet (Bsp.: 10ms entspricht Entfernung 170cm)
    Serial.print(entfernung);               //Der Wert der Entfernung wird an den Serial Monitor uebergeben
    Serial.println(" cm");                  //Hinter dem Wert der Entfernung soll die Einheit "cm" angegeben sowie die Anzeigezeile gewechselt werden (CR)
    if (entfernung < 30)                    //Wenn der Wert fuer die Entfernung unter 30 cm betraegt dann... 
    {
    tone(4,1000,1000);                      //...sende Signal zum Buzzer (Arduino erzeugt an D4 einen Ton 1000Hz fuer Dauer 1000ms)
    }
    else                                    //und wenn das nicht so ist... 
    {
    digitalWrite(4,LOW);                    //...dann kein Ton
    }
    delay(1000);                             //Aller 1000 Millisekunden ein neuer Messvorgang
  }