
Zitat von
inka
...der arm ruckelt aber ziemlich...
Code:
void loop() {
float dx = map(analogRead(xdirPin), 0, 1023, -5.0, 5.0);
float dy = map(analogRead(ydirPin), 0, 1023, 5.0, -5.0);
float dz = map(analogRead(zdirPin), 0, 1023, 5.0, -5.0);
float dg = map(analogRead(gdirPin), 0, 1023, 5.0, -5.0);
map ist eine Integerfunktion. dx, dy etc. werden also nur ganzzahlige Werte zwischen -5 und 5, also 11 Schritte annehmen. Damit ruckelts.
Lösung ist einfach: Einfach folgende Funktion vor die loop()-Definition setzen:
Code:
float map(long x, long in_min, long in_max, float out_min, float out_max)
{
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
Lesezeichen