Hallo zusammen,
ich habe einen MS5803 Sensor, jedoch bekomme ich bei der Temperaturausgabe immer nur ganze Werte (von 22.0 auf 23.0°C). Der Sensor kann ja viel genauer messen, liegt da ein Fehler bei mir vor, oder kann man mit der Sparkfun Library wikrlich nur ganze ° messen?
hoffe einer kann mir helfen
tight
tight:
hoffe einer kann mir helfen
Ja, sicher, wenn du uns deinen Sketch zeigst.
Geht nicht explizit um meinen Sketch
Passiert genauso bei dem Demosketch
https://github.com/sparkfun/MS5803-14BA_Breakout/blob/master/Libraries/Arduino/examples/SparkFun_MS5803_Demo/SparkFun_MS5803_Demo.ino
Angegeben ist ja eine Genauigkeit von 0,x°C für den Sensor, aber der Sketch löst nur mit ganzen Gradzahlen auf.
Ist das so vorgesehen?
Poste den Sketch bitte hier in Code-Tags, auf dem Tablet kann ich den so nicht ansehen.
int_32_t _temperature_actual = ...
float temperature_reported = _temperature_actual / 100;
return temperature_reported;
Mach doch einfach aus der 100 eine 100. mit Punkt. Das sollte die Integer Division in eine float Berechnung verwandeln.
Dann eventuell noch an der precision beim Aufruf drehen ( ADC_512 -> ADC_1024 )
Dann bei sparkfun suchen / fragen, ob das Absicht ist
[Nachtrag:] Das sind Amis, die haben extra für uns die CELSIUS Konvertierung eingebaut, können sich aber nicht vorstellen, dass jemand Temperaturen mit Nachkommastellen braucht, was auch in Fahrenheit noch blödsinniger ist als bei Celsius. Warum liefern sie aber float als Ergebnis?
Danke für den Tipp
Ich werde das heute Abend mal austesten und dann hier bescheid geben.
Edit: War auch verwundert warum ein Float definiert wird, aber nur ein Integer bei rauskommt. Ein Thema bei Github hab ich schon vor 2 Tagen eröffnet, aber noch keine Antwort erhalten.
Gerade getestet und funktioniert nun einwandfrei
Danke für die schnelle Hilfe
Edit: Sparkfun hat dein fix angenommen und es direkt geändert