电控--PWM

理论知识

脉宽调制(Pulse Width Modulation,PWM)

  • 对脉冲信号的宽度改变并输出出来
  • 高频的PWM波可以让设备进行频繁开关、通断
    在这里插入图片描述

PWM波形的参数

  • 周期(T):完整脉冲循环时间(单位:秒)
  • 频率(f):f = 1/T(常见范围:100Hz-1MHz)
  • 占空比(Duty Cycle):高电平时间/周期 × 100%
  • 振幅:高电平与低电平之间的电压差

PWM波形在TIM定时器中的形成方式

  • 现将输入频率根据PSC进行分频为定时器主频
  • 以向上计数为例,CNT从0增加到ARR
  • 引入比较值(Capture Compare Register,CCR),需要再代码中设定
    • CNT<CCR,输出一种电平
    • CNT>=CCR,输出另一种电平

在这里插入图片描述

定时器形成PWM波的模块

  • 预分频器(PSC):对输入时钟进行分频
    • 分频系数 = PSC + 1
    • 例:72MHz时钟,PSC=71 → 输出频率1MHz
  • 计数器(CNT):核心计时单元
    • 工作模式:向上计数/向下计数/中央对齐
    • 计数范围:0 ~ ARR值
  • 自动重装载寄存器(ARR):决定PWM周期
    • 周期 = (ARR + 1) * 时钟周期
  • 捕获比较寄存器(CCR):决定PWM占空比
    • 有效电平时间 = (CCR + 1) * 时钟周期

在这里插入图片描述

呼吸灯

  • 一般人的眼睛对观测物体的刷新频率是60Hz(16.67ms)左右
    • 低于这个频率的灯光会观察到闪烁或产生晕眩感。
    • 高于这个频率的灯光不会观察到闪烁,而产生视觉暂留效应
    • 如果用高频的PWM波(几us)输出到LED灯,占空比则直接作用于灯的亮度。 eg:0%占空比灯灭、50%占空比比灯亮一点、100%占空比灯完全亮
    • 如果PWM波占空比也在变化,即CRR值变化,则占空比也会跟着变化,当变化的时间间隔足够小(几ms到几十ms),便产生了视觉暂留效应,我们看到的灯就是连续亮暗变化的

硬件电路连接

  • 如果单片机上自带连接LED灯且可输出PWM波形通道的引脚,直接用该LED灯对应的TIM定时器Channel通道即可
  • 没有自带的需要外部连接。f103c8t6的TIM3对应的Channel1对应引脚为PA6
  • 一般情况下单片机输出最高电压是3.3V,LED正常发光压降1.5V以上,电流约为5mA,与具体型号有关
    • 二极管若正常发光,电阻两端电压约为1.8V
    • 电阻在360Ω左右,一般情况下在180~1800都可行
      在这里插入图片描述

工程配置

CubeMX中

  • 选择MCU
  • 配置RCC的HSE为外部晶振
  • 配置时钟树HSE输出主频
  • Debug选项选择serial wire
  • 工程管理中修改工程与路径,注意不要有中文等字符
  • 代码生成到单独头文件

TIM的PWM配置

  • 根据硬件电路连接,找到PA6引脚,使能TIM3-CH1功能
  • 配置定时器TIM3
  • 将TIM3设置为内部时钟模式,配置Channel1
    在这里插入图片描述
    在这里插入图片描述

Counter Settings:

  • Prescaler(PSC -16 bits value):0
  • Counter Period(ARR):499
  • Counter Mode:向上计数0到499
  • Internal Clock Division(CKD,内部时钟分频):No Division
  • auto-reload preload(自动装载刷新):随意,如果使能 则新的ARR配置后会延迟到当次溢出中断发生后再改为新值
  • PWM Generation Channel 1
    • Mode:PWM模式mode1表示CNT小于CCR输出有效电平。mode2表示CNT小于CCR输出无效电平
    • Pulse(16 bits value):脉冲数为0表示一直输出脉冲;如果脉冲数非0,则输出指定数量脉冲
    • Output compare preload: 自动比较刷新随意,如果使能 则新的CRR配置后会延迟到当次溢出中断发生后再改为新值
    • Fast Mode:快速模式无需使能,使能会让波形驱动能力强,相应快速,但耗电高
    • CH Polarity: 通道极性高电平表示高电平为输出有效电平,低电平为无效电平
      #代码
