【史上最全面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就开始逐个闪烁了。

总结

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

相关文章
|
1月前
|
C++
C++番外篇—— ostream和istream详解
C++番外篇—— ostream和istream详解
70 1
|
6月前
|
图形学
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
287 0
|
编解码 芯片
实战贴:开源GUI STemWin在小熊派上的移植(显示很漂亮、很细腻,棒!)
实战贴:开源GUI STemWin在小熊派上的移植(显示很漂亮、很细腻,棒!)
402 2
|
传感器 移动开发 缓存
基于小熊派WIFI-ESP8266实践(中)-多功能处理显示等大杂烩
基于小熊派WIFI-ESP8266实践(中)-多功能处理显示等大杂烩
156 0
|
IDE 开发工具 C语言
【史上最全面esp32教程】蜂鸣器篇(是噪声还是音乐?)
【史上最全面esp32教程】蜂鸣器篇(是噪声还是音乐?)
852 0
【史上最全面esp32教程】oled显示篇
【史上最全面esp32教程】oled显示篇
1339 0
|
C语言
无敌!我用【C语言】手搓出了一个体系完整的【员工管理系统】还能玩游戏听音乐?(超详细,附完整源码)
前言:员工管理系统是一款面向公司管理员的管理工具,旨在提供员工信息管理、薪资管理、员工绩效评估、员工福利管理和智能推荐等功能,帮助公司管理员更好地管理员工信息和提高员工工作效率。 这是总体设计大概模型图:
140 0
|
存储 Java API
一个精美的主界面窗口功能的设计和实现原来如此简单,万字肝爆
一个精美的主界面窗口功能的设计和实现原来如此简单,万字肝爆
113 0
|
安全 程序员 PHP
为拯救童年回忆,开发者决定采用古法编程:用Flash高清重制了一款游戏(二)
为拯救童年回忆,开发者决定采用古法编程:用Flash高清重制了一款游戏
102 0
|
XML 存储 JavaScript
为拯救童年回忆,开发者决定采用古法编程:用Flash高清重制了一款游戏(一)
为拯救童年回忆,开发者决定采用古法编程:用Flash高清重制了一款游戏
107 0