PWM呼吸灯程序(用定时器实现)_第1页
PWM呼吸灯程序(用定时器实现)_第2页
PWM呼吸灯程序(用定时器实现)_第3页
PWM呼吸灯程序(用定时器实现)_第4页
PWM呼吸灯程序(用定时器实现)_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

“1+X”传感网应用开发STM32基础开发北京新大陆时代教育科技有限公司任务3:按键控制呼吸灯应用开发主讲人:内蒙古商贸职业学院秦涛职称:高级工程师副教授联系电话:139471804860任务要求本任务要求设计一个可通过按键进行控制的呼吸灯系统,具体要求如下:使用外部中断实现按键功能;LED灯的显示效果为“逐渐变亮”然后“逐渐变暗”;系统刚上电时,LED灯为关闭状态。第奇数次按下按键,LED灯显示呼吸灯效果;第偶数次按下按键,LED灯关闭,并以此循环往复。知识链接如何选择呼吸灯的定时器0304开发流程演示02PWM01设计思路在传统的模拟控制灯亮度调整中,可以采用一个可变电阻。调整电阻值变大或变小;流经这个电阻的电流也随之增加或减少,从而改变了LED的电流值,使灯泡的亮度相应变大或变小。01设计思路想一想,在中学物理课程中,调整灯泡的亮度,咱们怎么实现?尽管模拟控制看起来可能直观而简单,但它并不总是非常经济或可行的。(不适用我们STM32开发) 1.模拟电路容易随时间漂移,因而难以调节。能够解决这个问题的精密模拟电路可能非常庞大、笨重(如老式的家庭立体声设备)和昂贵。 2.模拟电路还有可能严重发热,其功耗相对于工作元件两端电压与电流的乘积成正比。 3.模拟电路还可能对噪声很敏感,任何扰动或噪声都肯定会改变电流值的大小。 在STM32的开发中,我们怎么办?作答正常使用主观题需2.0以上版本雨课堂主观题10分LED的发光强度基本上正比于通过LED器件的电流,这说明脉冲电流的平均电流与直流电流相同的条件下,LED的发光亮度一样。数字电路调光是基于人眼对亮度闪烁不够敏感的特性,使负载LED时亮时暗,如果亮暗的频率超过100Hz,人眼看到的就是平均亮度,而不是LED的闪烁(逐渐)。

天下武功,无坚不破,唯快不破!01设计思路调整亮的时间比例实现灯亮度的逐步控制

PWM是PulseWidthModulation的缩写,中文意思就是脉冲宽度调制,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,其控制简单、灵活和动态响应好等优点而成为电力电子技术最广泛应用的控制方式,其应用领域包括测量,通信,功率控制与变换,电动机控制、伺服控制、调光、开关电源,甚至某些音频放大器,因此学习PWM具有十分重要的现实意义。02PWM这里面的脉冲宽度即在一个周期内输出有效电平(亮)的时间,也叫占空比。联想同学们拔凉拔凉的期末考试,上学期一共有10门课,小明就过了3门(有效电平),所以,上学期小明的占空比就是:有效/总数=30%。(传说中的凉凉)用PWM技术实现模拟信号:若调制信号的频率远远大于信号接受者的分辨率,则接收者并不能感知数字信号的0和1,它获得的是信号的平均效果,平均值与占空比成有关(正比关系)。

