|
脉宽调制(Pulse Width Modulation,简称PWM)是一种模拟调制技术,其中脉冲的持续时间或宽度随时间而变化。这种技术常用于产生具有特定频率和占空比的连续脉冲信号。简而言之,PWM就是在保持频率不变的同时改变脉冲宽度。
通过PWM信号,您可以轻松控制伺服电机的速度或LED的亮度。由于通用微控制器只能在其输出引脚上提供高电平或低电平,因此除非内置了数模转换器(DAC)或在外部连接DAC,否则它们无法提供变化的模拟电压。在这种情况下,微控制器可以被编程为输出具有变化的占空比的脉冲宽度调制(PWM),然后可以将其转换为变化的模拟电压。
因此,在本篇文章中,我们将一个LED连接到通用STM8S微控制器,该LED由微控制器生成的PWM信号进行控制,并且我们将使用STVD和Cosmic C编译器对微控制器进行编程。在此之前,让我们了解PWM信号的一些基础知识。
PWM信号的基础知识 您可能已经听说过,PWM代表脉宽调制。这是一种模拟调制技术,可用于多种不同的应用程序和项目。 PWM信号如下所示。
上图是打开时间和关闭时间一样的通用方波。现在,假设方波的总周期为1秒,这意味着方波的开启时间和方波的关闭时间都是500ms。因此,如果我们连接一个LED并用此方波为其供电,则LED将在整个周期的一半时间内处于开启状态,而在一半的周期内处于关闭状态。看起来LED正在以一半的亮度发光。
在上图中,我们减小了占空比,如果考虑相同的1S周期,则开通时间为250ms,关断时间为750ms。现在,如果我们连接相同的LED,将观察到LED将变得更加暗淡,因为占空比降低了。
STM8S PWM发生器电路的硬件设置和要求
当我们使用PWM控制LED时,需要将LED与STM8S开发板连接。由于STM8S开发板上有一个LED,我将用它进行演示。我们还需要STM8S开发板以及ST-LINK编程器。除此之外,我们需要5V电源为板供电,由于开发板带有板载微型USB电缆,我们将使用它为板供电。
基于STM8S单片机的LED调光器的电路图 为了对电路进行编程,我们将ST-Link V2编程器连接至3.3V,SWIM和STM8S开发板的接地引脚。关于STM8微控制器,最有趣的是它只需要一个引脚即SWIM引脚即可对微控制器进行编程。
如您在上面的示意图中所见,开发板上连接了一个测试LED,并将其连接到开发板最左侧的端口1.4。
STM8S微控制器上的PWM引脚 STM8S有20个引脚,其中8个引脚可以配置为PWM。下图显示了红色方框中标记的PWM引脚。这些引脚也是GPIO引脚,可用于其他功能。
如上图所示,标记的引脚可以产生PWM信号。因此,我们将使用开发板上的其中之一来产生PWM信号。但是,启用PWM将禁用其他功能,因此我们需要注意选择将哪个引脚配置为PWM。本文我们将使用PIN D4生成PWM信号。 |