ESP32CAM,点亮一个LED(Arduino平台)

news2024/11/26 12:27:13

前言

(1)在此,吐槽一下乐鑫的函数介绍,真的难找。恶心的一批。气死我了。
(2)接下来我将会介绍我是如何找到ESP32的Arduino平台的函数库的。你将会知道为啥我这么大的戾气。
(3)同时我将介绍一下如何点亮LED,以及做一个呼吸灯
(4)学习本文之前,需要安装好Arduino IDE和ESP32驱动。没有安装好的,请自行阅读以下教程:
esp32环境安装教程—arduino IDE;esp32CAM环境安装教程—串口驱动安装;
(5)Arduino平台的ESP32函数库介绍;

点亮LED

分析原理图

(1)我们看如下原理图,得知,LED是由GPIO33控制的。
(2)我们知道LED是共阳的,所以GPIO33输出低电平,LED1亮。GPIO33输出高电平,LED灭。

在这里插入图片描述

函数介绍

pinMode()

pinMode()是用于设置GPIO的模式的。

/**** 函数原型 ****/
void pinMode(uint8_t pin, uint8_t mode);
/**** 函数介绍 ****/
/* 作用 : 设置GPIO的模式
 * 传入参数 : 
     * pin : 设置要配置的GPIO,直接输入数字即可,比如配置GPIO33,就输入33
     * mode : 可选参数如下 >
              INPUT (设置为无上拉或下拉(高阻抗)的输入)
              OUTPUT (设置为输出)
              INPUT_PULLDOWN (设置为具有内部下拉的输入)
              INPUT_PULLUP (设置为带有内部上拉电阻的输入)
 * 返回值 : 无
*/

digitalWrite()

digitalWrite()用于将GPIO设置为输出高电平,或者是输出低电平。

/**** 函数原型 ****/
void digitalWrite(uint8_t pin, uint8_t val);
/**** 函数介绍 ****/
/* 作用 : 设置GPIO的模式
 * 传入参数 : 
     * pin : 设置要配置的GPIO,直接输入数字即可,比如配置GPIO33,就输入33
     * val : 可选参数如下 >
              HIGH (输出高电平)
              LOW (输出低电平)
 * 返回值 : 无
*/

delay()

这个是用于延时的。单位是ms

代码实操

LED闪烁


#define  positive 1  //如果LED为共阳极,写1.如果是共阴极,写0

#if  positive
#define LED_on LOW
#define LED_off HIGH
#else
#define LED_on HIGH
#define LED_off LOW
#endif

//开机启动代码
void setup() {
  //pinMode
  pinMode(33,OUTPUT);
}
// 死循环
void loop() {
  digitalWrite(33, LED_on);  
  delay(1000);
  digitalWrite(33, LED_off);  
  delay(1000);
}

呼吸灯

#define  positive 1  //如果LED为共阳极,写1.如果是共阴极,写0

#if  positive
#define LED_on LOW
#define LED_off HIGH
#else
#define LED_on HIGH
#define LED_off LOW
#endif

//开机启动代码
void setup() {
  //pinMode
  pinMode(33,OUTPUT);
}
int i=0;
// 死循环
void loop() {
  for(i=0;i<=20;i++)
  {
    digitalWrite(33, LED_on);  
    delay(i);
    digitalWrite(33, LED_off);    
    delay(20-i);
  }
  for(i=20;i>=0;i--)
  {
    digitalWrite(33, LED_on);  
    delay(i);
    digitalWrite(33, LED_off);    
    delay(20-i);
  }
}

查找函数介绍的过程

(1)首先,我在乐鑫官网找到技术文档。因为ESP32CAM是ESP32系列单片机,所以勾选ESP32。

在这里插入图片描述

(2)往下滑,找到ESP-IDF 编程指南,点击打开。

在这里插入图片描述

(3)在ESP-IDF 编程指南中,点击资源。然后找到,通过 Arduino 平台开发应用,请参考 ESP32、ESP32-S2 和 ESP32-C3 芯片的 Arduino 内核。
注意:这个链接是GitHub,可能需要使用魔法。

在这里插入图片描述

