3 PWM控制

Esp32的PWM控制也配置库函数,以下就是PWM所用到的函数

1 PWM通道初始化设置
函数原型uint32_t ledcSetup(uint8_t chan, uint32_t freq, uint8_t bit_num)
函数功能设定指定LEDC通道的PWM信号频率和占空比分辨率
返回值通道PWM信号的频率
参数说明chan(LEDC通道号:0-15) freq(待设置的PWM脉宽信号的频率) bit_num(计数位数,即PWM信号占空比的分辨率) 8:表示范围0-255;
设计参考//初始化LEDC通道3的信号频率为1KHz,计数位数为10 ledcSetup(3,1000,10);
2 PWM通道的绑定
函数原型void ledcAttachPin(uint8_t pin, uint8_t chan)
函数功能设定指定LEDC通道绑定指定的GPIO引脚上,即由该引脚输出LEDC的PWM信号
返回值
参数说明chan(LEDC通道号:0-15) pin (数字引脚)
设计参考//初始化LEDC通道3绑定到GPIO14上 ledcAttachPin(4,3);
3 PWM占空比的设置
函数原型void ledcWrite(uint8_t chan, uint32_t duty)
函数功能设定指定LEDC通道的占空比数值
返回值
参数说明chan(LEDC通道号:0-15) duty (待设置的PWM占空比数值) 该数值范围由通道初始化设置函数ledcSetup()中的计数位决定
设计参考//初始化LEDC通道3的频率初始化为128Hz,计数位数为8,绑定到GPIO14引脚上,输出占空比为25%的PWM信号 ledcSetup(3,128,8); ledcAttachPin(3,14); ledcWrite(3,64);
4 项目

利用PWM输出不同宽度的信号,实现输出电压大小不同,再作用到LED灯上,就可以实现呼吸灯的效果,代码如下:

#include <Arduino.h>//进行PWM初始化
#define pwm1 2//定义pwm通道引脚
#define channel1 1//定义pwm通道 0-15void PWM_Init(){ledcSetup(channel1,200,8);ledcAttachPin(pwm1,1);
}void setup() {PWM_Init();
}void loop() {// put your main code here, to run repeatedly:for (int i = 0; i < 255; i++){ledcWrite(channel1,i);delay(10);}for(int i = 0;i < 255; i++){ledcWrite(channel1,255 - i);delay(10);}
}

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

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

相关文章

boost asio同步编程(附源码api)

首先注明&#xff0c;这里我写的都是关于tcp的通信。 通信大致流程 创建端点 创建tcp端点的api是boost::asio::ip::tcp::endpoint; 当然创建udp端点的api则是boost::asio::ip::udp::endpoint; 是一个表示 TCP/UDP 端点的类&#xff0c;在 Boost.Asio 库中用于网络编程。它通…

鸿蒙ArkUI:【编程范式:命令式->声明式】

命令式 简单讲就是需要开发用代码一步一步进行布局&#xff0c;这个过程需要开发全程参与。 开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 Objective-C ObjectiveC 复制代码 UIView *cardView …

day3_prefixSum

一、前缀和技巧 重点 前缀和技巧适用于快速、频繁地计算一个索引区间内的元素之和 个人理解&#xff1b;预计算&#xff0c;空间换时间 1.(一维数组的前缀和)303区域和检索-数组不可变 获取闭区间值 [left,right] -> preSum[right 1] - preSum[left],其中preSum[right…

Linux下VMamba 环境复现+环境测试

# 1. 创建自己的虚拟环境 conda create -n VMamba python3.10.13 conda activate VMamba # 2. cuda-11.8 conda install cudatoolkit11.8 -c nvidia # 3. torch torchvision torchaudio 与 官网命令一致 pip install torch2.1.1 torchvision0.16.1 torchaudio2.1.1 --index-url…

苹果电脑怎么清内存?2024有哪些好用的工具?

在使用苹果电脑的过程中&#xff0c;我们可能会遇到系统运行缓慢、程序响应迟缓或频繁出现应用程序崩溃的情况&#xff0c;这些问题很可能是由于内存占用过高所导致。内存&#xff0c;或称为RAM&#xff08;RandomAccessMemory&#xff09;&#xff0c;是计算机的临时存储区&am…

[C++][PCL]pcl安装包预编译包国内源下载地址

版本名称下载地址PCL-1.14.1-AllInOne-msvc2022-win64含pdb.zip点我下载PCL-1.14.0-AllInOne-msvc2022-win64含pdb.zip点我下载PCL-1.13.1-AllInOne-msvc2022-win64含pdb.zip点我下载PCL-1.13.0-AllInOne-msvc2022-win64含pdb.zip点我下载PCL-1.12.1-AllInOne-msvc2019-win64含…

超级好看的html网站维护源码

源码介绍 好看的html网站维护源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c; 源码截图 源码下载 好看的html网站维护源码

py黑帽子学习笔记_网络编程工具

tcp客户端 socket.AF_INET表示使用标准IPV4地址和主机名 SOCK_STREAM表示这是一个TCP客户端 udp客户端 udp无需连接&#xff0c;因此不需要client.connect这种代码 socket.SOCK_DGRAM是udp的 tcp服务端 server.listen(5)表示设置最大连接数为5 发现kill server后端口仍占用…

