如何使用MicroPython和ESP32来编写按键程序?

电子说

1.3w人已加入

描述

材料准备

  • ESP32开发板
  • LED灯
  • 220欧姆电阻
  • 面包板
  • USB数据线
  • 电脑
  • 按键开关(最好是自复位的)

Micropython

连接电路

首先,我们需要将LED灯、电阻和开关、ESP32连接起来。具体步骤如下:

可以看到跟上一节 LED 一样,只是输入/输出状态的一个改变。从上图可以看到,我们只需要在开发板上电后判断 KEY 引脚的电平,当被按下时候引脚为低电平“0”。

编写代码

Micropython

按键被按下时候可能会发生抖动,抖动如下图,有可能造成误判,因此我们需要使用延时函数来进行消抖(防误触)。

常用的方法就是当检测按键值为 0 时,延时一段时间,大约 10ms,再判断按键引脚值仍然是 0,是的话说明按键被按下。延时使用 time 模块

time模块的使用方法如下

  • import time
  • time.sleep(1) # 睡眠 1 秒
  • time.sleep_ms(500) # 睡眠 500 毫秒
  • time.sleep_us(10) # 睡眠 10 微妙
  • start = time.ticks_ms() # 获取毫秒计时器开始值

代码简说

代码的注释很清楚了
从上面代码可以看到,初始化各个对象后,进入循环,当检测到 KEY 的值为0(按键被按下)时候,先做了 10ms 的延时,再次判断;

state 为 LED 状态的值,每次按键按下后通过使用 not 来改变。这里注意的是在 python 里使用‘not’而不是‘’的方式。not 返回的是 True 和 False,即0,1。而 是取反操作,会导致出错。

运行程序

可以看到每当按键 KEY 被按下后,LED 的亮灭状态发生改变。

总结

按键作为我们学习的第一个输入设备,有了输入设备我们就可以跟硬件做人机交互了,这对后面的学习非常有意义。可以看到按键在 MicroPython 下开发显得很简单。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分