工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->光电电路图->其他光电实用电路图->用单片机I/0口控制电机的运转实验

用单片机I/0口控制电机的运转实验

发布人:dolphin 时间:2016-09-20 收藏

  智能车的车轮是由电机驱动的,电机正转时智能车前进,反转时后退;两个电机配合智能车可以完成前进、后退、左右转弯等动作。下面介绍电机控制电路,以及单片机如何实现对该电路的控制。
  
  下图(a)是简化的控制电机的电桥电路,本电路用单片机的两条口线P3.5和P2.4同时控制,下图(b)是该电路的等效图,4个三极管的作用相当于4个开关,电机连接在电桥的中央,我们来分析电路的控制原理。

  如下图(a)所示,当单片机P3.5输出高电平,同时P2.4输出低电平时,三极管Q2和Q3导通,Q1和Q4截止,下图(b)是这时的等效图。下图(a)中的粗线标出了电流途径,从电机右端流向左端,电机正转:


  
  如下图(a)所示,当单片机P3.5输出低电平,同时P2.4输出高电平时,三极管Q1和Q4导通,Q2和Q3截止,下图(b)是这时的等效图。下图(a)中的粗线标出了电流途径,从电机左端流向右端,电机反转:


  
  当P3.5和P2.4同时为高电平或低电平时,4个三极管都不能导通,这时电机中没有电流,不转动。

  下面的程序使电机正转10秒钟,反转10秒钟:

  #includereg52.h
  
  sbit drive1=P3J;//电桥电路左端的控制变量
  
  drive1定义为P3.5口
  
  sbit drive2=P2^4://电桥电路右端的控制变量drive2定义为P2.4口

  //主程序
  
  void main(void)
  
  {
  
  unsignedchari;
  
  for(;;){
  
  For(i=0;i20;1++)delay();//执行20次,延时10秒
  
  //delay()是延时0.5秒的程序,
  
  drivel=1;drive2=0;//电机正转
  
  for(i=0:i20;i++)delay()://执行20次,延时10秒
  
  drivel=0;drive2=1;//电机反转,}

  可以使用脉宽调制(PWM)的方法来控制电机转动的速率,例如要使电机正转,可以使drive1为高电平(P3.5=1),而drive2输出不同占空比的方波,来控制电机以不同的速率运转。STCl2C54lO单片机有4个I/0口可以用作PWM输出,P3.5和P2.4就是其中两个。



评论

技术专区