(4)打开GitHub之后,往下滑找到Documentation,在Documentation中,能够找到Libraries;点击打开。

在这里插入图片描述

(5)在Libraries中找到APIs即可。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/551720.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux系统中输入与输出重定向

什么是输入输出重定向 我们在日常工作中最常用的是输出重定向&#xff0c;输出重定向就是将原本要打印到屏幕中的信息重定向到一个文件中。而输入重定向呢就是指把文件导入到命令中去&#xff0c;听起来是不是有点抽象啊&#xff0c;后面看博主举例说明就很好理由啦。 输出重定…

通讯录信息管理系统

系列文章 任务50 通讯录信息管理系统 文章目录 系列文章一、实践目的与要求1、目的2、要求 二、课题任务三、总体设计1.存储结构及数据类型定义2.程序结构3.所实现的功能函数4、程序流程图 四、小组成员及分工五、 测试插入按编号查找按姓名查找按城市查找更新排序浏览删除统计…

超好玩C++控制台打飞机小游戏,附源码

我终于决定还是把这个放出来。 视频在这&#xff1a;https://v.youku.com/v_show/id_XNDQxMTQwNDA3Mg.html 具体信息主界面上都有写。 按空格暂停&#xff0c;建议暂停后再升级属性。 记录最高分的文件进行了加密。 有boss&#xff08;上面视频2分47秒&#xff09;。 挺好…

轻松转换CAJ文件为PDF格式:免费工具和技巧

在处理中国知网&#xff08;CNKI&#xff09;数据库中的CAJ文件时&#xff0c;将其转换为更常用的PDF格式可以提供更广泛的共享和便捷的阅读体验。本文将介绍一种免费的工具和一些技巧&#xff0c;帮助您轻松地将CAJ文件转换为PDF格式。我们将使用记灵在线工具进行操作。 记灵…

推荐几本提高程序员职业素养的书

如果你是一名程序员&#xff0c;想要提长自己&#xff0c;那么这几本书推荐给你。 1、好代码 &#xff0c;坏代码 为了写出优良的代码&#xff0c;我们必须对手上的方案有合理的判断&#xff0c;并彻底想清楚特定方法的结果&#xff08;好的和坏的&#xff09;。为此&#xff…

F检验.医学统计实例详解

F检验是一种重要的医学统计方法&#xff0c;常用于检验两个或多个样本的方差是否相等&#xff0c;也被称为方差齐性检验。方差齐性检验是医学研究中的基本方法&#xff0c;因为许多重要的统计分析都要求样本方差相等&#xff0c;如方差分析、t检验等。以下将介绍F检验的基本原理…

简单上手Scrapy框架

创建一个Scrapy框架的爬虫程序 安装Scrapy库&#xff0c;直接通过pycharm搜索Scrapy进行安装即可 在终端执行 scrapy startproject 项目名 scrapy startproject Learn 示例 即可创建名为Learn的Scrapy程序&#xff0c;成功创建项目后&#xff0c;会已项目名称创建一个文件夹&…

FTP和SSH连接远程终端Ubuntu

安装好ubuntu后是默认没有ssh服务和ftp服务的&#xff0c;我们需要自己解决一下这个问题 SSH 更新软件列表和软件 sudo apt-get update sudo apt-get upgrade安装ssh sudo apt-get install ssh启动ssh服务 sudo /etc/init.d/ssh start修改ssh服务配置文件 sudo vim /etc/…

前端工程化:发布一个属于自己的规范 npm 包

初始化项目 首先在github创建一个仓库&#xff0c;协议选择MIT&#xff0c;gitignore选择Node&#xff0c;添加README.md描述文件。使用git clone将项目克隆到本地。cd 进入目录&#xff0c;使用vscode打开&#xff08;终端输入code . 命令即可&#xff09;。 然后创建一个合理…

CentOS-7 安装 MariaDB-10.8

一、安装之前删除已存在的 Mysql/MariaDB 1 查找存在的 MariaDB # 注意大小写 rpm -qa | grep MariaDB # rpm -qa 列出所有被安装的rpm package &#xff08;-qa:query all&#xff09; rpm -qa | grep mariadb # grep &#xff08;缩写来自Globally search a Regular Expre…

