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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于ESP32+MicroPython點亮LED燈

CHANBAEK ? 來源:FunIO ? 作者:好好學習哇 ? 2023-06-13 16:59 ? 次閱讀
    1. 連接開發(fā)板
    1. micropython 關于 GPIO 的描述
    1. 控制 led 的亮滅

對于應用程序,我們第一個程序是打印。對于嵌入式,我們第一個程序是點燈。

1. 連接開發(fā)板

將開發(fā)板鏈接到電腦,打開 Thonny,配置串口,如下:

圖片

配置串口

然后就會發(fā)現(xiàn) IED 的 shell 顯示已經連接到 esp32 解釋器,如下:

圖片

連接esp32

這時候 IDE 已經串口連接到開發(fā)板了,若沒有連接,請自行翻看環(huán)境配置章節(jié)內容。

2. micropython 關于 GPIO 的描述

led 的控制,是通過將 GPIO 配置成輸出模式,然后控制輸出電平的高低來實現(xiàn)的。

對于任何嵌入式開發(fā),數(shù)據(jù)手冊和 demo 是必不可少的,對于 Micropython 開發(fā),我們必看的是 MicroPython 官方的文檔GPIO 章節(jié) ^[1]^ 。如下:

圖片

配置gpio

大概意思是說 GPIO 的使用是通過 machine.Pin 類來實現(xiàn)的:

from machine import Pin

p0 = Pin(0, Pin.OUT)    # create output pin on GPIO0
p0.on()                 # set pin to "on" (high) level
p0.off()                # set pin to "off" (low) level
p0.value(1)             # set pin to on/high

p2 = Pin(2, Pin.IN)     # create input pin on GPIO2
print(p2.value())       # get value, 0 or 1

p4 = Pin(4, Pin.IN, Pin.PULL_UP) # enable internal pull-up resistor
p5 = Pin(5, Pin.OUT, value=1) # set pin high on creation
p6 = Pin(6, Pin.OUT, drive=Pin.DRIVE_3) # set maximum drive strength

引腳范圍(含):0-19、21-23、25-27、32-39。這些對應 ESP32 芯片實際的 GPIO 管腳號。注意許多最終用戶板使用他們自己的臨時引腳編號(例如標記為 D0、D1 等)。有關電路板邏輯引腳和物理芯片引腳之間的映射,請參閱您的電路板文檔。

支持四種驅動強度,引腳使用Pin()這個構造函數(shù)或Pin.init()方法,通過drive的關鍵字參數(shù) ,可以設置不同的對應最大安全源/灌電流和近似內部驅動器電阻

  • Pin.DRIVE_0:5 毫安/ 130 歐姆
  • Pin.DRIVE_1:10 毫安/ 60 歐姆
  • Pin.DRIVE_2:20mA / 30 歐姆(如果未配置則為默認強度)
  • Pin.DRIVE_3:40 毫安/ 15 歐姆

Pin()和 Pin.init()的 hold 關鍵字參數(shù)將啟用 ESP32 的“pad hold”功能。當設置為 True 時,引腳配置(方向,拉電阻和輸出值)將保持不變,任何進一步的改變(包括改變輸出電平)將不應用。設置 hold=False 將立即應用任何未完成的引腳配置更改并釋放引腳。當一個引腳已經保持時,使用 hold=True 將應用任何配置更改,然后立即重新應用 hold。

筆記:

  • Pin 1 和 3 分別是 REPL UART TX 和 RX
  • Pins 6, 7, 8, 11, 16, and 17 用于連接嵌入式 flash,不建議用于其他用途
  • 引腳 34-39 僅供輸入,也沒有內部上拉電阻
  • 有關睡眠期間管腳行為的討論,請參見深度睡眠模式^[2]^

有一個更高級別的抽象 machine.Signal^[3]^ ??捎糜诜崔D引腳的信號。

3. 控制 led 的亮滅

下面我們看一下我們的原理圖,首先看一下我們關于 LED 的原理圖:

圖片

led原理圖

我們可知,控制 led 的引腳為 IO2,當引腳輸出高電平,led 亮,輸出低電平,led 滅。

我們現(xiàn)在 ide 的 shell 里面控制 led,在 shell 界面里面按行輸入下面內容,每輸入一行點擊一次回車,當出現(xiàn)>>>的時候輸入下一行,如下:

圖片

命令行控制led

當輸入pin.on()時候,觀察 led 會亮起,當輸入pin.off()led 會熄滅。

注意:

