说明
本指令用于从Arduino的模拟输入引脚读取数值。Arduino控制器有多个10位数模转换通道。这意味着Arduino可以将0-5伏特的电压输入信号映射到数值0-1023。
换句话说,我们可以将5伏特等分成1024份。0伏特的输入信号对应着数值0,而5伏特的输入信号对应着1023。
例:
当模拟输入引脚的输入电压为2.5伏特的时候,该引脚的数值为512。
(2.5伏特 / 5伏特 = 0.5, 1024 X 0.5 ?=512)
引脚的输入范围以及解析度可以使用analogReference()指令进行调整。
Arduino控制器读取一次模拟输入需要消耗100微秒的时间(0.0001秒)。控制器读取模拟输入的最大频率是每秒10,000次。
注意:在模拟输入引脚没有任何连接的情况下,用analogRead()指令读取该引脚,这时获得的返回值为不固定的数值。这个数值可能受到多种因素影响,如将手靠近引脚也可能使得该返回值产生变化。
语法
analogRead(pin)
参数
pin
:被读取的模拟引脚号码
返回值
0到1023之间的值
示例程序
在本示例中,我们将电位器的三个引脚分别连接在5V, GND, 以及A0引脚。通过调节电位器, A0引脚的输入电压将在0V-5V之间。在Arduino内置的模拟数字转换功能作用下,该输入电压将被映射到数值0-1023之间。
(0V对应数值0, 5V对应1023)。这一数值将通过串口监视器显示。
连接说明(如下图)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
/* analogRead()示例程序 v1.0 Created 2016 by 太极创客 www.taichi-maker.com 说明: 本程序旨在演示如何使用analogRead()读取Arduino的引脚电平。 通过调节电位器, A0引脚的输入电压将在0V-5V之间。 该输入电压将被映射到数值0-1023之间,并显示在串口监视器中。 获得具体连接电路图,请参阅太极创客网站。 This example code is in the public domain. */ //电位器中间引脚连接在Arduino的A0引脚 //电位器另外两个引脚分别连接在Arduino的5V和GND引脚 //变量val用来存储模拟输入信号 int val = 0; void setup() { //Arduino串口通讯初始化 Serial.begin(9600); } void loop() { //读取引脚A0输入信号 val = analogRead(A0); //将A0输入信号转换为0-1023之间的数值 //并且通过串口监视器显示 Serial.println(val); } |