對于應用程序,我們第一個程序是打印。對于嵌入式,我們第一個程序是點燈。
1. 連接開發板
將開發板鏈接到電腦,打開 Thonny,配置串口,如下:
配置串口
然后就會發現 IED 的 shell 顯示已經連接到 esp32 解釋器,如下:
連接esp32
這時候 IDE 已經串口連接到開發板了,若沒有連接,請自行翻看環境配置章節內容。
2. micropython 關于 GPIO 的描述
led 的控制,是通過將 GPIO 配置成輸出模式,然后控制輸出電平的高低來實現的。
對于任何嵌入式開發,數據手冊和 demo 是必不可少的,對于 Micropython 開發,我們必看的是 MicroPython 官方的文檔GPIO 章節 ^[1]^ 。如下:
配置gpio
大概意思是說 GPIO 的使用是通過 machine.Pin 類來實現的:
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()
這個構造函數或Pin.init()
方法,通過drive
的關鍵字參數 ,可以設置不同的對應最大安全源/灌電流和近似內部驅動器電阻:
Pin.DRIVE_0
:5 毫安/ 130 歐姆Pin.DRIVE_1
:10 毫安/ 60 歐姆Pin.DRIVE_2
:20mA / 30 歐姆(如果未配置則為默認強度)Pin.DRIVE_3
:40 毫安/ 15 歐姆
Pin()和 Pin.init()的 hold 關鍵字參數將啟用 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]^ 。可用于反轉引腳的信號。
3. 控制 led 的亮滅
下面我們看一下我們的原理圖,首先看一下我們關于 LED 的原理圖:
led原理圖
我們可知,控制 led 的引腳為 IO2,當引腳輸出高電平,led 亮,輸出低電平,led 滅。
我們現在 ide 的 shell 里面控制 led,在 shell 界面里面按行輸入下面內容,每輸入一行點擊一次回車,當出現>>>的時候輸入下一行,如下:
命令行控制led
當輸入pin.on()
時候,觀察 led 會亮起,當輸入pin.off()
led 會熄滅。
注意:
on 和 off 控制的是 GPIO 輸出高低,只是湊巧本開發板是共陰極的,因此 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 就會閃爍了。
按一下開發板的復位鍵,程序發現程序就可以開機運行了。
-
led燈
+關注
關注
22文章
1592瀏覽量
108096 -
開發板
+關注
關注
25文章
5074瀏覽量
97661 -
應用程序
+關注
關注
37文章
3280瀏覽量
57743 -
ESP32
+關注
關注
18文章
971瀏覽量
17348 -
Micropython
+關注
關注
0文章
68瀏覽量
4751
發布評論請先 登錄
相關推薦
評論