嵌入式人工智能ESP32(4-PWM呼吸灯)

news2024/11/24 17:06:47

1、PWM基本原理

PWMPulse-width modulation)是脉冲宽度调制的缩写。脉冲宽度调制是一种模拟信号电平数字编码方法。脉冲宽度调制PWM是通过将有效的电信号分散成离散形式从而来降低电信号所传递的平均功率的一种方式。所以根据面积等效法则,可以通过对改变脉冲的时间宽度,来等效的获得所需要合成的相应幅值和频率的波形。实现模拟电路的数字化控制可显著降低系统成本和功耗。许多微控制器和数字信号处理器 (DSP) 已包括了 PWM控制器芯片,因此可以更轻松地实施数字化控制。PWM信号是通过调节占空比的变化来调节信号、能量等的变化。

PWM就是在合适的信号频率下,通过一个周期里改变占空比的方式来改变输出的有效电压。

单片机的IO口输出的是数字信号,IO口只能输出高电平和低电平,假设高电平为5V 低电平则为0V 那么我们要输出不同的模拟电压,就要用到PWM,通过改变IO口输出的方波的占空比从而获得使用数字信号模拟成的模拟电压信号。

电压是以一种连接1或断开0的重复脉冲序列被夹到模拟负载上去的(例如LED灯,直流电机等),连接即是直流供电输出,断开即是直流供电断开。通过对连接和断开时间的控制,理论上来讲,可以输出任意不大于最大电压值(即0~5V之间任意大小)的模拟电压。

比方说 占空比为50% 那就是高电平时间一半,低电平时间一半,在一定的频率下,就可以得到模拟的2.5V输出电压 那么75%的占空比 得到的电压就是3.75V。

 PWM的调节作用来源于对“占周期”的宽度控制,“占周期”变宽,输出的能量就会提高,通过阻容变换电路所得到的平均电压值也会上升,“占周期”变窄,输出的电压信号的电压平均值就会降低,通过阻容变换电路所得到的平均电压值也会下降。也就是,在一定的频率下,通过不同的占空比 即可得到不同的输出模拟电压。PWM就是通过这种原理实现D/A转换的。

嵌入式人工智能(9-基于树莓派4B的PWM-LED呼吸灯)_树莓派4b控制pwm-CSDN博客

2、 PWM信号的生成

 上图显示了比较器使用两个输入PWM信号所生成的 PWM输出波形 (红线): 正弦波 (黑 线) 和输入信号 (灰线)。0.5 VDC 输入信 号是电压基准,通过与正弦波比较生成 PWM 波形。使用 0.5 VDC 稳态基准电压, 可生成 50% 占空比的 PWM 波形。

 如果基准电压降至 0.25 VDC, 那么将生成更高占空比的 PWM波形

3、ESP32的PWM官方示例

可以在所有输出引脚上启用PWM。基本频率可以在1Hz到40MHz的范围内,但存在折衷;随着基频增加,占空比分辨率降低。

from machine import Pin, PWM

pwm0 = PWM(Pin(0))         # create PWM object from a pin
freq = pwm0.freq()         # get current frequency (default 5kHz)
pwm0.freq(1000)            # set PWM frequency from 1Hz to 40MHz

duty = pwm0.duty()         # get current duty cycle, range 0-1023 (default 512, 50%)
pwm0.duty(256)             # set duty cycle from 0 to 1023 as a ratio duty/1023, (now 25%)

