ADC 数码转换器
1.实验目的
学习ADC的基础原理,并在开发板实现ADC读取。
2.实验原理
ADC 是 Analog-to-Digital Converter 的缩写,中文称为 模数转换器。
它的作用是将模拟信号(Analog)*转换为*数字信号(Digital),让处理器 (如 K230)能够识别和处理真实世界的模拟数据。
假设你用一个光敏电阻读取光照强度,它输出的是 0~1.8V 的模拟电压。但你的处理器只能处理数字信号,它无法理解“电压是多少伏”,这时就需要 ADC:
- ADC 读取电压,例如 0.9V
- 将其转换为一个数字值,比如在 12 位 ADC 下就是 2048(范围是 0~4095)
- 你就可以用这个数字在程序中判断“现在亮还是暗”
常见的 ADC 分辨率有:
- 8位:0~255
- 10位:0~1023
- 12位:0~4095
- 16位:0~65535
位数越高,精度越高,能分辨更细微的模拟信号变化。
K230 提供了多个 ADC 通道,不同通道的输入电压量程有所不同:
通道号 | 对应引脚 | 电压范围 |
---|---|---|
ADC0 | 排针10 | 0 ~ 3.6V |
ADC1 | 排针9 | 0 ~ 3.6V |
ADC2 | 排针11 | 0 ~ 1.8V |
ADC3 | 排针12 | 0 ~ 1.8V |
3.代码解析
导入ADC类
from machine import ADC
import time
from machine import ADC
:从machine
模块中导入ADC
类,用于控制模数转换器(Analog-to-Digital Converter)。import time
:导入时间模块,用于延时操作,例如time.sleep(1)
。
创建ADC 对象
adc = ADC(0) #通道0
创建一个 ADC 对象,代表通道 0(即接在排针32上)。
你现在可以通过这个对象读取电压数据。
获取ADC通道采样值
print(adc.read_u16())
adc.read_u16()
:读取 ADC 的原始采样值,是一个 16 位整数,范围 0~65535。
数值越大代表电压越高。