0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

冬至子 来源:醉里挑灯舞剑 作者:Franze 2023-11-08 12:35 次阅读

材料准备

图片

连接电路

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

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

编写代码

图片

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

常用的方法就是当检测按键值为 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 下开发显得很简单。

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

    关注

    22

    文章

    1554

    浏览量

    107032
  • 欧姆电阻
    +关注

    关注

    0

    文章

    69

    浏览量

    15493
  • ESP32
    +关注

    关注

    13

    文章

    896

    浏览量

    15815
  • Micropython
    +关注

    关注

    0

    文章

    68

    浏览量

    4582
收藏 人收藏

    评论

    相关推荐

    【FireBeetle 2 ESP32-S3开发板测评】MicroPython开发体验

    【FireBeetle 2 ESP32-S3开发板测评】MicroPython开发体验
    的头像 发表于 07-23 09:02 1238次阅读
    【FireBeetle 2 <b class='flag-5'>ESP32</b>-S3开发板测评】<b class='flag-5'>MicroPython</b>开发体验

    MicroPython for ESP32 GPIO主要说明

    文章目录目的GPIO口基础说明函数说明使用演示总结目的GPIO口基础说明MicroPython for ESP32 GPIO主要说明如下:可以用的IO为 0-19, 21-23, 25-27
    发表于 01-10 06:29

    如何在ESP32上使用MicroPython

    ESP32移植MicroPython简介安装esptool下载MicroPython固件写入固件连接Putty测试程序简介本教程制作于Windows系统。通过python环境下运行es
    发表于 01-11 07:58

    基于arduino的库编写esp32程序

    本文章是基于arduino的库编写esp32程序,为本人亲测文章。在使用esp32的spi通信,自定义片选引脚过程中发现,自定义引脚输出高低电平不受控制。经过长时间调试和查阅资料发现,
    发表于 01-18 08:22

    为什么使用MicroPython开发ESP32

    为什么使用MicroPython开发ESP32
    发表于 02-22 08:08

    求助,ESP32-D0WDQ6和ESP32-PICO-D4是否支持micropython?

    各位好:ESP32-D0WDQ6和ESP32-PICO-D4是否支持micropython?
    发表于 02-13 08:32

    请问ESP32-D0WDQ6和ESP32-PICO-D4是否支持micropython?

    各位好:ESP32-D0WDQ6和ESP32-PICO-D4是否支持micropython?
    发表于 03-06 06:16

    是否有人使用过这些esp32 s3盒子中的任何一个运行MicroPython

    想知道是否有人使用过这些 esp32 s3 盒子中的任何一个运行 MicroPython?我已经能够为 MicroPython 刷写 ESP32
    发表于 04-12 06:35

    视频教程-micropython基础入门(esp32/esp8266单片机开发)-物联网技术

    micropython基础入门(esp32/esp8266单片机开发) 10...
    发表于 11-13 15:36 55次下载
    视频教程-<b class='flag-5'>micropython</b>基础入门(<b class='flag-5'>esp32</b>/<b class='flag-5'>esp</b>8266单片机开发)-物联网技术

    ESP32刷入MicroPython以及连接WiFi

    一、ESP32刷入MicroPython1.ESP32驱动2.下载MicroPython3.刷入micropython4.进入ESP32二、
    发表于 12-04 19:51 28次下载
    <b class='flag-5'>ESP32</b>刷入<b class='flag-5'>MicroPython</b>以及连接WiFi

    使用MicroPython开发ESP32(01):快速入门

    文章目录为什么使用MicroPython开发ESP32快速入门开发板准备开发工具选择固件下载与烧录我的总结为什么使用MicroPython开发ESP32ESP32是非常热门的一款物联网
    发表于 12-29 18:49 22次下载
    使用<b class='flag-5'>MicroPython</b>开发<b class='flag-5'>ESP32</b>(01):快速入门

    如何在ESP32/ESP8266上使用MicroPython

    在本教程中,我们将了解 MicroPython,它与 Python 有何不同,以及如何在 ESP32/ESP8266 上开始使用 MicroPython。此外,我们将看到一个 LED
    发表于 08-19 15:09 1.2w次阅读
    如何在<b class='flag-5'>ESP32</b>/<b class='flag-5'>ESP</b>8266上使用<b class='flag-5'>MicroPython</b>

    [esp32教程]2、按键中断

    基于Ubuntu,利用esp-idf进行esp32的教学
    的头像 发表于 05-05 09:04 2225次阅读
    [<b class='flag-5'>esp32</b>教程]2、<b class='flag-5'>按键</b>中断

    基于ESP32+MicroPython实现联网并进行UDP通信

    使用 esp32 开发程序,非常重要的功能就是使用 wifi,下面我们就讲一下 esp32 连接 wifi 的方法。
    的头像 发表于 06-13 17:05 3955次阅读
    基于<b class='flag-5'>ESP32+MicroPython</b>实现联网并进行UDP通信

    构建ESP32 MicroPython Wifi的机器人汽车

    电子发烧友网站提供《构建ESP32 MicroPython Wifi的机器人汽车.zip》资料免费下载
    发表于 07-12 09:12 5次下载
    构建<b class='flag-5'>ESP32</b> <b class='flag-5'>MicroPython</b> Wifi的机器人汽车