在这个项目中,我将向您展示如何产生PWM信号使用8051单片机并利用单片机实现了基于PWM的直流电动机速度控制。
介绍
在许多应用中,控制直流电机的速度是很重要的,精度和保护是必不可少的。这里我们将使用一种叫做PWM(脉冲宽度调制)的技术来控制直流电机的速度。
我们可以使用机械或电气技术来实现直流电机的速度控制,但它们需要大尺寸的硬件来实现,但基于微控制器的系统提供了一个简单的方法来控制直流电机的速度。
之前,我们已经看到了如何在没有单片机的情况下利用PWM控制直流电机的速度.这里,我们用微控制器做了同样的实验。
为此,我们将使用8051控制器产生PWM波。通过改变PWM波的宽度,可以控制直流电机的转速。在8051单片机中,定时器被用来产生PWM波。
在这篇文章中,我们将看到如何在8051单片机中使用定时器产生PWM信号,以及如何使用该PWM信号控制直流电机的速度。
基于单片机电路原理的PWM直流电机调速
这个项目的核心是8051单片机.如果您使用过8051微控制器的任何变体,您可能会记得8051没有专用的PWM电路来启用PWM模式。因此,为了产生PWM信号,我们利用定时器和开关的I/O引脚上和OFF使用定时器。
在这个项目中,我将利用8051单片机中的Timer0和定时器中断来产生PWM信号。
也阅读相关的帖子8051单片机如何实现步进电机驱动电路?
8051单片机如何产生PWM ?
大多数现代微控制器,如AVR (Arduino,例如),ARM, PIC等都有专门的PWM硬件和引脚,以立即激活PWM模式。然而,8051微控制器没有这个规定。那么,8051单片机如何产生PWM呢?
为此,我们必须在8051单片机中使用定时器和中断。8051的Timer0是在Mode0中配置的。通过仔细地调整高电平和低电平,我们可以保持信号的一个恒定周期。
基于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直流电机连接到L298N电机驱动模块的OUT1和OUT2引脚。电机驱动器的IN1和IN2引脚分别连接到+5V (VCC)和GND。电机驱动器的EN1引脚连接到Port0引脚P0.0。
4个Push button分别连接Port0引脚P0.4、P0.5、P0.6和P0.7。
一般情况下,我们可以在两种配置下对微控制器进行接口切换;一个是上拉结构,另一个是下拉结构。
牵引配置:在上拉配置中,微控制器引脚被拉至LOGIC 1,按钮连接到GND。当按下按钮时,微控制器引脚接收逻辑0
下拉配置:在下拉配置中,微控制器引脚下拉到逻辑0,按钮连接到VCC。当按下按钮时,微控制器引脚接收逻辑1。
在我们的电路中,我们使用上拉配置。因此,我们需要检查逻辑0,以知道按钮是否被按下。
代码
该项目的代码如下所示。
如何操作电路?
- 连接12V电池或适配器到开发板。
- 接通电源。
- 在程序员的帮助下刻录十六进制文件到8051控制器。
- 根据电路图进行必要的连接。
- 现在接通电源并按开关1。你可以观察到启动器的旋转,但只有40%的容量。
- 如果按下开关2,电机以略大于一半的速度运行(60%占空比)。
- 按下开关3将使电机全速旋转(100%占空比)。
- 若要停止电机,请按4号开关。
优势
- 采用这种PWM方法,可以节省电源。
应用程序
- 用于工业上控制电机的速度。
- 用于购物中心。
- 我们可以用这个概念来控制光的强度。