arduino的adc
arduino支持adc,但是这个是和硬件绑定的
需要芯片支持adc转换芯片,具体要查哪些引脚支持。
基准电压:
基准电压一般就是单片机gpio推挽输出高电平的电压
adc分辨率:
手册一般会说支持xxxbit的adc,那么分辨率就是2的xxx次方(2^xxx)
拿esp32举例
esp32最高支持12bit的adc
那么最高分辨率就是2^12(2的12次方)也就是4096
因为esp32输出电压是3.3,所以基准电压是3.3
也就是能读取0到3.3之间的电压
arduino 官方支持10bit adc
那么最高分辨率就是2^10(2的10次方)也就是1024
因为arduino输出电压是5,所以基准电压是5
也就是能读取0到5之间的电压
读取adc数字量
1 | analogRead(引脚); |
| 参数 | 数据类型 | 作用 | 选项 |
|---|---|---|---|
| 引脚 | int | 支持adc的引脚io | 单片机io |
| 返回值 | int | 返回0到2的X次方(x就是adc位深比如10bit就是0到1024,12bit就是0到4096) | 无 |
返回值:
引脚的输入电压将在0V到3.3之间,
模拟数字转换(adc)功能作用下,
该输入电压将被映射到数值0-4096之间。
(0V对应数值0, 3.3V对应4096)
以上是esp32单片机的adc
读取adc电压
1 | float 电压 = 0; |
电压:读取的电压
基准电压:
基准电压一般就是单片机gpio推挽输出高电平的电压
adc分辨率:
手册一般会说支持xxxbit的adc,那么分辨率就是2的xxx次方(2^xxx)
参考:
1 | const int analogInPin = 4; // 定义模拟输入引脚 |