on 和 off 控制的是 GPIO 輸出高低,只是湊巧本開發(fā)板是共陰極的,因此 on 的時候引腳輸出高,正好 led 亮。

對于共陽極的 led,on 是熄滅,off 是亮起。

上面我們是在控制臺打印的,想讓 esp32 上電就運行程序需要將程序下載到 esp32 中,方法如下,點擊boot.py,在輸入如下內容:

from machine import Pin
import time

pin = Pin(2, Pin.OUT)

while True:
    pin.on()
    time.sleep(1)
    pin.off()
    time.sleep(1)

如下圖:

圖片

led閃爍

保存后,先點擊運行當前腳本按鈕,看一下寫的是否有錯誤,正確的話此時 led 就會閃爍了。

按一下開發(fā)板的復位鍵,程序發(fā)現(xiàn)程序就可以開機運行了。

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

    關注

    22

    文章

    1592

    瀏覽量

    107672
  • 開發(fā)板
    +關注

    關注

    25

    文章

    4846

    瀏覽量

    96888
  • 應用程序
    +關注

    關注

    37

    文章

    3228

    瀏覽量

    57513
  • ESP32
    +關注

    關注

    17

    文章

    944

    瀏覽量

    16916
  • Micropython
    +關注

    關注

    0

    文章

    68

    瀏覽量

    4692
收藏 人收藏

    評論

    相關推薦

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

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

    如何使用Micropython+ESP32點亮第一個LED呢?

    首先,我們需要將LED、電阻和ESP32連接起來。
    的頭像 發(fā)表于 11-08 12:27 ?2409次閱讀
    如何使用<b class='flag-5'>Micropython+ESP32</b><b class='flag-5'>點亮</b>第一個<b class='flag-5'>LED</b>呢?

    ESP32+micropython開源項目挑戰(zhàn)之--像素

    ESP32
    YS YYDS
    發(fā)布于 :2023年07月02日 17:48:46

    【樂鑫ESP32-DevKitC-32D模組開發(fā)板免費試用】(3)mpy的WiFi連接和gpio控制LED

    p13.off()時,再次輸出低電平,LED也再次點亮如下圖。到這里,我們完成了關于mpy的repl交互環(huán)境下PIN的簡單編程和LED閃爍blink,其他
    發(fā)表于 07-15 15:56

    ESP32如何點亮一盞LED

    物理GPIO引腳,除了一些具有特殊用途的GPIO外,大部分GPIO都可以復用。本文就通過點亮一盞LED并通過一個按鍵控制其亮滅來簡單學習如何控制ESP32芯片GPIO的輸入與輸出。本
    發(fā)表于 02-11 06:41

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

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

    ESP32刷入MicroPython以及連接WiFi

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

    ESP32入門之GPIO:點亮一盞LED

    物理GPIO引腳,除了一些具有特殊用途的GPIO外,大部分GPIO都可以復用。本文就通過點亮一盞LED并通過一個按鍵控制其亮滅來簡單學習如何控制ESP32芯片GPIO的輸入與輸出。本
    發(fā)表于 12-07 17:06 ?10次下載
    <b class='flag-5'>ESP32</b>入門之GPIO:<b class='flag-5'>點亮</b>一盞<b class='flag-5'>LED</b><b class='flag-5'>燈</b>

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

    文章目錄為什么使用MicroPython開發(fā)ESP32快速入門開發(fā)板準備開發(fā)工具選擇固件下載與燒錄我的總結為什么使用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。此外,我們將看到一個
    發(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+MicroPython開發(fā)環(huán)境的搭建

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

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

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

    構建ESP32 MicroPython Wifi的機器人汽車

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

    esp32、esphome、hass的舊LED帶到智能LED

    電子發(fā)燒友網(wǎng)站提供《帶esp32、esphome、hass的舊LED帶到智能LED帶.zip》資料免費下載
    發(fā)表于 07-12 09:15 ?0次下載
    帶<b class='flag-5'>esp32</b>、esphome、hass的舊<b class='flag-5'>LED</b><b class='flag-5'>燈</b>帶到智能<b class='flag-5'>LED</b><b class='flag-5'>燈</b>帶

    如何使用MicroPythonESP32來編寫按鍵程序?

    首先,我們需要將LED、電阻和開關、ESP32連接起來。
    的頭像 發(fā)表于 11-08 12:35 ?1564次閱讀
    如何使用<b class='flag-5'>MicroPython</b>和<b class='flag-5'>ESP32</b>來編寫按鍵程序?