搜索
bottom↓
回复: 0
打印 上一主题 下一主题

《ESP32-S3使用指南—MicroPython版 V1.0》第八章 LED实验

[复制链接]

出0入234汤圆

跳转到指定楼层
1
发表于 2024-8-16 16:58:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

1)实验平台:正点原子ESP32S3开发板
2)购买链接:https://detail.tmall.com/item.htm?id=768499342659
3)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-347618-1-1.html
4)正点原子官方B站:https://space.bilibili.com/394620890
5)正点原子手把手教你学ESP32S3快速入门视频教程:https://www.bilibili.com/video/BV1sH4y1W7Tc
6)正点原子FPGA交流群:132780729



第八章 LED实验


       本章使用machine.Pin 类实现ESP32-S3 IO操作。machine.Pin 类是 machine 模块下的一个硬件类,它为IO提供配置和控制功能,为实现IO设备的操作方法。Pin 对象主要被用来控制输入/输出引脚,这些引脚也被称为 GPIO。每个 Pin 对象都与一个物理引脚相对应,它能驱动输出电压并读取输入电压。
       本章分为如下几个小节:
       8.1 machine.Pin类
       8.2 硬件设计
       8.3 软件设计
       8.4 下载验证

       8.1 machine.Pin 类
       Pin 类中提供了设置引脚模式(输入/输出)的方法,以及获取和设置数字逻辑值(0 或 1)的方法。要创建一个 Pin 对象,我们需要提供一个标识符,这个标识符能够明确地指定一个特定的输入/输出引脚。这个标识符可以是整数、字符串,或者是一个包含端口和引脚号码的元组。在 MicroPython 中,引脚标识符是一个由代号和引脚号组成的元组,例如在Pin(("IO1", 1), Pin.OUT) 中的 ("IO1", 1)。

       1,machine.Pin 类的构造对象
       Pin的构造对象方法如下:
  1. class machine.Pin(id, mode=-1, pull=-1,value=None)
  2. 使用示例:led = machine.Pin(1,Pin.OUT,value = 1)
复制代码
       该构造方法的参数描述,如下表所示。

表8.1.1 Pin类构造方法的参数描述

       返回值:指定引脚的Pin对象。

       2,machine.Pin 类的方法

       ①:使用给定参数重新初始化引脚。
       其方法原型如下:
  1. led.init(mode=-1, pull=-1,value=None)
复制代码
       此方法的参数描述如下:

表8.1.2 led.init方法的参数描述

       返回值:None。

       ②:获取或设置管脚输出电平。
       其方法原型如下:
  1. led.value([x])
复制代码
       此方法的参数描述如下:

表8.1.3 led.value方法的参数描述

       返回值:管脚电平。

       ③:设置管脚输出高电平。
       其方法原型如下:
  1. led.on()
复制代码
       返回值:无。

       ④:设置管脚输出低电平。
       其方法原型如下:
  1. led.off()
复制代码
       返回值:无。
       除了上述方法之外,其余方法不能在ESP32芯片上使用。相关知识,请看MicroPython在线文档。在MicroPython中,系统延时需要用到time/utime模块。该模块下有三个sleep方法:
       time.sleep(seconds):秒级的延时
       time.sleep_ms(ms):毫秒的延时
       time.sleep_us(us):微秒的延时
       需要注意的是:调用这些方法之前,必须在前面导入time/utime模块,才能使用这些模块的方法。

       8.2 硬件设计

       1. 例程功能
       本章实验功能简介: LED每过500ms一次交替闪烁,实现类似跑马灯的效果。

       2. 硬件资源
       1)LED灯
              LED-IO1

       3. 原理图
       本章用到的硬件有 LED 灯。电路在开发板上已经连接好,所以在硬件上不需要动任何东西,直接下载代码就可以测试使用。其连接原理图如下图所示。

图8.2.1 LED与ESP32-S3模组连接原理图

       从上图可知,若IO1输出低电平时,则LED亮起,反之,熄灭。

       8.3 软件设计

       8.3.1 程序流程图
       程序流程图能帮助我们更好的理解一个工程的功能和实现的过程,对学习和设计工程有很好的主导作用。下面看看本实验的程序流程图:

图8.3.1.1 程序流程图

       8.3.2 程序解析
       本书籍的代码都在main.py脚本下编写的,读者可在光盘资料下找到对应的源码。LED实验main.py源码如下:
  1. from machine import Pin
  2. import time

  3. """
  4. * @brief       程序入口
  5. * @param       无
  6. * @retval      无
  7. """
  8. if  __name__ == '__main__':
  9.     # 初始化LED并输出高电平
  10.     led = Pin(1,Pin.OUT,value = 1)
  11.     while True:
  12.         
  13.         led.value(0)                    # 设置GPIO1输出低电平
  14.         time.sleep_ms(500)              # 延时500ms
  15.         led.value(1)                    # 设置GPIO1输出高电平
  16.         time.sleep_ms(500)              # 延时500ms
复制代码
       在这个示例中,作者首先导入了machine特定库的Pin类和time两个库。然后,作者使用Pin()方法实例化了一个Pin对象,该对象与ESP32-S3物理引脚1相对应,并将其配置为输出模式且初始电平为高电平。
       在while循环中,我们使用led.value()方法来翻转LED的状态。首先,我们将引脚设置为低电平,从而使LED亮起,然后等待0.5秒。接着,我们将引脚设置为高电平,从而使LED熄灭,并再次等待0.5秒。这个过程会不断重复,从而实现LED的闪烁效果。
       注意:“if __name__ == '__main__':”是Python的一种常见模式,用于确保该代码块只在直接运行此脚本时执行,而不是在其他脚本中导入时执行。
       在Thonny软件上,导入main.py文件至MicroPython设备中,有两种方法。第一种是在本地上存到MicroPython设备。另一种是新建文本,然后把正点原子提供的实验内容复制粘贴,并把新建文本命名为“main.py”保存至MicroPython设备。下面作者详细介绍这两种方法的使用流程。

       第一种:本地上存
       第一种方法很简单,只需把Thonny本地目录设置为正点原子例程目录,然后右键把01_led实验的main.py脚本上存到MicroPython设备当中,如下图所示。


图8.3.2.1 main.py脚本上存流程

       上存完成后,按下键盘上的“F5”运行程序。

       第二种:新建文本
       在Thonny软件上,新建文档,然后复制上述的源代码到文档当中,如下图所示。

图8.3.2.2 新建文件

       接着,按下“Ctrl+S”保存至MicroPython设备当中,并命名为main.py文件,如下图所示。

图8.3.2.3 命名为main.py,且保存至MicroPython设备当中

       最后,按下“F5”运行代码。

       8.4 下载验证
       下载完之后,可以看到 LED以每次500ms闪烁。

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 07:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表