PWM采用调整脉冲占空比的方式达到调整电压与电流的效果。如:在1ms内,高电平占0.3ms,低电平占0.7ms。则LED灯通电0.3ms,断电0.7ms,这样的脉冲占空比为30%。原理视觉看上去是什么感觉?1ms内,这个灯的亮度是30%。PWM工作模式PWM输出比较模式总共有8种常用的是以下两种:PWM信号的生成样式与计数器寄存器(TIMx_CNT)、自动重载寄存器(TIMx_ARR)以及捕获/比较寄存器(TIMx_CCRy)有关。02PWM1模式的信号联想“第25回偷骨殖何九送丧,供人头武二设祭”。CCR就是武大,CNT是武二,ARR是西门。武二比武大个头低的时候是哥哥照顾弟弟(输出有效),武二慢慢长大了从和武大一边高开始,弟弟照顾哥哥(输出无效),后来武二长得更大了和西门一般高就干掉了西门(从新开始计数)。另要是武大本来就比西门高,金莲也就不用手抖了,也就无此回合了。(不能产生脉冲)02PWM2模式的信号PWM信号的生成样式与计数器寄存器(TIMx_CNT)、自动重载寄存器(TIMx_ARR)以及捕获/比较寄存器(TIMx_CCRy)有关。PWM占空比调节图PWM输出频率是不变的(每学期就是那么几门课),改变的是CCR寄存器内的值(通过的课程占总课程门数的比值),此值的改变将导致PWM输出信号占空比的改变(回家过年还是在学校自习)。脉冲调宽信号的形成电路有3种:1)可用电压-脉宽变换器产生,即硬件产生脉宽调制信号;2)由软件定时产生,由定时器定时,定时时间受软件控制,并从脉宽信号的口输出脉宽可调信号;3)由单片机控制外接定时/计数器硬件电路产生脉宽调制信号。

STM32F103VE型号MCU共有8个定时器,编号为TIM1~TIM8,其中包括2个高级控制定时器、4个通用定时器和2个基本定时器。通用和高级定时器都有一个16位的自动加载递加/递减计数器、一个16位的预分频器和4个独立的通道,每个通道都可用于输入捕获、输出比较、PWM和单脉冲模式输出。定时器类型定时器编号计数器位数计数器类型捕获/比较通道数挂载总线/接口时钟定时器时钟高级控制定时器TIM1、TIM816位递增、递减、递增/递减4APB2/72MHz72MHz通用定时器TIM2、TIM3TIM4、TIM516位递增、递减、递增/递减4APB1/36MHz72MHz基本定时器TIM6、TIM716位递增无APB1/36MHz72MHz03STMF103VE中的通用定时器01通用/高级定时器的3种模式用于测量波形的频率和宽度脉宽调制器,产生固定频率但占空比可调的脉冲波形比较两组输入电压的大小产生可调频率且占空比可调的脉冲波形01捕获器:测带宽测频率捕获器用来捕获输入接口的电平变化(上升沿或下降沿)可测量脉冲的宽度,或者测量脉冲频率。当接口产生上升沿或下降沿时,将当前定时器值保存。01输出比较器输出比较器可输出脉冲,可随时调占空比和频率。输出比较器主要用于步进电机、伺服电机的控制。(PWM只能调占空比,也是可以通过程序调频率,但不方便随时调)Up:向上计数(累加)Down:向下计数(递减)CenterAligned1:中央对齐模式1计数器交替地向上和向下计数。输出比较中断标志位,只在计数器向下计数时置位。CenterAligned2:中央对齐模式2计数器交替地向上和向下计数。输出比较中断标志位,只在计数器向上计数时置位。CenterAligned3:中央对齐模式3计数器交替地向上和向下计数。输出比较中断标志位,在计数器向下和向上计数时均置位。01定时器计数模式04如何选择呼吸灯的定时器02CubeMX中定时器设置输出PWM详见tim.c预分频:刘易斯100M跑太快了,改成110M跨栏刘翔就赢了。自动装载ARR:西门大官人设置多高呢?为什么不能是72?100?(凡事不可太尽,凡事太尽则缘分必定早尽。做人留一线,日后好相见。)请自行测试。__HAL_TIM_SET_COMPARE(&htim4,TIM_CHANNEL_3,pwm_value)定时器4通道三占空比值(灯的亮度值)核心代码-灯亮度无符号整型if(pwm_value==0){ pwm_mode=count_up;}elseif(pwm_value==50){ pwm_mode=count_down;}if(pwm_mode==count_up){ pwm_value++;} if(pwm_mode==count_down){pwm_value--;} 核心代码-呼吸效应吸气呼气变亮变暗变化范围是?为什么不是50-100?作业:请将程序进行调整,让PWM工作在PWM2模式,实现呼吸灯效果。提交办法:1.请将工程文件压缩,重命名为:班级+学号+姓名。2.同时提交代码文字说明及试验结果现象截图。

3.发送到530005375@评分办法:1.代码完整可行,工程能正常运行得90分。2.说明清楚明白,注释清晰,加10分。3.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论