基于PWM的单片机直流电机速度控制

在这个项目中,我将向您展示如何使用8051单片机产生PWM信号,也使用单片机实现基于PWM的直流电机速度控制。

介绍

在许多应用中,控制直流电机的速度是很重要的,其中精度和保护是必不可少的。在这里我们将使用一种叫做PWM(脉宽调制)的技术来控制直流电机的速度。

我们可以使用机械或电气技术实现DC电机的速度控制,但它们需要大尺寸的硬件来实现,但基于微控制器的系统提供了一种控制直流电机速度的简便方法。

基于PWM的基于单片机的直流电机速度控制

早些时候,我们已经见过如何在没有单片机的情况下利用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的单片机控制直流电机速度的电路图

基于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来知道按钮是否被按下。

基于PWM的直流电动机速度控制

代码

该项目的代码如下所示。

如何操作电路?

  1. 连接12V电池或适配器到开发板。
  2. 接通电源。
  3. 刻录十六进制文件到8051控制器与程序员的帮助。
  4. 按照电路图进行必要的连接。
  5. 现在接通电源,按1号开关。你可以观察到开始旋转,但只有40%的容量。
  6. 如果按下开关2,电机运行略大于速度的一半(60%占空比)。
  7. 按下开关3,电机全速旋转(100%占空比)。
  8. 按下4号开关即可停止电机。

优势

  • 利用这种PWM方法,可以节约电能。

应用程序

  • 用于工业上控制电机转速。
  • 用于购物中心。
  • 我们可以利用这个概念来控制光的强度。

发表评论

您的电子邮件地址将不会被公布。必填字段被标记*