【史上最全面esp32教程】点灯大师篇

简介: 【史上最全面esp32教程】点灯大师篇

前言

esp32有很多的功能,例如wifi,蓝牙等,这节我们学习最简单的点灯。


提示:以下是本篇文章正文内容,下面案例可供参考


ESP32简介


ESP32模块是ESP8266的升级版本。除了Wi-Fi模块,该模块还包含蓝牙4.0模块。双核CPU工作频率为80至240 MHz,包含两个Wi-Fi和蓝牙模块以及各种输入和输出引脚, ESP32是物联网项目的理想选择。

虽然ESP32的引脚数比常用的处理器少,但在引脚上复用多个功能时不会遇到任何问题。

警告:ESP32引脚的电压电平为3.3伏。如果要将ESP32连接到其他工作电压为5伏的设备,则应使用电平转换器转换电压电平。

认识arduino的两个函数

我们创建了一个arduino项目后,他会自动生成下面的两个函数:

void setup() {
  // put your setup code here, to run once:
}
void loop() {
  // put your main code here, to run repeatedly:
}

setup()是整个程序只在开始时调用,用于初始化作用。

loop()可以类比while(1)。他会一直调用

变成C语言就会是这样。(注意:不能把下面的代码弄到arduino里面):

void setup()
{
}
void loop()
{
}
int main()
{
  setup();
  while(1)
  {
    loop();
  }
}

点灯

步骤

  1. 将LED的正极接到ESP32开发板的GPIO口,负极接到GND口。
  2. 使用ESP32的Arduino IDE编写代码,将GPIO口设置为输出模式,并将其设置为高电平,以便点亮LED。
  3. 上传代码到ESP32开发板,LED就会点亮。

函数介绍

在esp32中,我们需要通过杜邦线来连接灯与我们的引脚。

在这里我的D1灯的引脚为2.

使用pinMode函数来指定我们引脚的模式

pinMode(pin,value);

value为模式。

在点灯中,我们使用OUTPUT模式,表示输出模式。

使用digitalWrite函数对指定的引脚进行写入高低电平.

digitalWrite(pin,LOW/HIGH);

delay()延时函数:delay(ms)

LED灯闪烁

#define LED1 2
void setup() {
  // put your setup code here, to run once:
  pinMode(LED1,OUTPUT);
}
void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(LED1,HIGH);
  delay(200);
  digitalWrite(LED1,LOW);
  delay(200);
}

现在D0就200毫秒闪烁一次了。

#define 的原因:使名称引脚更清晰,当然,你不写#define也可以,直接写引脚名到LED1这里。

流水灯

流水灯相等于我们编程语言的hello world。

所以,在这,我写一下代码:

学过51单片机的同学都知道,流水灯可以:P1 = ~(1 << i)去实现,但是esp32就不行了,因为他要连线

并且线的位置不同,不连续,所以只能用老办法了。

Pin脚在#define中

#define LED1 2
#define LED2 21
#define LED3 4
#define LED4 5
#define LED5 22
#define LED6 25
#define LED7 26
#define LED8 18
void setup() {
  // put your setup code here, to run once:
  pinMode(LED1,OUTPUT);
  pinMode(LED2,OUTPUT);
  pinMode(LED3,OUTPUT);
  pinMode(LED4,OUTPUT);
  pinMode(LED5,OUTPUT);
  pinMode(LED6,OUTPUT);
  pinMode(LED7,OUTPUT);
  pinMode(LED8,OUTPUT);
}
void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(LED1,HIGH);
  delay(200);
  digitalWrite(LED1,LOW);
  delay(200);
  digitalWrite(LED2,HIGH);
  delay(200);
  digitalWrite(LED2,LOW);
  delay(200);
  digitalWrite(LED3,HIGH);
  delay(200);
  digitalWrite(LED3,LOW);
  delay(200);
  digitalWrite(LED4,HIGH);
  delay(200);
  digitalWrite(LED4,LOW);
  delay(200);
  digitalWrite(LED5,HIGH);
  delay(200);
  digitalWrite(LED5,LOW);
  delay(200);
  digitalWrite(LED6,HIGH);
  delay(200);
  digitalWrite(LED6,LOW);
  delay(200);
  digitalWrite(LED7,HIGH);
  delay(200);
  digitalWrite(LED7,LOW);
  delay(200);
  digitalWrite(LED8,HIGH);
  delay(200);
  digitalWrite(LED8,LOW);
  delay(200);
}

