analogRead() 用于从 Arduino 的模拟输入引脚读取数值。
在 Arduino UNO 上,除了 14 个数字输入/输出引脚,还带有 6 个模拟引脚,即板上编号带 A 的引脚。引脚 A0 到 A5 被用来获取模拟信号的输入值,这些引脚有一个预装的 ADC(Analog-to-Digital Converter,模数转换器),它将模拟信号转换为数字信号,从而可以被机器读取。
ADC 读取不断变化的电压,并将模拟信号从 0 转换为 1023,然后将这个值传达给机器。换句话说,我们可以将 5V 等分成 1024 份。0V 的输入信号对应着数值 0,而 5V 的输入信号对应着 1023。
Arduino 读取一次模拟输入需要消耗 100 微秒的时间,最大频率为 10000HZ。
注意:在模拟输入引脚没有任何连接的情况下,用 analogRead() 读取该引脚,这时获得的返回值为不固定的数值。这个数值可能受到多种因素影响,如将手靠近引脚也可能使得该返回值产生变化。
示例代码:
// 传感器数据传输引脚连接在Arduino的A0引脚
// 传感器另外两个引脚分别连接在Arduino的5V和GND引脚
// 变量sensorValue用来存储模拟输入信号
int sensorValue = 0;
void setup()
{
// Arduino串口通讯初始化
Serial.begin(9600);
}
void loop()
{
// 读取引脚A0输入信号
sensorValue = analogRead(A0);
// 将A0输入信号转换为0-1023之间的数值
// 并且通过串口监视器显示
Serial.println(sensorValue);
}