0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用MicroPython和ESP32來編寫按鍵程序?

冬至子 ? 來源:醉里挑燈舞劍 ? 作者:Franze ? 2023-11-08 12:35 ? 次閱讀

材料準(zhǔn)備

  • ESP32開發(fā)板
  • LED
  • 220歐姆電阻
  • 面包板
  • USB數(shù)據(jù)線
  • 電腦
  • 按鍵開關(guān)(最好是自復(fù)位的)

圖片

連接電路

首先,我們需要將LED燈、電阻和開關(guān)、ESP32連接起來。具體步驟如下:

可以看到跟上一節(jié) LED 一樣,只是輸入/輸出狀態(tài)的一個(gè)改變。從上圖可以看到,我們只需要在開發(fā)板上電后判斷 KEY 引腳的電平,當(dāng)被按下時(shí)候引腳為低電平“0”。

編寫代碼

圖片

按鍵被按下時(shí)候可能會(huì)發(fā)生抖動(dòng),抖動(dòng)如下圖,有可能造成誤判,因此我們需要使用延時(shí)函數(shù)來進(jìn)行消抖(防誤觸)。

常用的方法就是當(dāng)檢測按鍵值為 0 時(shí),延時(shí)一段時(shí)間,大約 10ms,再判斷按鍵引腳值仍然是 0,是的話說明按鍵被按下。延時(shí)使用 time 模塊

time模塊的使用方法如下

  • import time
  • time.sleep(1) # 睡眠 1 秒
  • time.sleep_ms(500) # 睡眠 500 毫秒
  • time.sleep_us(10) # 睡眠 10 微妙
  • start = time.ticks_ms() # 獲取毫秒計(jì)時(shí)器開始值

代碼簡說

代碼的注釋很清楚了
從上面代碼可以看到,初始化各個(gè)對象后,進(jìn)入循環(huán),當(dāng)檢測到 KEY 的值為0(按鍵被按下)時(shí)候,先做了 10ms 的延時(shí),再次判斷;

state 為 LED 狀態(tài)的值,每次按鍵按下后通過使用 not 來改變。這里注意的是在 python 里使用‘not’而不是‘’的方式。not 返回的是 True 和 False,即0,1。而 是取反操作,會(huì)導(dǎo)致出錯(cuò)。

運(yùn)行程序

可以看到每當(dāng)按鍵 KEY 被按下后,LED 的亮滅狀態(tài)發(fā)生改變。

總結(jié)

按鍵作為我們學(xué)習(xí)的第一個(gè)輸入設(shè)備,有了輸入設(shè)備我們就可以跟硬件做人機(jī)交互了,這對后面的學(xué)習(xí)非常有意義。可以看到按鍵在 MicroPython 下開發(fā)顯得很簡單。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • led燈
    +關(guān)注

    關(guān)注

    22

    文章

    1592

    瀏覽量

    108007
  • 歐姆電阻
    +關(guān)注

    關(guān)注

    0

    文章

    71

    瀏覽量

    15574
  • ESP32
    +關(guān)注

    關(guān)注

    18

    文章

    971

    瀏覽量

    17279
  • Micropython
    +關(guān)注

    關(guān)注

    0

    文章

    68

    瀏覽量

    4742
