IO口模拟PWM_呼吸灯实验

这篇具有很好参考价值的文章主要介绍了IO口模拟PWM_呼吸灯实验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、呼吸灯实现原理

呼吸灯简介:由亮到暗逐渐变化,很有节奏感地一起一伏,感觉好像人在呼吸,当手机收到消息,屏幕上的指示灯会渐变,比较显眼,能起到一个通知提醒的作用,其实这就是一个呼吸灯。一般人眼睛对于80Hz以上刷新频率则完全没有闪烁感(因人而异)。频率太小的话看起来就会闪烁,那么我们平时见到的LED灯,当它的频率大于50Hz的时候,人眼就会产生视觉暂留效果,基本就看不到闪烁了,而是一个常亮的LED灯。频率很高时,看不到闪烁,占空比越大,LED越亮(平均电压越大);频率很低时,可看到闪烁,占空比越大,LED越亮。所以,在频率一定下,可以用不同占空比改变LED灯的亮度,使其达到一个呼吸灯的效果。
实验原理分析:采用pwm控制LED灯,可以实现灯光亮度的变化,首先需要设置PWM频率高于50hz,这样LED灯才不会闪烁,形成连续的呼吸效果,实验中我取了200hz,就是周期为5ms。在不同的占空比下,LED灯光亮度不同,利用这个特性,可以连续的**每间隔一定时间段(取值为countTime)**就改变占空比,实验中采用的是占空比以2%的间隔依次增加到98%再减少至2%,也就是由暗变亮再变暗,间隔的时间段也就是countTime值越大,呼吸越慢,反之越急促。

2、IO口模拟PWM

PWM也就是脉冲宽度调制,简单点说就是某个固定周期内高电平所占时间除以这个固定周期时间,PWM周期就是这个固定周期时间,PWM的频率为周期的倒数,是指1秒钟内,信号从高电平到低电平的次数。比如PWM周期为5ms,在这5ms内信号实现一次由高到低,pwm频率为200Hz,也就是实现了200次由高到低的变化。

// PWM周期是5ms,改变ledOffTime时间改变占空比
void breathingLight(u16 ledOffTime)  
{
	static u16 sumTime=5000,ledOnTime=0;
	ledOnTime=sumTime-ledOffTime;
	LED0=0;
	delay_us(ledOnTime);
	LED0=1;
	delay_us(ledOffTime);
	
}

IO口模拟PWM实现代码如上,以代码为例讲解:固定周期时间也就是PWM周期是5ms,这里取ledOffTime为600,得到的PWM波形如下图,采用这种方式,不断给IO口高电平持续一段时间,低电平持续一段时间就可以模拟产生pwm,但采用这种方式很浪费系统资源,因为需要一直赋值高低电平并等待,且波形不稳定,从图中也可以看出每隔一定时间,PWM波会有一处明显的不同,是因为此时系统在执行其它部分,没有在规定时间回到breathingLight函数,导致高电平时间变长。实现PWM的正常方式应该是采用定时器,利用定时器的一些具有PWM功能的引脚去产生PWM,很方便,另外一篇博客有写,此处不再详细讲述。io口模拟pwm,STM32,stm32,单片机,c语言,mcu

3、使用keil软件的逻辑分析仪查看PWM波形

1、打开Debug选项
io口模拟pwm,STM32,stm32,单片机,c语言,mcu
2、打开逻辑分析仪
io口模拟pwm,STM32,stm32,单片机,c语言,mcu
3、选择要输出波形的IO口,并以特定格式输入对应IO口名称,
io口模拟pwm,STM32,stm32,单片机,c语言,mcu
4、设置IO口输出显示类型为Bit和颜色
io口模拟pwm,STM32,stm32,单片机,c语言,mcu
5、然后F5运行并停止滚动鼠标就可以查看波形了。
IO口模拟PWM_呼吸灯实验代码.zip文章来源地址https://www.toymoban.com/news/detail-658543.html

