zoukankan      html  css  js  c++  java
  • L298N电机驱动模块详解

    L298N是专用驱动集成电路,属于H桥集成电路,与L293D的差别是起输出电流增大,功率增强。其输出电流为2A,最高电流4A,最高工作电压50V,可以驱动感性负载,如大功率直流电机,步进电机,电磁阀等等,特别是其输入端可以与单片机直接相连,从而很方便地受单片机控制。当驱动直流电机时,可以直接控制步进电机,并可以实现电机的正转和反转,实现此功能只需要改变输入端的逻辑电平。为了避免电机对单片机的干扰,本模块加入光耦,进行光电隔离,从而使系统能够稳定可靠的工作。

    Output A:接DC 电机 1 或步进电机的 A+和 A-;

    Output B:接DC 电机 2 或步进电机的 B+和 B-;

    5V Enable:如果使用输入电源大于12V的电源,请将跳线帽移除。输入电源小于12V时短接可以提供5V电源输出;

    +5V Power:当输入电源小于12V时且5V Enable处于短接状态,可以提供+5V电源输出;(实际位置请参考驱动板上的标注)

    Power Gnd:电源地;

    +12V Power:连接电机电源,最大35V。输入电压大于12V时,为确保安全,请去除 5V Enble 针脚上的跳线帽;(实际位置请参考驱动板上的标注)

    A/B Enble:可用于输入PWM脉宽调制信号对电机进行调速控制。(如果无须调速可将两引脚接5V,使电机工作在最高速状态,既将短接帽短接)实现电机正反转就更容易了,输入信号端IN1接高电平输入端IN2接低电平,电机M1正转。(如果信号端IN1接低电平, IN2接高电平,电机M1反转。)控制另一台电机是同样的方式,输入信号端IN3接高电平,输入端IN4接低电平,电机M2正转。(反之则反转),PWM信号端A控制M1调速,PWM信号端B控制M2调速。可参考下图表:

     

     测试程序如下,USB接口连接电脑通过IDE上传程序后,先拔除USB数据线,再根据上图连接电路即可开始测试。

     测试代码:

        int pinI1=9;//定义I1接口
    
      int pinI2=8;//定义I2接口
    
      int speedpin=10;//定义EA(PWM调速)接口
    
      int pinI3=7;//定义I3接口
    
      int pinI4=6;//定义I4接口
    
      int speedpin1=5;//定义EB(PWM调速)接口
    
      void setup()
    
      {
    
      pinMode(pinI1,OUTPUT);
    
      pinMode(pinI2,OUTPUT);
    
      pinMode(speedpin,OUTPUT);
    
      pinMode(pinI3,OUTPUT);
    
      pinMode(pinI4,OUTPUT);
    
      pinMode(speedpin1,OUTPUT);
    
      }
    
      void loop()
    
      {
    
      //直走
    
      analogWrite(speedpin,100);//输入模拟值进行设定速度
    
      analogWrite(speedpin1,100);
    
      digitalWrite(pinI4,LOW);//使直流电机(右)逆时针转
    
      digitalWrite(pinI3,HIGH);
    
      digitalWrite(pinI1,LOW);//使直流电机(左)顺时针转
    
      digitalWrite(pinI2,HIGH);
    
      delay(2000);
    
      //后退
    
      analogWrite(speedpin,100);//输入模拟值进行设定速度
    
      analogWrite(speedpin1,100);
    
      digitalWrite(pinI4,HIGH);//使直流电机(右)顺时针转
    
      digitalWrite(pinI3,LOW);
    
      digitalWrite(pinI1,HIGH);//使直流电机(左)逆时针转
    
      digitalWrite(pinI2,LOW);
    
      delay(2000);
    
      //左转
    
      analogWrite(speedpin,60);//输入模拟值进行设定速度
    
      analogWrite(speedpin1,60);
    
      digitalWrite(pinI4,LOW);//使直流电机(右)逆时针转
    
      digitalWrite(pinI3,HIGH);
    
      digitalWrite(pinI1,HIGH);//使直流电机(左)逆时针转
    
      digitalWrite(pinI2,LOW);
    
      delay(2000);
    
      //右转
    
      analogWrite(speedpin,60);//输入模拟值进行设定速度
    
      analogWrite(speedpin1,60);
    
      digitalWrite(pinI4,HIGH);//使直流电机(右)顺时针转
    
      digitalWrite(pinI3,LOW);
    
      digitalWrite(pinI1,LOW);//使直流电机(左)顺时针转
    
      digitalWrite(pinI2,HIGH);
    
      delay(2000);
    
      //刹车
    
      digitalWrite(pinI4,HIGH);//使直流电机(右)刹车
    
      digitalWrite(pinI3,HIGH);
    
      digitalWrite(pinI1,HIGH);//使直流电机(左)刹车
    
      digitalWrite(pinI2,HIGH);
    
      delay(2000);
    
      
    

     原文链接:https://blog.csdn.net/m0_46234896/article/details/113010803

  • 相关阅读:
    一百个人眼中的一百种爱情
    苏迪曼杯羽毛球赛
    站点地图
    魔兽争霸微操教学(精华篇)
    (转)为winform程序注册闪屏(等待窗体)
    (转)Blend操作入门: 别站在门外偷看,快进来吧!
    (转)Asp.Net MVC的路由机制
    (转)VS2010在制作Setup项目的时候没有.NET 2.0的先决条件发行包
    (转)打造自己的LINQ Provider(上):Expression Tree揭秘
    (转)C#中的委托,匿名方法和Lambda表达式
  • 原文地址:https://www.cnblogs.com/zhongllmm/p/14333085.html
Copyright © 2011-2022 走看看