9.ESP32–ADC
"""
ADC实验
2022.10.9
"""
from machine import Pin
from machine import ADC
from machine import Timer#使用定时器定时采集
adc=ADC(Pin(15))
led=Pin(2,Pin.OUT)
adc.atten(ADC.ATTN_11DB)#开启衰减,量程最大3.3V
led_state=0
def time0_irq(time0):
global led_state
led_state = not led_state
led.value(led_state)
adc_vol=3.3*adc.read()/4095 #12位精度,3.3*AD/2^12
print("ADC检测电压:%.2fV",adc_vol)
def LED_irq(time0):
global led_state
led_state = not led_state
led.value(led_state)
if __name__=="__main__":
#定时器0用于定期采集电压
time0=Timer(0)
time0.init(period=500,mode=Timer.PERIODIC,callback=time0_irq)
#定时器1用于指示灯
time1=Timer(1)
time1.init(period=250,mode=Timer.PERIODIC,callback=LED_irq)
while True:
pass