当前位置: 首页 > news >正文

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

文章目录

  • 前言
  • ESP32简介
  • 认识arduino的两个函数
  • 点灯
    • 步骤
    • 函数介绍
  • LED灯闪烁
  • 流水灯
  • 总结


前言

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 2void 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 18void 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就开始逐个闪烁了。

总结

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

http://www.lryc.cn/news/12666.html

相关文章:

  • 【Java 面试合集】内存中为什么要区分栈和堆
  • 【NLP实战】Python字符串处理
  • 17.CSS伪类
  • 数据链路层
  • 投票需要什么流程微信投票互助平台的免费投票平台搭建
  • 数据结构——算法的时间复杂度
  • Go基础-类型
  • 良许翻天覆地的2022年
  • node+vue微信小程序的社区后勤报修系统
  • WSL(Windows Subsystem for Linux)
  • 华为OD机试题 - 单词反转(JavaScript)
  • 人工智能原理复习 | 产生式系统的搜索策略
  • 初始C语言 - 数组(一维数组、二维数组、数组越界、数组传参)
  • 人工智能原理复习 | 可分解产生式系统的搜索策略
  • 线段树(维护区间信息)
  • C语言 基于Ncurse库的贪吃蛇游戏项目
  • 【Java基础】Java语言特性
  • python进阶--Numyp库(一)
  • CV学习笔记-Inception
  • 注意力机制笔记——结合沐神和B站老弓up主
  • 建议收藏,轻松搞懂区块链
  • php设计一个新春祝福墙
  • KubeSphere 社区双周报 | OpenFunction 集成 WasmEdge | 2023.02.03-02.16
  • 数字IC/FPGA 秋招知识点不全面整理
  • 你知道java8是如何排序Map嘛?
  • 【李忍考研传】一、李忍
  • 测牛学堂:软件测试python深入之类和对象的属性和方法总结
  • css实例--新闻页面
  • SpringCloudGateway 动态转发后端服务
  • 使用canvas写一个flappy bird小游戏