1. 基于proteus的51单片机开发实例21-H桥驱动直流电机

1.1. 实验目的
c99e73dbea104181aecffd5c7b7d2b78?from=pc.jpg
图1 H桥驱动直流电机电路

在前面学习发光二极管和数码管显示的实例中,我们曾经提到,单片机的驱动能力是有限的,一般单片机的I/O端口的输出电流只有10mA左右,整个单片机全部的I/O口的驱动能力一般在200mA。所以如果单片机的外设中如果需要大电流驱动的话,需要设计专门的驱动电路。本例中我们就采用单片机控制大功率的器件-直流电机。
电机是电子电路中经常碰到的一种器件,而直流电机是控制方法最简单的一种电机,本例中我们就来学习如何用51单片机控制直流电机的正转、反转和停转。

1.2. 设计思路
本实例使用三个按钮控制直流电机的正转、反转和停转。直流电机的驱动电路使用H桥电路来实现。

1.3. 基础知识
直流电机的驱动
直流电机的驱动非常简单:只需在直流电机的两个控制端加上合适的电压,直流电机就能转动起来。改变电压的方向就能轻松改变直流电机的转动方向。
直流电机驱动电路中使用最广泛的是“H”型全桥驱动电路。这种驱动电路的驱动原理如下图所示。
c68bbdcd51374e33a732499806be7405?from=pc.jpg
图2 H桥基本原理

其工作原理是:4个开关管S1~S4都工作在斩波状态。S1和S2为一组,S3和S4为一组,两组状态互补,一组导通则另一组必须关断。当S1和S2导通时,S3和S4关断,电动机两端加正向电压,电机正转,反之,当S3和S4导通时,S1和S2关断,电动机两端加反向电压,电机反转。
下图是H桥的典型驱动电路。
cb8f2c35a6844477beaf2e0b7f878f73?from=pc.jpg
图3 H桥典型电路


Q1、Q4、Q7、Q8采用功率MOS管。Q7和Q1组成H桥的一个桥臂,Q8和Q4组成H桥的另一个桥臂。每个MOS管旁边都接有一个续流二极管。Q7和Q4导通时,Q1和Q8截止,电机正转,Q1和Q8导通时,Q4和Q7截止,电机反转。

1.4. 电路设计
本实例的电路图如图1所示。单片机的P2.0和P2.1接直流电机的两个控制端。P3.5,P3.6,P3.7分别接三个开关,作为电机正转、反转、停止的控制端。

1.5. 程序设计
本实例的程序代码如下。
#include <AT89x52.h>
  • sbit MotoA = P2^1;    // 直流电机控制引脚
  • sbit MotoB = P2^0;   
  • sbit key_Left = P3^7;//正转、反转、停转开关引脚定义
  • sbit key_Right = P3^6;//正转、反转、停转开关引脚定义
  • sbit key_stop = P3^5;//正转、反转、停转开关引脚定义
  • int main(void)
  • {
  •    MotoA = 0;
  •    MotoB = 0;
  •   while(1)
  •   {
  •                 if(key_Left==0)  
  •                 {         
  •                    MotoA = 1;
  •                    MotoB = 0;
  •                         while((key_Left==0)&&(key_stop!=0));
  •                 }
  •                 if(key_Right==0)  //
  •                 {
  •                    MotoA = 0;
  •                    MotoB = 1;
  •                         while((key_Right==0)&&(key_stop!=0));
  •                 }
  •                 if(key_stop==0)
  •                 {
  •                    MotoA = 0;
  •                    MotoB = 0;
  •                         while((key_Left!=0)&&(key_Right!=0));               
  •                 }               
  •   }
  • }
  • 复制代码
    程序代码很简单,程序中检测三个开关的状态,然后根据开关状态控制电机的两个引脚的电平状态,从而实现电机的转动控制。

    1.6. 实例仿真
    编写程序代码,编译生成HEX文件,将HEX文件装载到proteus电路的单片机中,开始仿真,通过控制三个开关的状态观察电机的运行状态。需要注意的是,当停转开关按下后,电机不会立即停止转动,而是转速慢慢下降,直至停转。

    1.7. 总结
    直流电机的控制方法和驱动电路很多,可以使用分立器件搭建驱动电路,就像本实例中的H桥驱动电路,也可以使用专用的驱动电路芯片


    来源:老马识途单片机 https://www.toutiao.com/a6855862800426729987/