基于TIM定时中断的----输出比较 - 详解

一、输出比较与PWM简介

1、输出比较简介

主要用来输出PWM波形,PWM波形为驱动电机的必要条件;

2、PWM简介

PWM应用场景必须为惯性系统中;

原本LED只有完全亮和完全灭两种情况,但是通过PWM就可以实现LED的控制LED的亮度大小;

占空比决定了PWM等效出来的模拟电压的大小;

占空比越大,那等效的模拟电压就越趋近于高电平;

反之,那等效的模拟电压就越趋近于低电平;一般呈线性;

:就是PWM 是 Pulse Width Modulation 的缩写,中文叫脉冲宽度调制。简单说,它就是一种按固定频率输出高低电平脉冲的技术,核心特点

  1. 脉冲的周期固定(也就是频率不变);
  2. 脉冲的高电平持续时间(脉冲宽度)可以调节

我们常用 占空比来描述 PWM 的关键参数:

占空比 = 一个周期内高电平时间 ÷ 整个周期时间 × 100%

举个例子:

  • 周期是 10ms,高电平持续 5ms → 占空比 50%;
  • 周期是 10ms,高电平持续 2ms → 占空比 20%;
  • 高电平持续 10ms → 占空比 100%(相当于一直输出高电平);
  • 高电平持续 0ms → 占空比 0%(相当于一直输出低电平)。

在单片机(比如 STM32)中,PWM 通常由定时器配合 GPIO 口生成,属于单片机的常用外设功能。

A、PWM 为什么能控制 LED 亮度

核心原理是 人眼的视觉暂留效应 + LED 的导通特性

  1. LED 的导通特性LED 是电流驱动器件,有电流利用就亮,没电流就灭。当 PWM 输出高电平时,LED 回路导通,LED 发光;当 PWM 输出低电平时,LED 回路截止,LED 熄灭。

  2. 视觉暂留效应人眼的视觉暂留时间约为1/24 秒,倘若 PWM 的频率足够高(比如 1kHz 以上),LED 的 “亮 - 灭” 切换速度会远超人类视觉感知的极限,我们看到的就不是闪烁的灯,而是持续发光的灯

  3. 占空比决定亮度亮度本质是单位时间内 LED 发光的 “有效时长”:

    • 占空比 越高→ 一个周期内高电平时间越长 → 单位时间内发光时间越长 → LED 越亮;
    • 占空比 越低→ 一个周期内高电平时间越短 → 单位时间内发光时间越短 → LED 越暗。

比如:

  • 占空比 100% → LED 一直亮 → 最亮;
  • 占空比 10% → LED 只在 10% 的时间发光 → 很暗。

补充:实际电路注意事项

  • 直接用单片机 PWM 口驱动 LED 时,要串联限流电阻,防止电流过大烧坏 LED 或单片机引脚;
  • 如果驱动大功率 LED,应该加三极管或 MOS 管做开关放大。

B、PWM基本结构

C、PWM参数计算

二、输出比较模式

1、输出比较通道

2、输出比较8种模式

三、外部设备

1、舵机

2、直流电机及驱动

四、输出比较的代码部分

1、PWM控制LED呼吸灯

还是和之前一样一样的,进行封装,新建.c和.文件;

A、函数介绍

B、代码编写

这样LED就被点亮了,并且以1KHz的频率闪烁,

2、PWM舵机

代码与上面的结构一样;

A、创建舵机的模块,进行封装

和上面一样,进行.c与.h文档的创建,命名为servo;就是还

一样的;就是固定部分也

这样就封装好了;在放到.h档案中进行声明;

B、主函数中的编写

3、PWM驱动电机

A、进行封装

进行.c与.h文件的创建;笃固定部分一样;

接着放在头文件中进行声明,.h文件中;

B、主函数中的编写

posted @ 2026-01-08 21:29  gccbuaa  阅读(17)  评论(0)    收藏  举报