Arduino+ESP32-WROOM-32UE(一)

这篇具有很好参考价值的文章主要介绍了Arduino+ESP32-WROOM-32UE(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

刚刚接触Arduino平台和ESP32,借用博客的形式做一个简单的学习记录。在这里,我将记录自己的学习过程以及遇到的一些问题,并把容易踩的坑总结出来。话不多说,开始吧。

1.点亮ESP32上的LED灯

理论上购买的各种开发板上都会有内置的LED灯以及对应的管脚。所以想要点亮一个LED,需要查询相应的手册,找到对应的引脚,即可点亮LED。这里放一个网址,可以下载自己所需的ESP32手册:

https://docs.espressif.com/projects/arduino-esp32/en/latest/getting_started.html#examples

Arduino+ESP32-WROOM-32UE(一)

 我用的ESP32 WROOM 32UE对应的是ESP32-D0WD-V3芯片,下载第一个手册即可。

手册里找了半天没找到,所以:

Arduino+ESP32-WROOM-32UE(一)

现在就可以开始点灯了。

(1)在Arduino中打开示例Blink:

Arduino+ESP32-WROOM-32UE(一)

(2)打开后,看里面的内容

Arduino+ESP32-WROOM-32UE(一)

第一部分是对于这个示例的简单介绍。

功能:点亮LED,亮一秒,暗一秒。

对应管脚:大部分UNO板子是13脚,在MKR1000上是6脚。我们使用的不同于二者,所以需要对其进行更改。

第二部分就是代码了。

对代码做了简单学习。

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

setup(),loop()函数都是Arduino内部已经封装好的函数。

setup()函数用于对程序做一些必要的设置,是程序中第一个被执行的。现在它里面只有一个语句:

pinMode(LED_BUILTIN, OUTPUT);

容易理解,这个语句是对某个引脚的模式做了设置,为输出模式。pinMode()函数也是Arduino中的函数。

loop()函数中有两部分构成,一部分是对引脚的拉高/拉低,另一部分是延时。

  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second

digitalWrite()函数用于对某个引脚的状态进行赋值,在本例中体现为灯的亮与灭

Arduino+ESP32-WROOM-32UE(一)

 延时函数是Arduino为我们写好的,利用delay()即可实现,其单位为1ms。

(3)对内容进行修改实现功能

我们只需对引脚做一个简单的修改即可,将原来的13脚改为2脚。故搜索资料后,对管脚2操作如下:

const int LED_BUILTIN = 2;

const关键字代表常量。它修改了变量的行为,使得该变量可以像其类型的任何其他变量一样使用。也就是说,LED_BUILTIN就是管脚2。

(4)验证上传

Arduino+ESP32-WROOM-32UE(一)

 成功。

如果要修改灯的闪烁,就修改延时时间就可以了。

接下来我在DFROBOT网站上学习,第二个简单项目是利用LED输出SOS。实际上就是利用不同的闪烁时间分别代表S、O两个字母,配合循环完成。具体代码如下:

const int LED = 2;
// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED, OUTPUT);
}

