对于应用程序,我们第一个程序是打印。对于嵌入式,我们第一个程序是点灯。
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浏览量
107847 -
开发板
+关注
关注
25文章
4954浏览量
97210 -
应用程序
+关注
关注
37文章
3244浏览量
57610 -
ESP32
+关注
关注
18文章
959浏览量
17105 -
Micropython
+关注
关注
0文章
68浏览量
4721
发布评论请先 登录
相关推荐
评论