Micropython学习交流群 学习QQ群:786510434 提供多种固件下载和学习交流。
Micropython-扇贝物联 QQ群:31324057 扇贝物联是一个让你与智能设备沟通更方便的物联网云平台
Micropython学习交流群 学习QQ群:468985481 学习交流ESP8266、ESP32、ESP8285、wifi模块开发交流、物联网。
Micropython老哥俩的IT农场分享QQ群:929132891 为喜欢科创制作的小白们分享一些自制的计算机软硬件免费公益课程,由两位多年从事IT研发的中年大叔发起。
ESP32(MicroPython) 两个ADC程序
最近对ESP32的ADC功能进行了详细测试,下面提一下具体结果,并给出相应的两个程序。 先提一下更早得出的一个结论:ADC通过定时器中断检测更准确。具体原理尚不明确。 通过串口输出ADC检测结果速度较快。经测试,3ms输出一次可以正常输出而不会出现明显延时。要注意的是,输出速度快可能导致程序不能正常停止,因此尽量直接运行,不要烧录。 程序如下(为了提高速度,电压没有进行换算,也未对换算电压对输出速度的影响进行测试) ''' 接线: ADC-->(34) ''' #导入Pin模块 from machine import Pin from machine import ADC from machine import Timer #定义ADC控制对象 adc=ADC(Pin(34)) adc.atten(ADC.ATTN_11DB) #开启衰减,量程增大到3.3V #定时器0中断函数 def time0_irq(time0): print(adc.read()) #程序入口 if __name__=="__main__": time0=Timer(0) #创建time0定时器对象 time0.init(period=3,mode=Timer.PERIODIC,callback=time0_irq) while True: pass 代码2: 之前提到过4路ADC不能正常运行的情况,经过详细测试,实际上是36引脚的ADC不能正常运行,可能是硬件故障或MicroPython库bug。33、32、35、34、39引脚可用。使用以上5路ADC每10ms输出一次可以正常输出。 程序如下(电压未换算) #导入Pin模块 from machine import Pin from machine import ADC from machine import Timer #定义ADC控制对象 adc1=ADC(Pin(32)) adc1.atten(ADC.ATTN_11DB) #开启衰减,量程增大到3.3V adc2=ADC(Pin(33)) adc2.atten(ADC.ATTN_11DB) #开启衰减,量程增大到3.3V adc3=ADC(Pin(34)) adc3.atten(ADC.ATTN_11DB) #开启衰减,量程增大到3.3V adc4=ADC(Pin(35)) adc4.atten(ADC.ATTN_11DB) #开启衰减,量程增大到3.3V adc5=ADC(Pin(39)) adc5.atten(ADC.ATTN_11DB) #开启衰减,量程增大到3.3V #定时器0中断函数 def time0_irq(time0): print(adc1.read(),adc2.read(),adc3.read(),adc4.read(),adc5.read()) #程序入口 if __name__=="__main__": time0=Timer(0) #创建time0定时器对象 time0.init(period=10,mode=Timer.PERIODIC,callback=time0_irq) while True: pass ———————————————— 版权声明:本文为CSDN博主「路易斯720」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_74155302/article/details/131178815
Copyright © 2014 ESP56.com All Rights Reserved
执行时间: 0.010245084762573 seconds