到了这里,关于IO口模拟PWM_呼吸灯实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32F103RCT6开发板M3单片机教程07-TIMER1CH1输出 PWM做LED呼吸灯

    本教程使用是( 光明谷SUN_STM32mini开发板 )   免费开发板   在谷动谷力社区注册用户,打卡,发帖求助都可以获取积分,当然最主要是发原创应用文档奖励更多积分. (可用积分换取,真的不用钱,开发板免费玩):STM32F103RCT6开发板M3单片机核芯小系统板学习板 ... 已经购买用

    2024年02月22日
    浏览(68)
  • STM32自学☞PWM驱动LED呼吸灯

    常用函数简单说明 ①用来配置输出比较模块  TIM_OC1Init()     (初始化)             TIM_OC2Init()                               TIM_OC3Init()                               TIM_OC4Init() ②TIM_OCStructInit();用来给输出比较结构体赋一个默认值 ③用来配置强制输出模式  TIM

    2024年02月19日
    浏览(41)
  • 基于STM32利用PWM完成呼吸灯的实现

    1.高级控制定时器功能实现框图 其中分为6个板块:①时钟源②控制器 ③时基单元 ④输入捕获 ⑤输出比较 ⑥断路功能 2.pwm的定义 pwm是​​​​​​​一种模拟控制方式,根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间

    2024年02月03日
    浏览(44)
  • STM32自学历程——PWM呼吸灯的实现(下)

    成功实现LED灯的呼吸效果,先由暗到亮,再由亮到暗,以此循环往复。 VID20240116160256 因为,PWM部分是挂靠在定时器里面的,所以代码必须要先初始化定时器,当然初始化定时器就可以直接用之前的定时器初始化,这里不再需要中断NVIC模块,所以可以直接去掉。 定时器初始化

    2024年01月23日
    浏览(44)
  • 【STM32+HAL+Proteus】系列学习教程---PWM(呼吸灯)

    1、利用定时器输出PWM实现呼吸灯 2、学会STM32CubeMX软件输出PWM的配置 3、具体目标:利用定时器3的通道2(部分重映射到PB5管脚)输出1KHz的矩形波,实现呼吸灯。 1、什么是PWM?         PWM (Pulse width modulation)脉冲宽度调制。PWM是通过编程控制输出方波的频率和占空比(高

    2024年04月23日
    浏览(55)
  • 嵌入式-stm32-用PWM点亮LED实现呼吸灯

    答:LED需要低电平才能亮,高电平是灯灭。 答:这是用到不同占空比来实现的,控制LED实现呼吸灯,就是通过占空比的高低电平和其持续时间来实现。 ①例如,要定时500ms,则:PSC=7199,ARR=4999,Tclk=72Mhz。 ②假如频率为 2kHz ,则:PSC=71,ARR=499, 频率和周期是描述波形的两个基

    2024年02月03日
    浏览(98)
  • 嵌入式系统开发13——STM32输出PWM实现呼吸灯

    本文主要介绍在STM32F103C8T6上,利用定时器输出PWM波形,进而驱动LED实现呼吸灯。 使用TIM3和TIM4,分别输出一个PWM波形,PWM的占空比随时间变化,去驱动你外接的一个LED以及最小开发板上已焊接的LED(固定接在 PC13 GPIO端口),实现2个 LED呼吸灯的效果。 脉冲宽度调制(PWM) ,是

    2023年04月08日
    浏览(88)
  • 讲解STM32驱动WS281x灯珠的多种实现方式:普通IO、SPI+DMA、以及PWM+DMA驱动方法

    STM32作为一款高性能、功能丰富的单片机,其丰富的外设和强大的性能,使其在嵌入式领域得到了广泛的应用。本篇文章将介绍如何利用STM32驱动WS281x系列的LED灯珠。我们会使用三种不同的驱动方式进行实现:一种是普通IO方式驱动,一种是SPI+DMA方式驱动,最后一种是PWM+DMA方

    2024年02月11日
    浏览(40)
  • STM32实现PWM输出频率1kHz占空比50%的方波和呼吸灯

    板子:野火指南者 芯片:STM32f103VET6 PWM通道:TIM3的通道1和通道3 GPIO:PA6和PB0 本文主要讲需要怎么做,简要讲解原理,提供全部代码,有利于快速上手。 打开STM32f103VET6的芯片数据手册,打开目录Pinouts and pindescriptions——High-density STM32F103xC/D/E pin definitions,如图所示。 这里选

    2024年02月05日
    浏览(52)
  • 10、江科大stm32视频学习笔记——PWM驱动led呼吸灯、驱动舵机、驱动直流机

    目录 一、PWM驱动LED呼吸灯(灯接在PA0) 1、PWM波和GPIO的对应关系参考引脚定义表 2、计数器的计算 3、TIM输出PWM波使用步骤​编辑 4、代码 (1)输出化比较单元 (2) PWM.c (3)main.c 5、重映射更换成PA15亮灯 二、PWM驱动舵机(舵机接在PA1、按键在PB1)  1、电路图 2、参数计算

    2024年02月14日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包