说明:Arduino Nano(ATMEGA328P);10位ADC(0~1023)
附:Arduino Nano 内置温度测量(ADC8)
文章目录
1.ADC转换时间
2.转换过程(举例)
1.开始转换(ADSC置1)
2.MUX和REFS更新
3.样本保存(保存期间不会改变)
4.ADC转换
5.更新MUX和REFS
另外还有两种,相比差距不大
3.多路复用器选择寄存器(Multiplexer Selection Register)
1.前两位(REFS1和REFS0)用来选着参考电压
REFS1 | REFS0 | 基准电压 |
---|---|---|
0 | 0 | AREF |
0 | 1 | AVCC |
1 | 0 | 保留 |
1 | 1 | 内部1.1V基准电压 |
2.第3位用来选择数据保存方式
3.后四位选择ADC通道
MUX3、2、1、0 | ADC通道 |
---|---|
0000 | ADC0 |
0001 | ADC1 |
0010 | ADC2 |
0011 | ADC3 |
0100 | ADC4 |
0101 | ADC5 |
0110 | ADC6 |
0111 | ADC7 |
1000 | ADC8(内部温度测量) |
4.控制状态寄存器 A(Control and Status Register A)
1.第一位进行ADC使能
2.第二位表示开始转换
3.第三位进行ADC触发使能
4.第四位被置1,表示转换完成
5.第四位被置1,表示触发转换完成
6.后三位选择预分频系数
5.相关其他寄存器
- 控制和状态寄存器 B(用作选择触发模式和比较器)
- 数字输入禁用寄存器 0
暂时没有用到,后期用到再补充
以上寄存器讲完,开始代码:
6.程序示例
示例1
开启ADC2,使用AVCC基准源,8倍预分频
void setup(){
Serial.begin(9600)