【普中ESP32S3开发攻略--基于Arduino】-- 第 4 章 LED实验

(1)实验平台:

普中ESP32S3开发板https://item.taobao.com/item.htm?id=803002165011(2)资料下载:普中科技-各型号产品资料下载链接


        不论学习什么单片机,最简单的外设莫过于 IO 口的高低电平控制LED,本章将向大家介绍如何使用 Arduino 控制 ESP32 的 GPIO 输出。通过本章的学习,让大家对 Arduino 的程序架构有一定的认识,为以后大型项目程序学习打下基础,增强信心。本章分为如下几部分内容:

 

4.1 实验介绍

4.1.1 实验简介 

4.1.2 实验目的

4.1.3 Arduino 函数使用

4.1.3.1 pinMode()函数

4.1.3.2 digitalWrite()函数

4.1.3.3 delay()函数

4.2 硬件设计

4.3 软件设计

4.3.1 点亮第一个 LED 实验

4.3.2 LED 闪烁实验

4.4 实验现象

4.4.1 点亮第一个 LED 实验

4.4.2 LED 闪烁实验


4.1 实验介绍

4.1.1 实验简介 

        相信大部分人开始学习嵌入式单片机编程时都会从点亮LED 开始,我们在学习 ESP32 使用 Arduino 的编程也不例外,通过点亮第一个LED 能让你对编译环境和程序架构有一定的认识,为以后的学习和更大型的程序打下基础,增加信心。

4.1.2 实验目的

        点亮 LED 模块中的一个 LED 灯,即让 GPIO 输出高或低电平,对ESP32 来说,高电平约 3.3V,低电平约 0V。

4.1.3 Arduino 函数使用

4.1.3.1 pinMode()函数

        ESP32 上每一个带有数字编号的引脚几乎都具备输入/输出数字信号的功能。在使用输入或输出功能前,需要先通过 pinMode()函数配置引脚的模式为输入模式或输出模式,函数原型如下:

void pinMode(uint8_t pin, uint8_t mode)

        其中参数 pin 为指定配置的引脚标号,参数 mode 为指定的配置模式,可使用的模式种类如下:

        PULLUP 模式适用于不确定的信号输入,而 INPUT_PULLUP 模式适用于读取传感器信号或开关信号。PULLDOWN 和 INPUT_PULLDOWN 与前面关系类似。

        使用方法如:

pinMode(3, OUTPUT);
4.1.3.2 digitalWrite()函数

        配置为输出模式以后,还需要使用 digitalWrite()函数使用该引脚输出高电平或低电平。函数原型如下:

void digitalWrite(uint8_t pin, uint8_t val)

        其中参数 pin 为指定输出的引脚编号。参数 value 为要指定的输出电平,使用 HIGH 指定输出高电平,使用 LOW 指定输出低电平。Arduino ESP32 中输出的低电平为 0V,输出的高电平为当前工作电压 3.3V。电压大于2.5V 的认为是高电平,电压小于 0.5V 的认为是低电平。所以输入或输出电压不一定会到标准的工作电压。

        在 Arduino ESP32 核心库中,HIGHT 被定义为 1,LOW 被定义为0,因此也可以直接使用数字 0 和 1 表示输出低电平和高电平。

        使用方法如:

digitalWrite(3, HIGH);
digitalWrite(3, 1);
4.1.3.3 delay()函数

        delay()为毫秒延时函数,函数原型为:

void delay(uint32_t)

        将要延时的时间传递函数参数内即可。比如延时 1S,

delay(1000);

4.2 硬件设计

        本实验使用到硬件资源如下:

        (1)LED 模块中 D1 指示灯

        (2)ESP32 GPIO

        LED 模块电路如下所示:

        从网络标号可知,LED 与 ESP32 的 GPIO3 管脚连接,当该引脚输出高电平时,LED 点亮,输出低电平时,LED 熄灭。

4.3 软件设计

4.3.1 点亮第一个 LED 实验

        下面我们打开“\4--实验程序\1--Arduino 实验\1--基础实验\1-点亮第一个LED 实验”程序,控制代码在 main.ino 中,代码如下:

/* 深圳市普中科技有限公司(PRECHIN 普中)
  在线视频:https://space.bilibili.com/2146492485/video  
   技术支持:www.prechin.net
 * 
 * 实验名称:点亮第一个LED实验
 * 
 * 接线说明:LED模块-->ESP32 IO
 *         D1-->3
 * 
 * 实验现象:程序下载成功后,D1指示灯点亮
 * 
 * 注意事项:
 * 
 */

//定义LED1管脚
#define LED1 3

void setup() {
  //设置LED1引脚为输出模式
  pinMode(LED1, OUTPUT);
  //LED1引脚输出高电平,点亮
  digitalWrite(LED1, HIGH);
}

void loop() {
  
}

        代码比较简单,设置管脚模式为输出,使管脚输出高电平点亮。程序中使用宏定义的方式定义 LED 管脚,如下:

#define LED1 3

        这种写法可以提高程序的可读性,并且便于修改,若设备需要更换连接引脚,直接修改该宏定义值即可。

4.3.2 LED 闪烁实验

        下面我们打开“\4--实验程序\1--Arduino 实验\1--基础实验\2-LED 闪烁实验”程序,控制代码在 main.ino 中,代码如下:

/* 深圳市普中科技有限公司(PRECHIN 普中)
 * 在线视频:https://space.bilibili.com/2146492485/video
   技术支持:www.prechin.net

 * 实验名称:LED闪烁实验
 * 
 * 接线说明:LED模块-->ESP32 IO
 *         D1-->3
 * 
 * 实验现象:程序下载成功后,D1指示灯闪烁
 * 
 * 注意事项:
 * 
 */

//定义LED1管脚
#define LED1 3

void setup() {
  //设置LED1引脚为输出模式
  pinMode(LED1, OUTPUT);
  //LED1引脚输出高电平,点亮
  digitalWrite(LED1, HIGH);
}

void loop() {
  digitalWrite(LED1, HIGH);//LED1引脚输出高电平,点亮
  delay(200);//延时200ms
  digitalWrite(LED1, LOW);//LED1引脚输出低电平,熄灭
  delay(200);//延时200ms
}

        代码比较简单,首先初始化管脚模式,然后在循环体内不断让管脚输出高和低电平,在电平之间间隔一段时间。

4.4 实验现象

4.4.1 点亮第一个 LED 实验

        将程序下载到开发板内(可参考“2.2.3 程序下载运行”章节),可以看到LED 模块中 D1 指示灯点亮。

4.4.2 LED 闪烁实验

        将程序下载到开发板内,可以看到 LED 模块中 D1 指示灯闪烁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值