在这个项目中,我将向您展示如何使用8051单片机产生PWM信号,也使用单片机实现基于PWM的直流电机速度控制。
介绍
在许多应用中,控制直流电机的速度是很重要的,其中精度和保护是必不可少的。在这里我们将使用一种叫做PWM(脉宽调制)的技术来控制直流电机的速度。
我们可以使用机械或电气技术实现DC电机的速度控制,但它们需要大尺寸的硬件来实现,但基于微控制器的系统提供了一种控制直流电机速度的简便方法。
早些时候,我们已经见过如何在没有单片机的情况下利用PWM控制直流电机的转速。这里,我们用微控制器做了同样的实验。
为此目的,我们将使用8051控制器生产PWM波。通过改变该PWM波的宽度,我们可以控制DC电机的速度。在8051微控制器中,定时器用于生成PWM波。
在这篇文章中,我们将看到如何产生一个PWM信号使用8051单片机定时器,也如何控制直流电机的速度使用PWM信号。
基于PWM的直流电机速度控制使用微控制器电路原理
这个项目的核心是8051单片机。如果您使用过8051微控制器的任何变体,您可能会记得8051没有专用的PWM电路来启用PWM模式。因此,为了产生PWM信号,我们使用定时器和开关I/O引脚ON和OFF使用定时器。
在这个项目中,我将利用8051单片机中的Timer0以及定时器中断来产生PWM信号。
请阅读相关文章8051单片机是如何实现步进电机驱动电路的?
8051单片机如何产生PWM ?
大多数现代微控制器,如AVR (Arduino,例如),ARM, PIC等,都有一个专用的PWM硬件和引脚,以立即激活PWM模式。然而,8051微控制器没有此规定。那么,如何在8051单片机中产生PWM呢?
为此,我们必须在8051单片机中使用定时器和中断。在Mode0中配置了8051的Timer0。通过仔细调整高电平和低电平,我们可以保持一个恒定的信号周期。
基于PWM的单片机控制直流电机速度的电路图
电路元件
- 8051单片机
- 11.0592 MHz水晶
- 电容- 33pF x 2, 10µF
- 电阻- 1KΩ x 4, 10KΩ x 2
- 12 v直流电机
- L298N马达驱动器
- 按钮x 5
- 1kΩx 8上拉电阻包
- 串行电缆
- 12V电池或适配器
- 连接电线
基于PWM的用单片机控制直流电动机速度的电路设计
电路由一个8051单片机(及其配套的振荡器和复位电路)、L298N电机驱动模块、一个直流电机和几个按钮组成。
12V直流电动机在其OUT1和OUT2引脚处连接到L298N电机驱动器模块。电机驱动器的In1和In2引脚连接到+ 5V(VCC)和GND。电机驱动器的EN1引脚连接到PORT0引脚P0.0。
四个Push button分别连接Port0引脚P0.4、P0.5、P0.6、P0.7。
一般来说,我们可以在两种配置中接口开关到微控制器;一个是上拉式另一个是下拉式。
牵引配置:在上拉配置中,微控制器引脚被拉高到逻辑1,按钮连接到GND。按下按钮时,微控制器引脚接收逻辑0
下拉配置:在下拉配置中,微控制器引脚向下拉至LOGIC 0,按钮连接到VCC。当按下按钮时,单片机引脚接收到LOGIC 1。
在我们的电路中,我们使用拉起配置。所以,我们需要检查逻辑0来知道按钮是否被按下。
代码
该项目的代码如下所示。
如何操作电路?
- 连接12V电池或适配器到开发板。
- 接通电源。
- 刻录十六进制文件到8051控制器与程序员的帮助。
- 按照电路图进行必要的连接。
- 现在接通电源,按1号开关。你可以观察到开始旋转,但只有40%的容量。
- 如果按下开关2,电机运行略大于速度的一半(60%占空比)。
- 按下开关3,电机全速旋转(100%占空比)。
- 按下4号开关即可停止电机。
优势
- 利用这种PWM方法,可以节约电能。
应用程序
- 用于工业上控制电机转速。
- 用于购物中心。
- 我们可以利用这个概念来控制光的强度。