duty_u16 = pwm0.duty_u16() # get current duty cycle, range 0-65535
pwm0.duty_u16(2**16*3//4)  # set duty cycle from 0 to 65535 as a ratio duty_u16/65535, (now 75%)

duty_ns = pwm0.duty_ns()   # get current pulse width in ns
pwm0.duty_ns(250_000)      # set pulse width in nanoseconds from 0 to 1_000_000_000/freq, (now 25%)

pwm0.deinit()              # turn off PWM on the pin

pwm2 = PWM(Pin(2), freq=20000, duty=512)  # create and configure in one go
print(pwm2)                               # view PWM settings

4、实验代码

呼吸灯的实现,由亮到暗,再由暗到亮,呼吸。

from machine import Pin, PWM
import time

pwm_led = PWM(Pin(19), freq=100000, duty=1023)

while True:
    for i in range(0,1023,1):
        pwm_led.duty(i)
        time.sleep(0.003)
    for i in range(1023,-1,-1):
        pwm_led.duty(i)
        time.sleep(0.003)

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

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

相关文章

【Python机器学习】FP-growth算法——构建FP树

在第二次扫描数据集时会构建一棵FP树。为构建一棵树,需要一个容器来保存树。 创建FP树的数据结构 FP树要比书中其他树更加复杂,因此需要创建一个类来保存树的每一个节点: class treeNode:def __init__(self,nameValue,numOccur,parentNode…

【GLM-4微调实战】GLM-4-9B-Chat模型之Lora微调实战

系列篇章💥 No.文章1【GLM-4部署实战】GLM-4-9B-Chat模型本地部署实践指南2【GLM-4部署实战】GLM-4-9B-Chat模型之对话机器人部署测试3【GLM-4部署实战】GLM-4-9B-Chat模型之vLLM部署推理实践4【GLM-4微调实战】GLM-4-9B-Chat模型之Lora微调实战 目录 系列篇章&…

SpringBoot整合SMS短信服务

SpringBoot整合SMS短信服务 概览pom依赖yml配置配置类service 层interfaceimpl controller层 概览 了解阿里云用户权限操作开通阿里云短信服务添加短信模板添加签名编写测试代码编写可复用的微服务接口&#xff0c;实现验证码的发送 pom依赖 <!--aliyun 短信服务--> &l…

【项目方案】IP地址地理解析方案对比与选型

目前&#xff0c;许多项目在用户发布言论时需要解析其 IP 地址&#xff0c;并且在账号管理中也有查看最近登录地的需求。然而&#xff0c;市面上的相关教程通常缺乏全面性&#xff0c;往往只提供一种简单的方法&#xff0c;导致在技术方案选型时难以进行有效的方案对比。本文旨…

前端工程化-05.Vue项目开发流程

一.Vue项目开发流程 import是导入模块&#xff0c;而export是导出模块 以.vue结尾的为vue组件文件&#xff0c;是我们Vue项目开发时经常操作的组件 <template>&#xff1a;模板部分&#xff0c;由他生成HTML代码 相当于vue当中的视图部分 <script>&#xff1a;…

C++:缺省参数、函数重载、引用

目录 一、缺省参数 二、函数重载 三、引用 3.1 引用的概念和定义 3.2 引用的特征 3.3 引用的使用 3.4 const引用 3.5 指针和引用的关系 一、缺省参数 • 缺省参数是声明或定义函数时为函数的参数指定⼀个缺省值&#xff0c;在调用该函数时&#xff0c;如果没有指定实参…

数据结构预备知识

目录 1. 什么是集合框架 2. 什么是数据结构 3. 容器背后对应的数据结构 4. 相关java知识 5. 时间复杂度 6. 空间复杂度 7. 包装类 7.1 装箱和拆箱 7.2 阿里面试题&#xff1a; 8. 泛型 8.1 泛型的语法 8.2 泛型怎样编译 9. 泛型的上界 9.1 语法 9.2 泛型方法 1.…

网络通信要素

网络介绍 定义&#xff1a;将具有独立功能的多台计算机通过通信线路和通信设备连接起来&#xff0c;在网络管理软件及网络通信协议下&#xff0c;实现资源共享和信息传递的虚拟平台。 学习网络的目的&#xff1a; 能够编写基于网络通信的软件或程序&#xff0c;通常来说就是网…

CentOS7下制作openssl1.1.1i RPM包并升级

OpenSSL最新漏洞 OpenSSL官方发布了拒绝服务漏洞风险通告&#xff0c;漏洞编号为CVE-2020-1971 漏洞详情 OpenSSL是一个开放源代码的软件库包&#xff0c;应用程序可以使用这个包来进行安全通信&#xff0c;避免窃听&#xff0c;同时确认另一端连接者的身份。这个包广泛被应…

爆了,20w点赞!收好这6个可以一键替换视频人物的AI工具!(建议收藏)

用 AI 一键替换视频中人物角色的玩法&#xff0c;彻底被网友们带火了&#xff01; 前有机器人插秧、机器人做饭做家务的视频&#xff0c;后有机器人打乒乓球、美女踢足球的视频。 这类视频动辄几万、几十万点赞&#xff0c;流量也太猛了&#xff01; 图片可能不太直观&#x…

时空自回归模型(STAR)及 Stata 具体操作步骤

目录 一、引言 二、文献综述 三、理论原理 四、实证模型 五、稳健性检验 六、程序代码及解释 附录 数据预处理 生成时空权重矩阵 一、引言 时空自回归模型&#xff08;Spatial-Temporal Autoregressive Model&#xff0c;简称 STAR&#xff09;在分析具有时空特征的数…

Java填充PDF并返回填充后PDF文件及对应base64码

前期准备 下载PDF编辑工具&#xff08;Adobe Acrobat 9 Pro&#xff09;&#xff1a; 可以主页关注小程序【白哥Java】回复【PDF编辑软件】即可获取 或者直接联系博主也可 主页如下&#xff1a; 软件使用流程 此处流程为文本域流程 图片或其他大致相同 生成模板PDF样式如下&…

Linux命令行参数与环境变量

目录 命令行参数与环境变量 命令行参数 环境变量及其相关概念 环境变量的相关操作 环境变量的本质 命令行参数与环境变量 命令行参数 我们在使用一些Linux的一些指令时&#xff0c;会有意或无意的使用一些指令参数&#xff0c;例如&#xff1a; ls -al ps -ajx gcc -o …

CVE-2024-38077 微软 RDP 漏洞修复 报错 不适用于你的计算机 解决方法

这一漏洞存在于Windows远程桌面许可管理服务&#xff08;RDL&#xff09;中&#xff0c;该服务被广泛部署于开启Windows远程桌面&#xff08;3389端口&#xff09;的服务器&#xff0c;用于管理远程桌面连接许可&#xff0c;也有文章认为该漏洞实际利用的是135端口。攻击者无需…

【大模型】多模态的原理简述

多模态的原理 多模态模型目前基本就是文生图、图生图、图生视频、文生视频这些&#xff0c;其底层逻辑其实还是先从生图片这一源头。因为毕竟视频也是若干帧的图片组成。 所以在生图片的这个环节上&#xff0c;我们把比较火的这个stablediffusion用的这个diffusion扩散模型理…

企业大数据治理管理平台解决方案(33页PPT)

方案介绍&#xff1a; 本解决方案旨在为企业提供一套从数据采集、存储、处理、分析到应用的全链条大数据治理管理平台。该平台通过集成先进的数据技术和管理理念&#xff0c;帮助企业实现数据的全生命周期管理&#xff0c;提升数据质量&#xff0c;降低数据风险&#xff0c;促…

PX4-Autopolite linux环境下源码编译中遇到的一些问题及相应解决办法

最近在做一个PX4飞控移植的项目&#xff0c;第一次接触到PX4源码&#xff0c;真的是感觉编译起来非常的麻烦&#xff0c;下面我将介绍几个新手比较容易踩坑的点。 &#xff08;我都踩了ㄒ-ㄒ&#xff09; 1.PX4源码要用git clone 从github上克隆来&#xff0c;千万不要直接在g…

谷粒商城实战笔记-170~172-缓存-SpringCache

文章目录 一&#xff0c;170-缓存-SpringCache-自定义缓存配置二&#xff0c;171-缓存-SpringCache-CacheEvict1&#xff0c;删除多个缓存2&#xff0c;删除一个缓存 三&#xff0c;172-缓存-SpringCache-原理与不足 一&#xff0c;170-缓存-SpringCache-自定义缓存配置 上一节…

中国对世界各国的进出口面板数据(2000-2022年)

中国作为全球最大的贸易国之一&#xff0c;其对各国的进出口数据不仅量级庞大&#xff0c;而且蕴含着丰富的经济信息与趋势动向&#xff0c;对于研究全球经济互动、国际贸易格局、产业链分布以及中国自身经济的发展策略具有一定价值。例如&#xff0c;近年来的数据表明&#xf…

对接的广告平台越多,APP广告变现的收益越高?

无论是游戏、社交、工具应用类APP还是泛娱乐类APP&#xff0c;流量变现的方式主要有广告、内购、订阅三种方式。其中&#xff0c;广告变现是门槛最低、适用最广的变现方式。 只要APP有流量&#xff0c;就可以进行广告变现&#xff0c;让APP的流量快速转化为商业价值。作为最常…