gpt4 book ai didi

将 Arduino 加速度计的 G 值转换为 float

转载 作者:行者123 更新时间:2023-11-30 17:31:25 25 4
gpt4 key购买 nike

我在尝试将加速器的 G 值从 int 更改为 float 时遇到问题。当我简单地将变量类型从 int 更改为 float 时,它的串行输出在静止时看起来像这样:

-26844 -17153 -26844
mph/s: -0.17
-20133 -17217 -26844
mph/s: -0.17
-26844 -17153 -26844
mph/s: -0.17
-20133 -17217 -26844
mph/s: -0.17
-20133 -17217 -26844
mph/s: -0.17
-20133 -17217 -26844
mph/s: -0.17
-20133 -17217 -26844
mph/s: -0.17

当它只是一个普通的 int 变量类型时,它看起来很正常:

0 0 1
mph/s: 0
0 0 1
mph/s: 0
0 0 1
mph/s: 0
0 0 1
mph/s: 0
0 0 1
mph/s: 0
0 0 1
mph/s: 0

但是,我需要 G 值的浮点版本,以便能够准确计算 mph/s。

编辑:出于保密原因,完整代码已被删除。

  //we send the x y z values as a string to the serial port
sprintf(str, "%d %d %d", xg, yg, zg);
Serial.print(str);
Serial.write(10);

Serial.print("mph/s: ");
Serial.println(mphs);

//It appears that delay is needed in order not to clog the port
delay(15);
}

最佳答案

在我看来问题出在 sprintf 语句上。您正在将 float Xg、Yg 和 Zg 作为 %d 转换为 sprintf()。

Stack Overflow 上有一篇旧帖子处理类似的问题。 Check that out .

关于将 Arduino 加速度计的 G 值转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24622203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com