Arduino实践详细说明(三)L298N驱动直流电机

Arduino实践详细说明(三)L298N驱动直流电机

本实验基于arduino uno 利用l298n驱动板来控制直流电机的正反转和速度

L298N说明

这是其中一个板,貌似还有蓝色绿色什么的,但是使用方法差不多

接口说明

  1. 12V供电: 这个是外部电源为驱动板供电的接口,一般驱动电压实际可以接受的输入范围是7~12V,此时可以使能板载的5V逻辑供电。当使用大于12V的驱动电压时,为了避免稳压芯片损坏,首先要拔掉板载5V输出使能的跳线帽,然后在5V输出端口外部接入5V电压对L298N内部逻辑供电。
  2. 5V供电 :(引出5V电压接到Arduino板,给Arduino板供电(驱动电压7~12V)连接到UNO板的5V)同时Arduino板也要引出一条GND线,连接到L298N的GND与外部电源共地。
  3. ENA ENB通道A使能,通道B使能:当你不用PWM时不需要拔掉跳线帽,当你需要PWM时,将需要拔掉跳线帽,接到Arduino上的模拟输入输出接口,我的只需要外侧接上,下面回介绍。 (就是用来调速的)
  4. IN1 IN2 IN3 IN4逻辑输出口:其中IN1 IN2 控制一个电机的转动,IN3 IN4 控制另一个电机的转动,只要一个置高 一个置低,就可以让电机转动起来。(控制转向),
  5. 板载5V::用于板载5V供电,如果把掉跳线帽,需要在5V输出接口上,通过外部电源输入5V电压为L298N驱动版供电。 通常是为了避免稳压芯片损坏,当输入驱动电压大于12V时,拔掉跳线帽,需要使用其它电源输入5V电压为驱动板供电。

正反转及调速说明

若in1与in2还有ENA控制A电机

IN1 IN2 IN3 IN4 ENA ENB A电机 B电机 HIGH LOW n m 正转速度为n LOW HIGH n m 反转速度为n LOW LOW n m 不转 HIGH HIGH n m 不转 LOW HIGH 0 m 不转

对于B电机也同理

接线说明

接线方法很多,下面介绍种

值得注意的是有时候Arduino接5V供电是不足以提供电压的,则按方法二

方法一

如图

  1. 9V~12v电池正极接L298N的12v供电,负极接L298N的GND
  2. L298N的5v供电接arduino的5v,arduino的GND也连接L298N的GND
  3. 然后IN1~IN4接arduino的2 ~13都可以,根据需求而定,代码中定义即可
  4. L298N的输出A,输出B分别连接一个直流电机
  5. ENA,ENB分别连接arduino的模拟输出,以控制速度

方法二

如图

  1. L298N的GND和板载5V使能(拔掉跳线帽)分别连接arduino的GND,5V
  2. 12V电源连接L298N的12v供电与GND
  3. 将数字3、4脚接L298模块的IN1和IN2(逻辑输入)脚,
  4. 10接ENA脚(通道A使能)
  5. 电机接OUT1和OUT2输出口,

源代码

只提供了正反转的往复功能,其他功能自由发挥

#define IN1 3  //定义IN1为3口
#define IN2 4  //定义IN2为4口
#define  ENA  10 //定义ENA为10口
void setup()
{
          
     
  pinMode(IN1,OUTPUT);
  pinMode(IN2,OUTPUT);
  pinMode(ENA,OUTPUT);
}
void loop()
{
          
      //正转速度为满速的 200/255
   digitalWrite(IN1,HIGH);  //控制电机正转
   digitalWrite(IN2,LOW);
   analogWrite(ENA,200);   //控制电机转速,迳我自己测试超过150电机才开始转

   delay(5000);
   digitalWrite(IN1,LOW);   //电机反转
   digitalWrite(IN2,HIGH);
   analogWrite(ENA,200);
    delay(5000);
    digitalWrite(IN1,LOW); //控制电机停下
    digitalWrite(IN2,LOW); 
    analogWrite(ENA,255); 
   
}

最后

经验分享 程序员 微信小程序 职场和发展