Karl-Heinz V. schrieb:
> Manchmal (nach einem Neustart) kommen vollkommen idiotische
> Werte dabei raus.
Ist jetzt zwar nur ein Schuß ins Blaue, aber zumindest beim ESP8266 gibt
der Bootloader beim Start irgendwelche Debug-Daten mit 57,6 kBaud am
seriellen Port aus; falls das beim ESP32 ähnlich ist, könnte das den
Controller am US100 vielleicht manchmal verwirren bzw. abstürzen lassen?
Eventuell mal einen anderen (gg. Soft-) Serial Port probieren oder den
US100 etwas verzögert starten lassen könnte helfen.
Karl-Heinz V. schrieb:
> das Resultat ist viel präziser, als das Ergebnis
> des Sensor-Controllers.
> Der interne Controller gibt ca 3 cm weniger aus
Das spricht aber ohnehin stark dafür, die Auswertung selbst zu
erledigen, wenn der interne Controller so fehlerhafte Werte liefert. Die
passende Formel zur Entfernungsberechnung findet sich ja eh in dem
Programmbeispiel in dem verlinkten Datenblatt:
pulseIn liefert die Zeit (bis zum Eintreffen des Echos) in µs; die
Hälfte davon ist die Zeit für die einfache Strecke.
Der 'Umrechnungsfaktor' von 29.1 ist 10000/Schallgeschwindigkeit (in
Luft, bei 20°C) in m/s. In den 10000 stecken die Umrechnungen von m in
cm, sowie von s in µs.
Karl-Heinz V. schrieb:
> Und diese "magische Nummer 45" für die Temperatur-Korrektur?
> Ist das nicht einfach eine Umrechnung von
> Fahrenheit in Celsius für Doofe?
Nö, dafür bräuchte es auch noch einen multiplikativen Faktor; das dürfte
einfach eine Verschiebung des Wertebereichs sein, um auch negative °C
messen bzw. in einem Byte (Wertebereich: 0-255) codieren zu können.