我们不仅销售产品,我们还传播知识
商品分类

Arduino通过L9110进行电机控制

Arduino通过L9110进行电机控制

L9110S是为控制和驱动电机设计的两通道推挽式功率放大专用集成电路器件,将分立电路集成在单片IC之中,使外围器件成本降低,整机可靠性提高。

该芯片有两个TTL/CMOS兼容电平的输入,具有良好的抗干扰性;两个输出端能直接驱动电机的正反向运动,它具有较大的电流驱动能力,每通道能通过750~800mA的持续电流,峰值电流能力可达1.5~2.0A;同时它具有较低的输出饱和压降与静态电流;内置的钳位二极管能释放感性负载的反向冲击电流,使它在驱动继电器、直流电机、步进电机或开关功率管的使用上安全可靠。
L9110S被广泛应用于玩具汽车电机驱动、自动阀门电机驱动、电磁门锁驱动等电路上。

基本参数:

  • 极限参数:800mA / 2.5V-12V
  • 低静态工作电流: 0.00 uA
  • 宽电源电压范围:2.5V-12V ;
  • 每通道具有800mA 连续电流输出能力,精确快速的正反转控制;
  • 超低的饱和电压降;
  • TTL/CMOS 输出电平兼容,可直接连CPU ;
  • 输出内置钳位二极管,适用于感性负载;
  • 精确的脉宽控制和后级驱动集成于单片IC 之中;
  • 具备管脚高压保护功能;
  • 工作温度:-30 ℃-80 ℃。

管脚

Arduino通过L9110进行电机控制
序号符号功能
1OAA路输出管脚
2VCC电源
3VCC电源
4OBB路输出
5GND地址
6IAA路输入
7IBB路输入
8GND地线

线路图

Arduino通过L9110进行电机控制

实物连线图

Arduino通过L9110进行电机控制

驱动代码

/*
 L9110 控制小型直流电机实验

 实验目的:通过L9110的简单连接控制直流电机的 方向 与 速度
 实验设计:Joystick 充当油门与前向后方向的控制,控制杆随着方向上将速度由小至大推进
 注意:一个L9110只能控制一个电机,且需要将 IA 与 IB 与 Arduino 连接
*/

const int IA = 5;  //  pin 5 connected to pin IA
const int IB = 6;  //  pin 6 connected to pin IB


byte speed = 255;  // change this (0-255) to control the speed of the motor

void setup() {
  pinMode(IA, OUTPUT); // set pins to output
  pinMode(IB, OUTPUT);
  Serial.begin(9600);
}

void loop() {

  int offsetX=525; //当控制杆位于中位时的模拟输入值,不同的控制杆可能有不同的偏差。
  
  int x =analogRead(A0);

  bool isFoward = x <= offsetX;  
  speed = x==offsetX ? 0: (isFoward ? (255- map(x,0,offsetX,0,255)): map(x,0,1024,0,255));
  Serial.println(speed);
  isFoward ? forward() : backward();  
}

void backward()
{
  analogWrite(IA, 0);
  analogWrite(IB, speed);
}

void forward()
{
  analogWrite(IA, speed);
  analogWrite(IB, 0);

}

L9110控制电机速度和方向非常简单,按上述真值表中的定义,只要向输入端IA/IB输入高电平则为转动,IA 正转,IB为反转。

速度是通过调幅PWM 信号进行控制,也就是对IA/IB 写入 1~255 的速度范围则可控制电机的转速。

发表回复

登录后才能评论
微信群
微信群
联系我们

联系我们

微信:13823392571

在线咨询:点击这里给我发消息

工作时间:周一至周五,9:30-18:30,节假日休息

微信客服
微信客服
分享本页
返回顶部