uint16_t pwmVal=0;       //声明比较寄存器变量CRR

HAL_TIM_PWMS_Start(&htim3,TIM_CHANNEL_1);       //使能定时器PWM输出通道

//主程序函数
  while (1)
  {
	  while(pwmVal<500)
	  {
		  pwmVal++;
		  __HAL_TIM_SetCompare(&htim3,TIM_CHANNEL_1,pwmVal);
		  HAL_Delay(1);
	  }
	  while(pwmVal>0)
	  {
		  pwmVal--;
		  __HAL_TIM_SetCompare(&htim3,TIM_CHANNEL_1,pwmVal);
		  HAL_Delay(1);
	  }
	  HAL_Delay(200);
	  
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }

做选择是需要练习的,选择是一种培养出来的能力。做选择的次数越多,你就越会选择。​​​ —罗伯特·弗里茨

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CNN卷积神经网络多变量多步预测,光伏功率预测(Matlab完整源码和数据)

代码地址&#xff1a;CNN卷积神经网络多变量多步预测&#xff0c;光伏功率预测&#xff08;Matlab完整源码和数据) 标题&#xff1a;CNN卷积神经网络多变量多步预测&#xff0c;光伏功率预测 一、引言 1.1 研究背景及意义 随着全球能源危机的加剧和环保意识的提升&#xff…

在clion中对linux的工程进行远程调试

本地主机&#xff1a;windows 远程主机:ubuntu 0. 建立一个用于同步远程工程代码的文件夹 在windows上新建了一个iot_frame_0210文件夹&#xff0c;用于远程调试&#xff0c;远程的代码会被下载到这个本地目录。 调试的时候&#xff0c;如果修改文件&#xff0c;则不会直接…

使用sunshine和moonlight串流时的音频输出问题

设备&#xff1a;电脑和平板串流&#xff0c;把平板当副屏使用 1.如果启用安装steam音频驱动程序&#xff0c;则平板有声&#xff0c;电脑无声&#xff0c;在moonlight端可以设置平板和电脑同时发声&#xff0c;但是有点卡 2.只想电脑发声&#xff0c;平板无声 禁用安装steam…

postgresql 游标(cursor)的使用

概述 PostgreSQL游标可以封装查询并对其中每一行记录进行单独处理。当我们想对大量结果集进行分批处理时可以使用游标&#xff0c;因为一次性处理可能造成内存溢出。 另外我们可以定义函数返回游标类型变量&#xff0c;这是函数返回大数据集的有效方式&#xff0c;函数调用者…

深入探索人工智能的未来:DeepSeek R1与蓝耘智算平台的完美结合

在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;和机器学习&#xff08;ML&#xff09;正以前所未有的速度改变着我们的生活和工作方式。从智能语音助手到自动驾驶汽车&#xff0c;从精准医疗到金融风险预测&#xff0c;AI的应用无处不在。深度学习作为AI的核…

树和二叉树_9

树和二叉树_9 一、leetcode-107二、题解1.引库2.代码 一、leetcode-107 二叉树的层序遍历Ⅱ 给你二叉树的根节点 root &#xff0c;返回其节点值 自底向上的层序遍历 。 &#xff08;即按从叶子节点所在层到根节点所在的层&#xff0c;逐层从左向右遍历&#xff09;。 样例输…

【安当产品应用案例100集】037-强化OpenVPN安全防线的卓越之选——安当ASP身份认证系统

在当前数字化时代&#xff0c;网络安全已成为企业发展的重要组成部分。对于使用OpenVPN的企业而言&#xff0c;确保远程访问的安全性尤为重要。安当ASP身份认证系统凭借其强大的功能和便捷的集成方式&#xff0c;为OpenVPN的二次登录认证提供了理想的解决方案&#xff0c;特别是…

Blazor-<select>

今天我们来说说<select>标签的用法&#xff0c;我们还是从一个示例代码开始 page "/demoPage" rendermode InteractiveAuto inject ILogger<InjectPage> logger; <h3>demoPage</h3> <select multiple>foreach (var item in list){<…

基于微信小程序的博物馆预约系统的设计与实现

