PWM实验

该实验通过调整PWM的占空比来实现LED灯的亮度变化,从而达到呼吸灯的效果。文中提到,占空比的变化决定了LED的亮暗程度。在频率为2kHz的情况下,计算得到PSC和ARR的值。实验中使用Timer4的第3通道进行PWM输出,并通过while循环不断调整占空比,当占空比达到一定值时改变方向,形成亮度的渐变效果。
摘要由CSDN通过智能技术生成

PWM实验

需求:使用PWM点亮LED1实现呼吸灯效果。

LED灯为什么可以越来越亮,越来越暗?

答案:这是由不同的占空比决定的。

如何计算周期/频率?

假如频率为 2kHz ,则:PSC=71,ARR=499

首先要知道,LED1连接到哪个定时器的哪一路?
在这里插入图片描述

开始实战!

  1. 设置时钟
  2. 设置定时器
    在这里插入图片描述
    注意
    要把极性设置为Low,因为LED灯是低电平才亮

代码如下

// 定义变量
uint16_t pwmVal=0;  // 调整PWM占空比
uint8_t dir=1;     //  设置改变方向。1:占空比越来越大;0:占空比越来越小

// 使能 Timer4 第3通道 PWM 输出
HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_3);

// while循环实现呼吸灯效果
while (1)
  {
    /* USER CODE END WHILE */
		HAL_Delay(1);
		if(dir){
			pwmVal++;
		}else{
			pwmVal--;
		}
		if(pwmVal > 500){
			dir = 0;
		}
		if(pwmVal == 0){
			dir =1;
		}
		// 修改比较值,修改占空比
		__HAL_TIM_SetCompare(&htim4, TIM_CHANNEL_3, pwmVal);
    /* USER CODE BEGIN 3 */
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值