本帖最后由 镜面反射 于 2021-6-9 17:01 编辑 功能说明 开发板上使用ADC作为按键识别,按下不同按键会得到不同的按键值,通过判断按键值来判断哪个按键被按下了。 代码详细 import adc while True: val = adc.get() if val > 0 and val < 1000:#过滤掉启动和无按键被按下时的值,为了更精确可以增加判断次数来确定按键 break print("adc:",val) 按下开发板上面的按键可以得到键值,如图所示 ![]() 开发板上的4个按键都有对应的数值,我们可以通过adc采集来获取到按键值,但是一直获取adc值会导致进程阻塞,那如果解决这个问题呢? 延伸 之前我们已经学会了控制led,这次我们可以尝试通过按下不同按键来实现led的亮灭,但是按键值一直获取,程序无法继续运行,怎么办?这里我们引入线程,通过创建一个线程来定时获取adc值判断按键值,这样就能非阻塞获取到按键。 代码如下 import led import adc import time import _thread as th def adc_thread(): while True: time.sleep_ms(100) #线程每100毫秒检测一次按键是否被按下 val = adc.get() if val > 0 and val < 1000: #过滤掉启动和无按键被按下时的值 led.on() #有按键按下,我们让led亮 print("val:",val) #打印采集值 else: led.off() th.start_new_thread(adc_thread,()) while True: time.sleep_ms(1000) 运行代码 可以看到开发板上的LED灯会随着按键的按下显示亮灭,同时在终端上可以看到对应的按键值 如图所示 ![]() |
只有小组成员才能发言,加入小组>>
22个成员聚集在这个小组
加入小组Dopi HI3516EV200 Micropython应用篇之驱动LED灯
8836 浏览 0 评论
DOPI HI3516EV200 配置MicroPython应用开发篇
9231 浏览 0 评论
看图识开发板,说对了就送积分+发烧友会员VIP(豪气)~~~
11562 浏览 4 评论