hello hello~ &#xff0c;这里是 code袁~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的在校大学生…

鸿蒙NEXT开发-发布三方库

开发一个三方库 如需发布一个 har 包&#xff0c;必须包含 oh-package.json5、README.md&#xff0c;CHANGELOG.md 和 LICENSE 四个文件&#xff0c;若文件缺失&#xff0c;会导致上架至中心仓失败。 HAR&#xff08;Harmony Archive&#xff09;是静态共享包&#xff0c;可以…

【深度学习】Java DL4J 2024年度技术总结

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

【翻译+论文阅读】DeepSeek-R1评测:粉碎GPT-4和Claude 3.5的开源AI革命

目录 一、DeepSeek-R1 势不可挡二、DeepSeek-R1 卓越之处三、DeepSeek-R1 创新设计四、DeepSeek-R1 进化之路1. 强化学习RL代替监督微调学习SFL2. Aha Moment “啊哈”时刻3. 蒸馏版本仅采用SFT4. 未来研究计划 部分内容有拓展&#xff0c;部分内容有删除&#xff0c;与原文会有…

关于 IoT DC3 中设备(Device)的理解

在物联网系统中&#xff0c;设备&#xff08;Device&#xff09;是一个非常宽泛的概念&#xff0c;它可以指代任何能够接入系统并进行数据交互的实体。包括但不限于手机、电脑、服务器、网关、硬件设备甚至是某些软件程序等所有能接入到该平台的媒介。 内容 定义 目的 示例 …

Ubuntu22.04 配置deepseek知识库

文章目录 安装 docker配置 dify配置 ollama创建大模型 安装 docker 更新系统&#xff1a;sudo apt update sudo apt upgrade -y安装必要的依赖&#xff1a;sudo apt install apt-transport-https ca-certificates curl software-properties-common -y添加 Docker 的官方 GPG 密…

【AIGC】冷启动数据与多阶段训练在 DeepSeek 中的作用

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;冷启动数据的作用冷启动数据设计 &#x1f4af;多阶段训练的作用阶段 1&#xff1a;冷启动微调阶段 2&#xff1a;推理导向强化学习&#xff08;RL&#xff0…

LSTM的介绍

网上一些描述LSTM文章看的云里雾里&#xff0c;只是介绍LSTM 的结构&#xff0c;并没有说明原理。我这里用通俗易懂的话来描述一下。 我们先来复习一些RNN的核心公式&#xff1a; h t t a n h ( W h h t − 1 W x x t b h ) h_t tanh(W_h h_{t-1} W_x x_t b_h) ht​tan…

推荐一款 免费的SSL,自动续期

支持自动续期 、泛域名 、可视化所有证书时效性 、可配置CDN 的一款工具。免费5个泛域名和1个自动更新。 链接 支持&#xff1a;nginx、通配符证书、七牛云、腾讯云、阿里云、CDN、OSS、LB&#xff08;负载均衡&#xff09; 执行自动部署脚本 提示系统过缺少crontab 安装cro…

RTD2775QT/RTD2795QT瑞昱显示器芯片方案

RTD2775QT与RTD2795QT&#xff1a;高性能4K显示驱动芯片 RTD2775QT与RTD2795QT是瑞昱半导体公司推出的两款高性能显示驱动芯片&#xff0c;专为满足现代显示设备对高清、高分辨率的需求而设计。这两款芯片不仅支持4K分辨率&#xff0c;还具备丰富的功能和卓越的性能&#xff0…

Windows逆向工程入门之汇编环境搭建

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 Visual Studio逆向工程配置 基础环境搭建 Visual Studio 官方下载地址安装配置选项(后期可随时通过VS调整) 使用C的桌面开发 拓展可选选项 MASM汇编框架 配置MASM汇编项目 创建新项目 选择空…

活动预告 |【Part1】Microsoft Azure 在线技术公开课:AI 基础知识

课程介绍 参加“Azure 在线技术公开课&#xff1a;AI 基础知识”活动&#xff0c;了解 AI 核心概念。参加我们举办的本次免费培训活动&#xff0c;了解组织如何使用 AI 技术克服实际挑战&#xff0c;以及如何借助 Azure AI 服务构建智能应用程序。本次培训适用于任何对 AI 解决…