PWM(脉冲宽度调制)技术通过调控LED的导通时间,即信号周期中的占空比,实现了LED亮度的精细调节,从而巧妙地创造出呼吸灯效果。该技术融合了LED对电流变化的敏感响应特性与人眼的视觉暂留效应,是电子工程领域中的一项经典且极具实用价值的技术。作为深入学习开发板PWM功能与定时器应用的理想切入点,PWM技术通过精确控制占空比,使得LED亮度能够连续、平滑地变化,模拟出如呼吸般自然的亮度循环。实现这一效果的关键在于定时器的精准定时功能,它负责精确控制PWM信号的周期与占空比。通过设定定时器的计数值与重装载值,可以精确确定PWM信号的周期长度,并通过调整周期内输出电平的时间来改变占空比,进而实现对LED亮度的精确控制。
硬件方面用到就是GPIO章节的LED(红灯),我们这次通过定时器的基本定时功能和高级应用PWM实现红灯的呼吸灯效果。
HAL_TIM_Base_Start_IT(&htim16);
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_4);
__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_4,0);
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if (htim->Instance == TIM16) {
HAL_IncTick();
if(LED_ChangeFlag == 1)
{
Tim_cnt++;
if(Tim_cnt <= 100){
__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_4,Tim_cnt*1);
}
else if(Tim_cnt > 100 && Tim_cnt <= 200){
__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_4,(200-Tim_cnt)*1);
}
else if(Tim_cnt>=200)
Tim_cnt = 0;
}
}
}
作者: 无言的朝圣, 来源:面包板社区
链接: https://mbb.eet-china.com/blog/uid-me-4014618.html
版权声明:本文为博主原创,未经本人允许,禁止转载!
文章评论(0条评论)
登录后参与讨论