现在D1~D8就开始逐个闪烁了。

总结

恭喜你,完成了点灯大师的挑战,希望你在下一次的蜂鸣器的挑战中也能像这次一样。(达成成就:点灯)

相关文章
|
IDE Linux 开发工具
【2026最新】Arduino IDE下载安装汉化保姆级教程(附安装包)
Arduino IDE是全球最易用的开源单片机开发环境,专为初学者设计,支持Win/macOS/Linux全平台,免费开源。界面简洁、汉化便捷,配套教程丰富,兼容海量硬件与项目,助电子爱好者、学生和创客快速实现创意原型。
8200 2
|
9月前
|
传感器 数据采集 监控
【开源免费】基于 STM32F103C8T6 单片机的智能家居系统设计与实现
基于STM32F103C8T6与ESP8266的智能家居系统,实现温控采集、OLED显示、MQTT上云及APP远程控制。涵盖传感器节点、控制节点与WiFi网关,支持实时监控与远程操作,模块化设计,扩展性强,低成本高稳定性,适用于物联网学习与智能家居开发实践。
|
10月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
60071 11
|
12月前
|
虚拟化 数据安全/隐私保护
VMware Workstation Pro - 最新版
VMware是一款强大的虚拟机软件,可在单台计算机上模拟完整硬件系统,实现多系统运行。2024年5月推出最新版Workstation Pro 17.5.2,个人用户可免费使用。用户可通过官网下载并注册账户,按指引完成安装,适用于开发、测试及部署应用,具备高效灵活的虚拟化技术。
44742 1
|
监控 NoSQL Java
若依RuoYi项目环境搭建教程(RuoYi-Vue + RuoYi-Vue3版本)
若依(RuoYi)是一款基于Spring Boot和Vue.js的开源Java快速开发脚手架,支持OAuth2、JWT鉴权,集成多种安全框架和持久化框架。它提供了系统管理、监控管理、任务调度、代码生成等常用功能模块,适合中小型公司快速搭建Web应用。本文主要介绍若依框架的特点、版本发展、优缺点及项目部署步骤,帮助开发者快速上手并部署若依项目。
23111 3
若依RuoYi项目环境搭建教程(RuoYi-Vue + RuoYi-Vue3版本)
|
前端开发 开发者
React 18 的新特性
【10月更文挑战第12天】 React 18 引入了并发渲染、自动批处理、新的 Suspense 特性、新的 Hooks 和其他多项改进。并发渲染使渲染过程可中断和恢复,提高了应用响应性;自动批处理优化了事件处理,减少不必要的重新渲染;新的 Suspense 支持数据获取和更好的错误处理;新增的 `useId` 和 `useTransition` Hooks 提供了更多功能;服务器组件和改进的错误边界处理进一步提升了性能和稳定性。这些新特性为开发者提供了强大的工具,帮助构建更高效、更稳定的应用。
1380 58
|
传感器 Ubuntu Java
ESP-IDF 蓝牙开发实战 — 传感器数据上传及手机控制开发板
ESP32-C3 蓝牙部分我们学习了GATT,本文博主手把手带领大家使用 ESP32-C3的蓝牙做一个简单的小应用。
3315 0
ESP-IDF 蓝牙开发实战 — 传感器数据上传及手机控制开发板
|
消息中间件 传感器 网络协议
阿里云MQTT简介和使用流程
以下是内容的摘要: 该文主要介绍了在阿里云上搭建 MQTT 服务器的步骤。首先,需要注册阿里云账号并进行实名认证。然后,购买阿里云 MQTT 实例,选择合适的类型、地域、连接和消息限制。接着,创建产品和设备,命名并上线,获取 MQTT 连接的相关信息,包括 ProductKey、DeviceName 和 DeviceSecret。通过提供的 MQTT.fx 工具,设置 MQTT 客户端连接参数,包括 Broker 地址、端口、用户名和密码。最后,使用 MQTT.fx 测试连接,实现数据的上报和接收,验证 MQTT 服务器的配置是否成功。
|
网络协议 算法 中间件
【总结】单片机重点知识总结记录之CMSIS详解(六)
【总结】单片机重点知识总结记录之CMSIS详解(六)
2177 0
|
安全 物联网 Android开发
利用ESP32实现蓝牙通信的方法
大家好,我是ST! 上次给大家分享了如何使用ESP32实现UDP通信,今天跟大家聊聊如何使用ESP32实现蓝牙通信。
3290 0
利用ESP32实现蓝牙通信的方法