int trigger_L=7; //Trigger-Pin des Ultraschallsensors an Pin7 des Arduino-Boards
int echo_L=6; // Echo-Pim des Ultraschallsensors an Pin6 des Arduino-Boards
long dauer_L=0; // Das Wort dauer ist jetzt eine Variable, unter der die Zeit gespeichert wird, die eine Schallwelle bis zur Reflektion und zurück benötigt. Startwert ist hier 0.
long entfernung_L=0; // Das Wort „entfernung“ ist jetzt die variable, unter der die berechnete Entfernung gespeichert wird. Info: Anstelle von „int“ steht hier vor den beiden Variablen „long“. Das hat den Vorteil, dass eine größere Zahl gespeichert werden kann. Nachteil: Die Variable benötigt mehr Platz im Speicher.
int trigger_R=5;
int echo_R=3;
long dauer_R=0; // Das Wort dauer ist jetzt eine Variable, unter der die Zeit gespeichert wird, die eine Schallwelle bis zur Reflektion und zurück benötigt. Startwert ist hier 0.
long entfernung_R=0;
#include <Servo.h>
Servo sx;
int val; //val = A-B+k
void setup()
{
sx.attach(10);
Serial.begin (9600); //Serielle kommunikation starten, damit man sich später die Werte am serial monitor ansehen kann.
pinMode(trigger_L, OUTPUT); // Trigger-Pin ist ein Ausgang
pinMode(trigger_R, OUTPUT);
pinMode(echo_L, INPUT); // Echo-Pin ist ein Eingang // Trigger-Pin ist ein Ausgang
pinMode(echo_R, INPUT); // Echo-Pin ist ein Eingang
}
void loop()
{
digitalWrite(trigger_L, LOW); //Hier nimmt man die Spannung für kurze Zeit vom Trigger-Pin, damit man später beim senden des Trigger-Signals ein rauschfreies Signal hat.
delay(5); //Dauer: 5 Millisekunden
digitalWrite(trigger_L, HIGH); //Jetzt sendet man eine Ultraschallwelle los.
delay(10); //Dieser „Ton“ erklingt für 10 Millisekunden.
digitalWrite(trigger_L, LOW); //Dann wird der „Ton“ abgeschaltet.
dauer_L = pulseIn(echo_L, HIGH); //Mit dem Befehl „pulseIn“ zählt der Mikrokontroller die Zeit in Mikrosekunden, bis der Schall zum Ultraschallsensor zurückkehrt.
entfernung_L = (dauer_L/2) * 0.03432;
Serial.print(entfernung_L); //…soll der Wert der Entfernung an den serial monitor hier ausgegeben werden.
Serial.print("_cm_L "); // Hinter dem Wert der Entfernung soll auch am Serial Monitor die Einheit "cm" angegeben werden.
delay(10);
digitalWrite(trigger_R, LOW);
delay(5);
digitalWrite(trigger_R, HIGH);
delay(10);
digitalWrite(trigger_R, LOW);
dauer_R = pulseIn(echo_R, HIGH);
entfernung_R = (dauer_R/2) * 0.03432;
Serial.print(entfernung_R);
Serial.print("_cm_R \n");
delay(10);
delay(500);
val = int(entfernung_R)-int(entfernung_L);
val = map(val, 0, 400, 45, 135);
sx.write(val);
}