C++ 折叠参数包:悄然增强编程效率

前言 欢迎来到&#x1f496;小K&#x1f496;的&#x1f49e;C专栏&#x1f49e;&#xff0c;本节将为大家带来折叠参数包的详细讲解&#xff0c;折叠参数包为C模板编程提供了更加灵活和强大的工具&#xff0c;可以提高代码的简洁性和可读性&#xff0c;看完后希望对你有收获 文…

室内外融合定位UWB信标定位方案

大家好&#xff0c;我是北京华星智控公司小智&#xff0c;今天我给大家介绍室内外融合定位系统方案&#xff0c;该方案室外采用北斗卫星定位技术室内采用UWB定位技术从而实现室内外精确定位无缝切换&#xff0c;实现室内外的融合定位。 室内外融合定位系统&#xff0c; 该方案…

Binder相关问题

Binder相关问题 1、Binder是什么&#xff1f;2、Binder有什么优势&#xff1f;3、Binder如何做到一次拷贝的&#xff1f;4、MMAP的原理是什么&#xff1f;5、Binder机制是如何跨进程的&#xff1f;6、为什么Intent不能传递大数据7、AIDL生成Java类细节8、四大组件底层的通信机制…

波奇学Linux:yum和vim

Linux三种安装方式 源代码安装 用户下载->软件源码->源码编译->可执行程序 rpm安装&#xff1a;相当于去官网下载Linux安装包 可能存在依赖项不匹配问题。 yum安装包 用户yum下载->软件安装包->可执行程序 yum是软件包管理器&#xff0c;解决安装源&…

玩客云刷Armbian带docker详细教程(附所有软件)

文章目录 介绍一.准备工作1.硬件准备2.软件准备 二.开始折腾1.烧录系统固件2.刷入系统1.准备镜像2.刷入镜像3.刷入镜像到系统 三.功能介绍1.网页终端2.设备状态3.AriaNg4.qBittorrent5.微力同步6.filebrowser7.Portainer 四.拓展1.添加Alist1.介绍2.安装3.配置3.1查看密码3.2修…

chatgpt赋能Python-pythoncidere

PythonCider&#xff1a;提供最优质的 Python 编程知识 Python 是目前最受欢迎的编程语言之一&#xff0c;特别在数据科学和人工智能方面应用广泛。如果你是一名 Python 开发者或者正在学习 Python 编程&#xff0c;PythonCider 是一个你绝对不能错过的网站。 什么是 PythonC…

JavaScript实战训练小项目 WebAPI

JavaScript实战训练小项目 文章目录 JavaScript实战训练小项目 & WebAPI1. JS操作DOM树1.1 获得HTML控件/元素标签1.2 操纵控件1.2.1 获取属性值1.2.1 修改属性值 1.3 实现一个猜数字的功能 2. JQuery3. 简单计算器4. 聚合搜索5. 表白墙 JavaScript实战训练小项目 & We…

OpenLayers入门教程汇总目录

前言 本篇作为OpenLayers入门教程的目录&#xff0c;用于整理汇总专栏所有文章&#xff0c;方便查找。 入门 Gis开发入门&#xff0c;OpenLayers、Leaflet、Maplibre-gl和Cesiumjs地图引擎介绍以及几种地图服务vms、vmts介绍vue项目集成并使用OpenLayers地图的两种方式 加…

记ABAC的落地实践

为什么使用ABAC 一般提到授权&#xff0c;我们就会想到角色&#xff08;role&#xff09;。什么样的用户拥有什么样的角色可以怎么操作什么样的资源&#xff0c;这是我们普遍使用的权限系统的模型。这里的角色实质上是包含了一组用户操作资源的规则集合。一旦角色被创建&#…

【RISC-V】执行环境

裸机程序 操作系统 虚拟化 RISC-V处理器3种模式 机器模式(M模式) 安全执行环境&#xff0c;通常运行SBI固件&#xff0c;为操作系统提供服务。 特权模式(S模式) 运行操作系统内核&#xff0c;为应用程序提供服务。 用户模式(U模式) 运行应用程序。 虚拟化新增特权模式 …