【服务治理中间件】consul介绍和基本原理

目录 一、CAP定理 二、服务注册中心产品比较 三、Consul概述 3.1 什么是Consul 3.2 Consul架构 3.3 Consul的使用场景 3.4 Consul健康检查 四、部署consul集群 4.1 服务器部署规划 4.2 下载解压 4.3 启动consul 五、服务注册到consul 一、CAP定理 CAP定理&#xff…

i春秋-Backdoor

题目 考点 git源码泄露 Linux文件恢复 代码审计 http 解题 参考wp https://blog.csdn.net/cbhjerry/article/details/105791056https://www.pianshen.com/article/19461342501/扫描 题目给出提示&#xff1a;敏感文件泄漏 于是使用dirsearch扫一下 python dirsearch.py -…

【C++风云录】跨越时空的分析:古生物学与化石记录

古生物学数字化&#xff1a;C库的应用和影响 前言 在本文中&#xff0c;我们将深入探讨和评估几个重要的C库及其在古生物学和化石记录分析中的应用。此外&#xff0c;我们还将介绍MorphoSource API&#xff0c;以及使用C进行API接入的过程。文章还会讲述化石校准工具的重要性…

STM32H5 擦除flash时,GetSector进入Error_Handler

背景及问题&#xff1a;开发项目时&#xff0c;操作内部flash&#xff0c;调用getsetcor时&#xff0c;进入hardfault&#xff0c;经调试发现FLASH_BANK_SIZE读不到值&#xff0c;FLASH_BANK_SIZE取值来源于以下步骤&#xff1a;一时没有任何思路 ((((*((uint16_t *)FLASHSIZE…

ICode国际青少年编程竞赛- Python-4级训练场-while语句综合

ICode国际青少年编程竞赛- Python-4级训练场-while语句综合 1、 for i in range(4):while not Flyer[i].disappear():wait()Spaceship.step(6)Spaceship.turnLeft()2、 Dev.turnLeft() for i in range(4):Spaceship.step(2)while Flyer[i].disappear():wait()Dev.step(4)Dev.…

研究生写论文常用工具以及如何快速阅读外文

研究生在写论文时经常需要用到一些常用的科研工具&#xff0c;这里介绍8款&#xff0c;可以根据需求使用&#xff1a; 1、文献检索工具&#xff1a;如Google Scholar、Web of Science、PubMed等&#xff0c;用于查找相关文献和资料。 2、文献管理工具&#xff1a;如EndNote、…

Failed to parse source map (@toast-ui/editor/dist/purify.js.map)

使用 toast-ui-editor 时出现报错&#xff1a;Failed to parse source map (toast-ui/editor/dist/purify.js.map) 解决方法很简单&#xff1a; "start": "set "GENERATE_SOURCEMAPfalse" && react-scripts start ",在启动脚本时添加执…

程序员代码面试指南题目解析(一)

题目一&#xff1a;如何仅用递归函数和栈操作逆序一个栈 题目要求&#xff1a; 一个栈依次压入 1、2、3、4、5&#xff0c;那么从栈顶到栈底分别为5、4、3、2、1。将这个栈 转置后&#xff0c;从栈顶到栈底为 1、2、3、4、5&#xff0c;也就是实现栈中元素的逆序&#xff0c;但…

【吴恩达机器学习-week2】多个变量的线性回归问题

文章目录 1.1 目标2 问题陈述2.1 包含我们示例的矩阵 X2.2 参数向量 w \mathbf{w} w 和 b b b 3 使用多个变量进行模型预测3.1 逐元素单独预测3.2 单一预测&#xff0c;向量 4 使用多个变量计算成本5 使用多个变量的梯度下降5.1 使用多个变量计算梯度 多个变量的梯度下降小结…

软件测试概述

目录 引言 1. 软件测试的原因 2. 软件缺陷的由来 3. 软件测试的发展历程 4. 软件测试的定义 5. 软件测试的层次和类型 6. 软件测试的过程 结语 引言 在当今以软件为中心的时代&#xff0c;软件已无处不在&#xff0c;深刻影响着我们的生活、工作和娱乐方式。从智能手机…

Vue 3 中使用 const model=defineModel() 简化 v-model 的技巧

当我们在 Vue 3 中处理表单输入时&#xff0c;经常会使用 v-model 来实现数据的双向绑定。然而&#xff0c;在某些情况下&#xff0c;我们可能需要对 v-model 进行一些额外的处理&#xff0c;例如对输入值进行格式化、验证或者其他操作。这时&#xff0c;可以使用 const model …

搜歌网搜索各种类型音乐,统统歌曲转换格式mp3,轻松实现音乐自由!

在互联网的广阔天地中&#xff0c;音乐爱好者们总能找到满足自己需求的平台。其中&#xff0c;支持全网搜歌的网站无疑是一个值得推荐的音乐探索乐园。无论是寻找经典老歌&#xff0c;还是发掘新兴音乐&#xff0c;搜他们都能为音乐爱好者提供一站式的服务。 一般支持全网搜索…