【问题标题】:Arduino loop update of a variable is incorrect变量的 Arduino 循环更新不正确
【发布时间】:2016-09-13 05:27:25
【问题描述】:

我在 setup() 函数中有如下代码 sn-p:

...
unsigned int a0val;
unsigned int a0total = 0;
...
for (i = 0; i < 1000; i++) {
    a0val = analogRead(A0);
    Serial.println(a0val);
    a0total += a0val;
}
Serial.println(a0total);
...

这样做是为了在启动时确定模拟值的基线,以说明正在使用的不同类型的传感器。一种类型可能读取 0,另一种类型可能读取一些非零值。关键是通过在启动时平均 1000 个读数来获得起点参考。 1000显然是大材小用了,以后我会削减。

现在,有 1000 个读数介于 128 和 130 之间,我预计 a0total 约为 129,000。但是,总数始终不到该数字的一半,例如在一个示例中为 63,722。还不到一半,还不到一半。

另一个例子:当前 500 个读数都在 350-352 左右时,我将它们加起来,总数为 43614。看起来像是环绕,但我对这两个值都使用了 unsigned int 以便可以不会发生。

所以对我来说,“a0total += a0val”似乎并没有更新每个循环,但这也没有任何意义。

我错过了什么?

谢谢, 罗恩

【问题讨论】:

    标签: arduino


    【解决方案1】:

    您在此平台上缺少 unsigned int 的大小。它是 16 位,因此最大值是 65535

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多