收藏 人收藏

    評論

    相關(guān)推薦

    【FireBeetle 2 ESP32-S3開發(fā)板測評】MicroPython開發(fā)體驗(yàn)

    【FireBeetle 2 ESP32-S3開發(fā)板測評】MicroPython開發(fā)體驗(yàn)
    的頭像 發(fā)表于 07-23 09:02 ?1820次閱讀
    【FireBeetle 2 <b class='flag-5'>ESP32</b>-S3開發(fā)板測評】<b class='flag-5'>MicroPython</b>開發(fā)體驗(yàn)

    請問ESP32如何查看MicroPython的版本?

    ESP32如何查看MicroPython的版本?
    發(fā)表于 06-05 07:35

    如何在ESP32上使用MicroPython

    ESP32移植MicroPython簡介安裝esptool下載MicroPython固件寫入固件連接Putty測試程序簡介本教程制作于Windows系統(tǒng)。通過python環(huán)境下運(yùn)行es
    發(fā)表于 01-11 07:58

    為什么使用MicroPython開發(fā)ESP32?

    為什么使用MicroPython開發(fā)ESP32?
    發(fā)表于 02-22 08:08

    是否有人使用過這些esp32 s3盒子中的任何一個(gè)運(yùn)行MicroPython

    想知道是否有人使用過這些 esp32 s3 盒子中的任何一個(gè)運(yùn)行 MicroPython?我已經(jīng)能夠?yàn)?MicroPython 刷寫 ESP32
    發(fā)表于 04-12 06:35

    視頻教程-micropython基礎(chǔ)入門(esp32/esp8266單片機(jī)開發(fā))-物聯(lián)網(wǎng)技術(shù)

    micropython基礎(chǔ)入門(esp32/esp8266單片機(jī)開發(fā)) 10...
    發(fā)表于 11-13 15:36 ?55次下載
    視頻教程-<b class='flag-5'>micropython</b>基礎(chǔ)入門(<b class='flag-5'>esp32</b>/<b class='flag-5'>esp</b>8266單片機(jī)開發(fā))-物聯(lián)網(wǎng)技術(shù)

    [ESP32]學(xué)習(xí)筆記02

    [ESP32學(xué)習(xí)筆記02]使用ViusalStudio2017開發(fā)ESP32、按鍵輸入檢測前言一、安裝Visual Studio 2017二、配置開發(fā)環(huán)境1.安裝ViusalGDB2.下面我們安裝
    發(fā)表于 12-03 17:36 ?23次下載
    [<b class='flag-5'>ESP32</b>]學(xué)習(xí)筆記02

    ESP32刷入MicroPython以及連接WiFi

    一、ESP32刷入MicroPython1.ESP32驅(qū)動(dòng)2.下載MicroPython3.刷入micropython4.進(jìn)入ESP32二、
    發(fā)表于 12-04 19:51 ?28次下載
    <b class='flag-5'>ESP32</b>刷入<b class='flag-5'>MicroPython</b>以及連接WiFi

    使用MicroPython開發(fā)ESP32(01):快速入門

    文章目錄為什么使用MicroPython開發(fā)ESP32快速入門開發(fā)板準(zhǔn)備開發(fā)工具選擇固件下載與燒錄我的總結(jié)為什么使用MicroPython開發(fā)ESP32ESP32是非常熱門的一款物聯(lián)網(wǎng)
    發(fā)表于 12-29 18:49 ?22次下載
    使用<b class='flag-5'>MicroPython</b>開發(fā)<b class='flag-5'>ESP32</b>(01):快速入門

    如何在ESP32/ESP8266上使用MicroPython

    在本教程中,我們將了解 MicroPython,它與 Python 有何不同,以及如何在 ESP32/ESP8266 上開始使用 MicroPython。此外,我們將看到一個(gè) LED
    發(fā)表于 08-19 15:09 ?1.4w次閱讀
    如何在<b class='flag-5'>ESP32</b>/<b class='flag-5'>ESP</b>8266上使用<b class='flag-5'>MicroPython</b>

    使用ESP32連接騰訊云實(shí)現(xiàn)遠(yuǎn)程控制

    上次給大家分享了如何使用ESP32實(shí)現(xiàn)藍(lán)牙通信,今天跟大家聊聊如何使用ESP32連接騰訊云實(shí)現(xiàn)遠(yuǎn)程控制。本次實(shí)驗(yàn)用到MQTT協(xié)議,同樣,我用miropython編寫程序實(shí)現(xiàn),最終可以通過騰訊連連微信
    的頭像 發(fā)表于 11-22 09:19 ?3694次閱讀

    [esp32教程]2、按鍵中斷

    基于Ubuntu,利用esp-idf進(jìn)行esp32的教學(xué)
    的頭像 發(fā)表于 05-05 09:04 ?7314次閱讀
    [<b class='flag-5'>esp32</b>教程]2、<b class='flag-5'>按鍵</b>中斷

    ESP32+MicroPython開發(fā)環(huán)境的搭建

    ESP32 一般有兩種開發(fā)方式,c 語言開發(fā)和 python 開發(fā)。
    的頭像 發(fā)表于 06-13 17:00 ?8967次閱讀
    <b class='flag-5'>ESP32+MicroPython</b>開發(fā)環(huán)境的搭建

    基于ESP32+MicroPython實(shí)現(xiàn)聯(lián)網(wǎng)并進(jìn)行UDP通信

    使用 esp32 開發(fā)程序,非常重要的功能就是使用 wifi,下面我們就講一下 esp32 連接 wifi 的方法。
    的頭像 發(fā)表于 06-13 17:05 ?6241次閱讀
    基于<b class='flag-5'>ESP32+MicroPython</b>實(shí)現(xiàn)聯(lián)網(wǎng)并進(jìn)行UDP通信

    構(gòu)建ESP32 MicroPython Wifi的機(jī)器人汽車

    電子發(fā)燒友網(wǎng)站提供《構(gòu)建ESP32 MicroPython Wifi的機(jī)器人汽車.zip》資料免費(fèi)下載
    發(fā)表于 07-12 09:12 ?7次下載
    構(gòu)建<b class='flag-5'>ESP32</b> <b class='flag-5'>MicroPython</b> Wifi的機(jī)器人汽車