Hallo,
ich habe einen SCA100T mit dem Arduino UNO verbunden. Wenn man ihn entsprechend neigt, bekomme ich das auch im Seriellen Monitor angezeit, allerdings nur als Zahlen von 0 bis 1023. Ich möchtejedoch direkt den Winkel in Gradzahlen ausgegeben bekommen. Was muss ich dafür im Code ändern? Die Spanne liegt bei -30° bis +30°.
Die y-Achse des Sensors ist an A3 angeschlossen, von ihr möchte ich die genauen Winkel wissen.
Hier mein Code:
void setup() {
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(A3);
Serial.print(sensorValue);
delay(1000); // delay in between reads for stability
}
Ahub:
Zahlen von 0 bis 1023. Ich möchtejedoch direkt den Winkel in Gradzahlen ausgegeben bekommen. Was muss ich dafür im Code ändern? Die Spanne liegt bei -30° bis +30°.
Hm. Kommt "Dreisatz" heute in der Schule eigentlich noch als Thema dran?
Dein Sensor liefert die Zahl 0 als Messwert bei -30° Winkel und er liefert 1023 bei einem Winkel von 30°.
ich würde vorher X mit 60 multiplizieren und dann erst durch 1023 dividieren. wird wahrscheinlich genauer sein. und spart man sich damit nicht auch die einbindung der gleitkomma-funktionen (sketchgröße!)?
Hallo,
ich wage mich hier einmal auf dünnes Eis.
Es wird ein Wert von -30 Grad bis +30 Grad geliefert.
Das ist ein Weg von 60 Grad.
Dafür hat er eine Auflösung von 1023(1024)
Wenn ich jetzt die 60 Grad durch 1023 teile, komme ich auf 0,059.
Was soll den diese "0,059" sein. Die Zahl hat doch nichts mit Grad zu tun.
Das andere, ihr rechnet hier doch "lineal".
Aus dem Ding kommt aber alles mögliche raus- nur nichts lineares.
Oder spielt das alles keine Rolle.
Gruß und Spaß
Andreas
SkobyMobil:
Das andere, ihr rechnet hier doch "lineal".
Nein, sie rechnen linear. Daher mein Hinweis zum Datenblatt, wo es heißt:
alpha = arcsin ((Vout-Offset)/Sensitivity)
Für kleine alpha gilt ja auch alpha=arcsin(alpha), was auch ganz schön im ausgeführt wird. Zählen die 30° als maximale Auslenkung noch als klein, ist da die spannende Frage. Hierzu gibt auch das Datenblatt eine Antwort: Rechnen man linear, ergibt sich hier eine Winkelabweichung von ca. 1,67°. Das ist meines Erachtens vertretbar, bei 15° liegt die Abweichung bei nur 0,2°.
Natürlich habt ihr Recht, habe keinen Blick in das f***ing datasheet geworfen.
Mir ging es um die Umsetzung der linearen Funktion die durch die Punkte -30/0 30/1023. definiert ist.
Und dies war von jurs und von uwe nicht ganz richtig, bei solchen Leuten ist das aber eher auf einen Flüchtigkeitsfehler zurückzuführen.
Oder die Aufgabe zu einfach