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.