Anfängerfrage zu Funktionen

Hallo, bin ebenfalls neu hier in diesem Gebiet. Zurzeit beschäftige ich mich mit dem Arduino Uno und dem Ultraschall Distanz Sensor. Die Ermittlung der Entfernung klappt auch nahezu einwandfrei ... Allerdings werden bei mir Nachkommastellen durch ".00" ersetzt.

Statt einer Entfernung von zum Beispiel "51.4cm" wird mir "51.00cm" angezeigt (Serial Monitor). Da die Umrechnungen in Funktionen erfolgen vermute ich, das dort der Fehler liegt.

Mir erschließt sich einfach nicht warum...

Vielleicht hab ich eine Kleinigkeit übersehen oder vergessen ?!?

float entfernung (int Einheit) { long sigLaenge ;

//Pin Mode pinMode(pPin, OUTPUT) ; //PingPin pinMode(ePin, INPUT) ; //EchoPin

//Signal digitalWrite(pPin, LOW) ; delayMicroseconds(2) ; digitalWrite(pPin, HIGH) ; delayMicroseconds(5) ; digitalWrite(pPin, LOW) ;

//Signal Verarbeitung sigLaenge = pulseIn(ePin, HIGH) ;

//Erg Rückgabe return entfUmrechner(Einheit,sigLaenge) ; }

float entfUmrechner (int einheit, long SignalLaenge) { if (einheit == 1) return (SignalLaenge * 340) / 2 / 1000 ; //mm if (einheit == 2) return (SignalLaenge * 340) / 2 / 10000 ; //cm if (einheit == 3) return (SignalLaenge * 340) / 2 / 100000 ; //m }

Es wäre schön, wenn mit einer von Euch bei meinem kleinen Problem helfen könnte :)

Danke

mfg. Daidalos127

HI

dein Problem kommt durch das

...
long sigLaenge;
...

zustande. long ist eine "große Integerzahl", also ganzzahlig. Verwende float oder double als Datentyp und die sache läuft ;-)

gruß

ShuftY

Es funktioniert :)

Vielen Dank.

Gerne! 8)