【发布时间】: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