First "Hello" to everyone.
I'm working on my technician thesis currently. One part is a project in which a piezo speaker should report the distance to the IR sensor by bleeping in intervals, getting faster the nearer the obstacle is.
Unfortunately my sketch works contrariwise - the farther the obstacle is, the faster the piezo speeker bleeps.
I experimented the whole day, but I can't find a solution.
I would be very grateful, if you could help me.
Greetings.
const int SensorPin = 0; //SensorPin als 0 gesetzt
int Piezo = 2; //Piezo als 2 gesetzt
long ZeitletzteMessung = 0; //ZeitletzteMessung als 0 gesetzt
void setup()
{
pinMode(Piezo, OUTPUT); //Piezo als Output gesetzt
Serial.begin(9600); //Initalisiert den seriellen Port mit der geforderten Übertragungsrate
}
void loop()
{
pinMode(SensorPin, INPUT); //SensorPin als Eingang gesetzt
int SensorWert=analogRead(0); //der Wert des analogen Eingangs wird der Variablen SensorWert übergeben
Serial.println(SensorWert); //Ausgabe des empfangenen Wertes an die serielle Schnittstelle
int Dauer = map(SensorWert, 0, 1023, 0, 5000); //Messwertskalierung/-umrechnung
unsigned long ZeitaktuelleMessung = millis(); //Zeit seit Start des Programms wird in der Variablen ZeitaktuelleMessung gespeichert
if(ZeitaktuelleMessung - ZeitletzteMessung > Dauer)
{
ZeitletzteMessung = ZeitaktuelleMessung;
if (Dauer!=0)
{
if (Dauer<2000)
{
for (int i=0; i<500; i++)
{
digitalWrite(Piezo, HIGH);
delayMicroseconds(150);
digitalWrite(Piezo, LOW);
delayMicroseconds(150);
}
}
}
}
delay(100);
}