ADC全称为Analog To Digital Converter,中文全称为模数转换器。其作用是把模拟量的电压值,转换为数字。
在前面的教程中我们使用过LM35温度传感器,这个传感器为一个模拟量传感器,给传感器VCC连接ocrobot mango(Arduino兼容板)板上5V,GND连接板子上GND,在Vout引脚会输出电压,从0V开始,每升高10mv电压代表着温度上升1℃,两者成线性关系。
#define adPin A0
void setup()
{
Serial.begin(115200); //设置波特率
}
void loop()
{
int n = analogRead(adPin); //读取模拟口的数值,因为ATmega 2560 AD精度为10位,故返回值范围为0~1023
n = n * 4.888; //将返回值换算成毫伏
Serial.print("The Voltage Value is(mv):");
Serial.println(n,DEC); //DEC在这里是设置输出数据的格式,此处可省略,详见http://kb.open.eefocus.com/index.php?title=Serial
delay(100);
}
注:因为ATmega 2560 AD精度为10位,故返回值范围为01023,对应05V,根据采集值计算实际电压,5000÷1024≈4.888,因此将采集值乘以4.888就得到实际电压值(毫伏)。