2

使用以下代码,我得到一个如下所示的日志。这是为什么?

int analogPin = 5;
int val = 0;

void setup(void) {
   Serial.begin(9600);
}

void loop(void) {
   val = analogRead(analogPin);
   Serial.print("Analog reading = ");
   Serial.println(val);   
}

结果:

Analog reading = 998
Analog reading = 981
Analog reading = 511
Analog reading = 159
Analog reading = 24
Analog reading = 108
Analog reading = 439
Analog reading = 946
Analog reading = 1023
Analog reading = 420
Analog reading = 116
Analog reading = 25
Analog reading = 151
Analog reading = 542
Analog reading = 997
Analog reading = 982
Analog reading = 513
Analog reading = 161
Analog reading = 25
Analog reading = 107
Analog reading = 437
Analog reading = 945
Analog reading = 1023
Analog reading = 421
Analog reading = 117
Analog reading = 25
Analog reading = 150
Analog reading = 541
Analog reading = 997
Analog reading = 983
Analog reading = 515
Analog reading = 162
Analog reading = 25
Analog reading = 107
Analog reading = 437
Analog reading = 945
Analog reading = 1023
Analog reading = 422
Analog reading = 117
Analog reading = 25
Analog reading = 149
Analog reading = 540
Analog reading = 997
Analog reading = 983
Analog reading = 516
Analog reading = 162
Analog reading = 25
Analog reading = 107
Analog reading = 436
Analog reading = 945
Analog reading = 1023
Analog reading = 422
Analog reading = 117
Analog reading = 25
Analog reading = 150
Analog reading = 540
Analog reading = 998
Analog reading = 982
Analog reading = 516
Analog reading = 162
Analog reading = 25
Analog reading = 108
Analog reading = 437

结果只是噪音吗?

一旦我插入电缆,我就会看到以下模式:

Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 72
Analog reading = 447
Analog reading = 1023
Analog reading = 1023
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 118
Analog reading = 849
Analog reading = 1023
Analog reading = 835
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 40
Analog reading = 401
Analog reading = 1023
Analog reading = 1023
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 0
Analog reading = 89
Analog reading = 475
Analog reading = 1023
Analog reading = 1023

这是我的心跳还是这样???不知道什么会对空引脚产生如此大的影响。

4

3 回答 3

4

是的,未连接的模拟引脚产生随机噪声是很正常的。从文档(强调我的):

如果生成的一系列值random()不同很重要,则在随后的草图执行中,使用相当随机的输入randomSeed()初始化随机数生成器,例如未连接引脚上的模拟读取()。

关于插入电缆时看到的值,它们是否有意义取决于您输入引脚的信号。如果有一些差异,可能值得用示波器查看信号。

另外,请参阅在没有实际输入的情况下,analogRead 如何读取从 0 到 1023 的振荡值?

于 2012-05-13T08:56:02.667 回答
1

它是一个浮动输入。如果引脚未连接到任何东西或直接连接到 5V 电源。arduino Button 教程对此做了一些解释。有关更多详细信息,请查看维基百科上拉电阻页面

于 2012-05-14T07:06:52.280 回答
0

我有 PPG 传感器板和 Arduino Mega。我在我的工具包上试过你的代码。当 PPG 传感器板检测到我的心率时,它开始全为零。让我解释一下串行监视器的输出。首先到处都是0。我的心率被检测到。现在不是0。相反,它充满了数字。这些不仅仅是噪音。这些是我现在的噪音+真实心率数字。我猜,Arduino 在其检测频率处显示图形峰值。

于 2013-12-02T20:56:25.597 回答