Hallo zusammen
ich habe folgende Sequenz im Arduino zum auslesen des Sensors programmiert:
Code
digitalWrite(distanceFrontTrig, LOW); // Front
delayMicroseconds(5); // *****
digitalWrite(distanceFrontTrig, HIGH);
delayMicroseconds(10);
digitalWrite(distanceFrontTrig, LOW);
distanceFrontPulseTime = pulseIn(distanceFrontEcho, HIGH, 23200); // Range limited to 400cm
if (distanceFrontPulseTime > 60) { // disturbance filter
distanceFrontCm = distanceFrontPulseTime / 29 / 2;
}
else {
distanceFrontCm = 400; // out of range
}
distanceFrontObstruction = (distanceFrontCm < distanceFrontLimit); // Obstruction detected front side
Alles anzeigen
Die Versuchsanordung besteht aus dem Roboter mit dem Sensor und eine Schachtel im Abstand 25cm vor dem Roboter.
Wenn ich die übertragenen Werte mit der Arduino Entwicklungsumgebung anschaue sehe ich in der Reihe
viele richtige Werte mit 24 und 25 cm
eingestreut der Wert 400cm (timeout) einmalig oder mehrmals hintereinander
Ich kann mich also nicht auf die Messung verlassen!
Mach ich was falsch oder sind die Sensoren nicht verlässlich?
Der Arduino läuft mit einem Zyklus von ca. 400 ms