// the loop function runs over and over again forever
void loop() 
{
  for(int x=0;x<3;x++)
  {
  digitalWrite(LED, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(150);                     
  digitalWrite(LED, LOW);    // turn the LED off by making the voltage LOW
  delay(100);                      
  }

delay(100);//The interval between two letters



  for(int x=0;x<3;x++)
  {
  digitalWrite(LED, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(400);                      
  digitalWrite(LED, LOW);    // turn the LED off by making the voltage LOW
  delay(100);                       
  }
delay(100);//The interval between two letters
  for(int x=0;x<3;x++)
  {
  digitalWrite(LED, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(150);                      
  digitalWrite(LED, LOW);    // turn the LED off by making the voltage LOW
  delay(100);                       
  }
delay(5000);//The interval between two signals
  
}

最重要的是for语句的应用,注意点:

  • 对for中变量类型的声明
  • 中间用;间隔
  • 所有for循环写在一个loop()中

2.ESP32中的按键使用

学完点灯,自然要学按键。

本实验功能:通过按键控制灯的亮灭,按下时等亮,松开时灭。

这个逻辑很简单,只需要对按键引脚做出判断即可。通过查询:ESP32板上对应按键的引脚是GPIO0。由于被上拉,所以当按下按键时,0口为逻辑0;松开按键时,0口为逻辑1。

故编程如下:

const int LED = 2;
const int KEY_0 = 0;
void setup() 
{
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED, OUTPUT);
  pinMode(KEY_0,INPUT_PULLUP);
}
void loop() 
{
  if (digitalRead(KEY_0)==0)//Determine if the key is pressed
  {
    digitalWrite(LED, HIGH);   // turn the LED on (HIGH is the voltage level)
    delay(150);  
  }                   
  else
  {
    digitalWrite(LED, LOW);   // turn the LED on (HIGH is the voltage level)
    delay(150);  
  } 
}

对上述代码作说明:

  • 按键对应GPIO0,所以对其进行了定义
  • 将0口设置为输入上拉模式
  pinMode(KEY_0,INPUT_PULLUP);

这也就是为什么按键未按下时是逻辑1,按下时是0。

  • 利用digitalRead()函数对0口的状态进行读取,用if……else逻辑进行判断

Arduino+ESP32-WROOM-32UE(一)

  •  这里在每一个读取后加了一个小延时,做一个简单消抖

最终,结果如下:

Arduino+ESP32-WROOM-32UE(一)

  按下按键前

Arduino+ESP32-WROOM-32UE(一)

 按下按键后


第一次记录到此结束。下一次计划更新利用ESP32实现AD采集。文章来源地址https://www.toymoban.com/news/detail-434257.html

到了这里,关于Arduino+ESP32-WROOM-32UE(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ESP32入门教程】ESP32开发板原理图,引脚图,引脚功能,ESP WROOM 32,介绍ESP32硬件

    记录本人学习历程,同时也分享给大家学习,仅供参考! 模组共有38个管脚,具体描述如下。 1. GPIO6至GPIO11 引脚 控制集成在模组内部的SPI Flash, 不建议用于其他功能 。 SCK/CLK GPIO6 SDO/SD0 GPIO7 SDI/SD1 GPIO8 SHD/SD2 GPIO9 SWP/SD3 GPIO10 SCS/CMD GPIO11 2.Strapping 管脚 ESP32共有5个Strapping管脚,。

    2024年02月08日
    浏览(67)
  • 【代码分享】ESP32接入华为云物联网平台完成属性定时上报(Arduino IDE开发)

    更多相关:华为云IOT物联网 论坛  之前带着大家写过使用esp8266接入华为云物联网平台的教程,有小伙伴后台私信,在ESP32接入华为云时遇到了问题,ESP32和ESP8266的代码几乎差不多的,ESP8266代码中用了“ESP8266.h”开发;ESP32可以直接用“WIFI.h”开发,教程基本和esp8266的那期教

    2024年02月13日
    浏览(56)
  • 传感器使用——ESP-WROOM-32 and INMP441麦克风音频采集

             使用不同传感器前需要了解其连接及通信方式。对于 ESP-WROOM-32 and INMP441麦克风 是通过 I2S 方式进行通信。具体连接引脚参照下图: ESP-WROOM-32引脚示意图          使用的麦克风为MEMS麦克风,具体规格可参照芯片规格数说明。 INMP441麦克风         I2S音频连接

    2024年02月09日
    浏览(45)
  • Arduino ESP32开发环境搭建入门教程,esp32的arduino开发环境搭建教程,arduino导入eps32开发插件

    从官网下载 Arduino IDE 软件并安装。下载链接:Software | Arduino 网盘链接:链接:https://pan.baidu.com/s/1ZuSbo1BPy8XyyXzfl4KNzg?pwd=f8yd 提取码:f8yd 1、找到Arduino IDE安装目录,打开hardware文件夹。 2、在hardware文件夹中创建一个espressif文件夹。 3、将解压出的文件夹移动到espressif文件夹中,

    2024年02月13日
    浏览(56)
  • Arduino ESP32

    Arduino官网 1.下载Arduino IDE=SOFTWARE页面下载所需适配的操作系统(Windows, Linux, macOS)等; 其中Windows版本MSI installer是需要安装的。zip的解压即可运行不需要安装。 2.Arduino IDE中添加ESP32开发板软件包数据: Arduino IDE:文件首选项附加开发板管理器网址 中加入Arduino core for esp32的地

    2024年02月15日
    浏览(57)
  • ESP32 模拟键盘的简单操作 (ESP32 for Arduino)

    本来是以前做过的ESP32项目,但是想拿来用在别的项目上时发现找不到了。所以重新写一下这个项目,记录一下。 首先说明 :使用ArduinoIDE、模块型号为esp32-wroom-32。 库文件链接: 期间发现了好几个库,但是这个库选择的人比较多,就是用这个库。 Arduino 也有相类似的库,介

    2024年02月06日
    浏览(51)
  • Arduino离线安装esp32/esp8266

    使用本教程所示的安装方法,双击安装包的傻瓜式操作,不用进入文件夹修改,不用添加网站地址,免去网络带来的烦恼。安装完成后直接使用。 官网地址:Software | Arduino 打开链接后如图  点击红色框内以后跳转到此界面 再次选择红框后下载 打开安装包一直下一步就好 打

    2023年04月13日
    浏览(49)
  • Arduino ESP32的串口

    在Arduino的核心中有三个串口,分别是Serial,Serial1,和Serial2. 当然ESP32也可以使用软串口。但硬件串口更稳健(我这样理解)。但Serial1这个串口不能使用,因为端口GPIO6 ~ GPIO11都用到了Flash。那如何使用你的Serial1串口哪?可以通过改变串口1的rxPin和txPin的方法,具体如下。 在

    2024年02月11日
    浏览(37)
  • ESP32-Touch(Arduino)

    Touch 传感器是一种外围设备,具有内部振荡器电路,可在固定时间段内测量相应GPIO引脚上的充电/放电频率。 因此,这些触摸传感器也被称为电容式传感器。例如,如果您触摸这些引脚中的任何一个,手指电荷将改变这个周期数, 通过更改连接到触摸传感器的 RC 电路。 Tou

    2024年01月16日
    浏览(36)
  • 【ESP32】arduino中的ESP32实时系统FreeRTOS使用教程(一)

    简单的本节略过,详细的可以看视频:单片机ESP32上的FREERTOS这个作者讲的挺好的,通俗易懂 FreeRTOS中的任务有运行态、就绪态、阻塞态、挂起态四种状态,在任何时候都只处于其中一种状态。任务状态之间的转换如下图所示: 每一个任务都会有一个任务优先级,其范围为

    2023年04月15日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包