einer der vielen Vorteile vom Due ist doch u.a., dass er mit floats sehr schnell rechnet, und man muss sich bei floats auch überhaupt keine Gedanken um die Stellen machen - es sei denn, man wollte mit double rechnen.
ein Einzeiler für einen Due-Sketch berechnet die Entfernung direkt aus dem ADC-Wert, und das ist doch nun überhaupt kein Hexenwerk:
Code:
if(analogRead(A0)) !=0) {float Dcm = ( 1.0 * (1/ (float)analogRead(A0) ) * (1023.0/3.3) ) - 4.0;}
Werte für den Sensorport (A0), c (1.0) und k (4.0) können variiert und explizit oder über Konstanten eingebunden werden.
Anm.:
Sinnvollerweise deklariert man
float Dcm;
auch bereits im Funktions-Kopf oder global, nicht erst lokal innerhalb der if-Klammer {...}.
und natürlich kann man Gültigkeitsgrenzen der Sharp-Sensorbereiche noch gesondert behandeln.
Ansonsten erfolgt die Auswertung ganz normal über
if( Dcm > Grenzwert ) { ... }
else { ... }
Lesezeichen