Arduino UNO用L9110 电机驱动模块驱动两个直流电机

本文介绍了L9110电机驱动模块的工作原理,该模块适用于驱动直流电机或步进电机。通过H桥电路控制电机旋转方向,使用PWM调整电机速度。在使用前需准备相应的硬件如Arduino开发板和电机,并通过特定的Arduino代码进行控制,实现电机的正反转和调速功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介

L9110电机驱动模块采用推挽式功率放大,设有固定安装孔,适合组装,工作电压为2.5-12V,最大工作电流为0.8A,可以同时驱动2个直流电机或者1个4线2相式步进电机。

二、工作原理

我们控制有刷直流电机主要是控制输出轴的旋转方向和旋转速度,通过H桥电路控制输出轴的旋转方向。关闭左上角和右下角的开关可以电机顺时针旋转,关闭右上角和左下角的开关可以使电机逆时针旋转,从而达到控制电机输出轴的旋转方向(工作原理图如下图所示)。输出轴的旋转方向可以通过PWM来控制。
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

原理图

三、使用前准备

在这里插入图片描述

点击图片购买

两路电机驱动 H桥 L9110 电机驱动模块 步进电机

在这里插入图片描述

点击图片购买

130直流电机

在这里插入图片描述

点击图片购买

原装正版Arduino uno r3开发板

在这里插入图片描述

点击图片购买

USB2.0打印机数据线高速方口连接转接线 A公对B公

在这里插入图片描述

点击图片购买

杜邦线
两路电机驱动 H桥 L9110 电机驱动模块 步进电机1个
原装正版Arduino uno r3开发板1个
USB2.0打印机数据线高速方口连接转接线 A公对B公1条
130直流电机2个
杜邦线若干

四、测试方法

用USB2.0打印机数据线高速方口连接转接线与Arduino uno r3开发板连接在一起。Arduino uno r3开发板的3,5,6和9引脚分别接L9110 电机驱动模块IA1,IB1,IA2和IB2连接在一起,再和130电机连接(注意L9110电机驱动模块使用外部供电),如下图所示
在这里插入图片描述在这里插入图片描述
代码如下:

/* 
 * DC电机     运行状态    IN1    IN2    IN3     IN4
 * 电机A     正转(调速) 1/PWM   0                
 * 电机A     反转(调速) 0     1/PWM            
 * 空转                   0       0
 * 刹车                   1       1
 * 电机B     正转(调速)               1/PWM    0
 * 电机B     反转(调速)                 0     1/PWM
 * 空转                                   0      0
 * 刹车                                   1      1
 * This example code is in the public domain.
*/
 
// XY-2.5AD 连接Arduino引脚编号
int IN1 = 3;
int IN2 = 5;
int IN3 = 6;
int IN4 = 9;
 
int pinNum;             //  控制引脚号
int ctrlVal;            //  电机运行控制
  
void setup() {
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  
  Serial.begin(9600);  
}
  
void loop() {
  if (Serial.available()) {     // 检查串口缓存是否有数据等待传输 
    char cmd = Serial.read();   // 获取电机指令中电机编号信息      
    
    switch(cmd){ 
      case 'p':   // 设置引脚编号
        pinNum = Serial.parseInt();
        Serial.print("Pin Number ");
        Serial.print(pinNum);
        Serial.print(" ,");
        break;                 
        
      case 'a':   // 模拟模式控制电机
        ctrlVal = Serial.parseInt();
        analogWrite(pinNum, ctrlVal);
        Serial.print("Set Value ");
        Serial.print(ctrlVal);
        Serial.println(".");          
        break;    
 
      case 'd':   // 数字模式控制电机
        ctrlVal = Serial.parseInt();
        digitalWrite(pinNum, ctrlVal);
        Serial.print("Set Value ");
        Serial.print(ctrlVal);
        Serial.println(".");             
        break;   
 
      default:   // 未知指令
        Serial.println("Unknown Command");     
        break;  
    }
  }
}

五、实验现象

在这里插入图片描述
输入p3d1p5d0第一个电机正转,输入p6d0p9d1第二个电机反转。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值