Hallo,
da ich noch ein Anfänger bin und bei meinem Schulprojekt noch kleinere Schwierigkeiten habe, wollte ich hier mal nach Hilfe fragen.
Und zwar programmiere und baue ich zurzeit eine Einparkhilfe mit dem Arduino. Sie funktioniert bis jetzt auch einwandfrei, jedoch wollte ich sie ein wenig verbessern. Ich habe in meinem Code bestimmte Werte festgelegt, die je nach Entfernung einen von vier bestimmten Tönen ausgeben. Jedoch meinte mein Lehrer es wäre besser, wenn diese Übergänge "flüssig" wären. Leider ist mir auch nach einer Überlegungszeit nicht klar geworden, wie ich hier eine Variable einbaue und diese so verwenden kann, dass sie meinen Zweck erfüllt.
Ich würde mich sehr über eure Hilfe freuen
int trigger=7;
int echo=6;
long dauer=0;
long entfernung=0;
const int kurzerTON = 50;
const int leiserTON = 25;
const int mittlererTON = 12;
const int lauterTON = 3;
void setup()
{
Serial.begin (9600);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
}
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");
}
delay(1000);
if(entfernung >= kurzerTON)
{
tone(8, 200);
delay(500);
noTone(8);
delay(400);
}
else if(entfernung >= leiserTON)
{
tone(8, 500);
delay(1000);
noTone(8);
delay(300);
}
else if(entfernung >= mittlererTON)
{
tone(8, 1500);
delay(1500);
noTone(8);
delay(200);
}
else if(entfernung >= lauterTON)
{
tone(8, 1000);
delay(2500);
noTone(8);
delay(50);
}
}