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

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

3天内不再提示

基于ESP32+MicroPython点亮LED灯

CHANBAEK 来源:FunIO 作者:好好学习哇 2023-06-13 16:59 次阅读
    1. 连接开发板
    1. micropython 关于 GPIO 的描述
    1. 控制 led 的亮灭

对于应用程序,我们第一个程序是打印。对于嵌入式,我们第一个程序是点灯。

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
收藏 人收藏

    评论

    相关推荐

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

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

    如何使用Micropython+ESP32点亮第一个LED呢?

    首先,我们需要将LED、电阻和ESP32连接起来。
    的头像 发表于 11-08 12:27 2675次阅读
    如何使用<b class='flag-5'>Micropython+ESP32</b><b class='flag-5'>点亮</b>第一个<b class='flag-5'>LED</b>呢?

    ESP32+micropython开源项目挑战之--像素

    ESP32
    YS YYDS
    发布于 :2023年07月02日 17:48:46

    【乐鑫ESP32-DevKitC-32D模组开发板免费试用】(3)mpy的WiFi连接和gpio控制LED

    p13.off()时,再次输出低电平,LED也再次点亮如下图。到这里,我们完成了关于mpy的repl交互环境下PIN的简单编程和LED闪烁blink,其他
    发表于 07-15 15:56

    ESP32如何点亮一盏LED

    物理GPIO引脚,除了一些具有特殊用途的GPIO外,大部分GPIO都可以复用。本文就通过点亮一盏LED并通过一个按键控制其亮灭来简单学习如何控制ESP32芯片GPIO的输入与输出。本
    发表于 02-11 06:41

    视频教程-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

    ESP32入门之GPIO:点亮一盏LED

    物理GPIO引脚,除了一些具有特殊用途的GPIO外,大部分GPIO都可以复用。本文就通过点亮一盏LED并通过一个按键控制其亮灭来简单学习如何控制ESP32芯片GPIO的输入与输出。本
    发表于 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开发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。此外,我们将看到一个
    发表于 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开发环境的搭建

    ESP32 一般有两种开发方式,c 语言开发和 python 开发。
    的头像 发表于 06-13 17:00 8728次阅读
    <b class='flag-5'>ESP32+MicroPython</b>开发环境的搭建

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

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

    构建ESP32 MicroPython Wifi的机器人汽车

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

    esp32、esphome、hass的旧LED带到智能LED

    电子发烧友网站提供《带esp32、esphome、hass的旧LED带到智能LED带.zip》资料免费下载
    发表于 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连接起来。
    的头像 发表于 11-08 12:35 1749次阅读
    如何使用<b class='flag-5'>MicroPython</b>和<b class='flag-5'>ESP32</b>来编写按键程序?