analogRead()

描述

从指定的 pin 脚读取类比电压讯号,86Duino 板拥有数个通道 (在 ZERO 和 EduCake 上有 6 个,ONE 上有 7 个) 可以将类比讯号转换成 10-bit 的数位讯号,换句话说,此函式会将 0 到 3.3 伏特的输入电压转换成 0 到 1023 的整数 (或者是 0 到 2047,藉由 analogReadResolution() 来设定,可以让此函式的回传值解析度提升至最高 11-bit)。预设的解析度为 3.3 伏特/1024 单位或相当于 0.0032 伏特 (3.2 毫伏特)/1 单位。

此函式每次会花费 15 微秒 (0.000015s) 的时间来读取类比讯号,所以读取频率约是一秒 66666 次。

另外,由于 86Duino PLC 上没有类比电压通道,使用此函式取得的 10-bit 值将不具任何意义。

语法


analogRead(pin)

参数

pin: 类比讯号输入 pin 脚的编号 (在 Zero 和 EduCake 上是 0~5,在 ONE 上是 0~6)

回传

int (预设是 0 到 1023)

注意

如果类比讯号输入 pin 脚上没有连接任何东西,analogRead() 将回传由某些因素 (例:其他的数位讯号输入、使用者的手靠近板子、…) 所造成的浮动数值。

在 86Duino 板上,类比转数位讯号的最大输入电压可以达到 3.3 伏特,所以使用者必须注意每个类比讯号输入不要大过这个限制,如果输入类比讯号 pin 脚的电压超过 3.3 伏特,转换出来的数值会变得很奇怪,甚至有可能会烧毁电路板。

范例

int analogPin = 3;     // 可变电阻 (中间脚) 与类比pin3连接
                       // 外部接地与输入电压 5 伏特
int val = 0;           // 储存读入数值的变数

void setup()
{
  Serial.begin(9600);          //  设置序列埠
}

void loop()
{
  val = analogRead(analogPin);    // 读取输入 pin 脚
  Serial.println(val);            // 除错数值
}

See also

analogReadResolution()
Tutorial: Analog Input Pins


语法参考主页面

本页由热血青年 LBU 译自英文版。

The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.