将L9110与Arduino一起使用

Using the L9110S With the Arduino

L9110S电机驱动器是一个紧凑而有效的解决方案,用于控制Arduino项目中的直流电动机和步进电动机。无论您是构建简单的机器人还是更复杂的自动化系统,L9110S都提供了一种可靠的方式来管理具有最小的接线和编程复杂性的电机操作。在此博客文章中,我们将探讨L9110S电机驱动程序的功能,如何将其连接到Arduino,并提供示例代码以使您开始使用。

L9110是什么?

L9110S是双通道电机驱动器IC,旨在控制两个直流电动机或一个步进电动机的速度和方向。它在2.5V至12V的电压范围内运行,使其用于各种应用。 L9110以其紧凑的尺寸,低功耗和与Arduino这样的微控制器的集成而闻名。

为什么选择L9110S?

  • 紧凑的设计: 它的小占地面积使其非常适合有限空间的项目。
  • 双通道: 独立控制两个电动机,允许复杂的运动。
  • 便于使用: 简单的界面,带有清晰的标签,可轻松连接。
  • 成本效益: 负担得起的定价而不损害功能。

将L9110连接到Arduino

用Arduino设置L9110很简单。以下是建立连接的分步指南:

  1. 电源连接:
    • 连接 VCC L9110的销钉到Arduino上的5V引脚。
    • 连接 GND L9110s的销钉与Arduino上的GND销。
  2. 电机连接:
    • 将第一个电动机连接到 OUT1OUT2 别针。
    • 如果使用第二马达,将其连接到 OUT3OUT4 别针。
  3. 控制销:
    • 连接 AIN1AIN2 在Arduino上的两个数字引脚(例如,第2和3)上的销钉。
    • 如果使用第二马达,请连接 BIN1BIN2 到另外两个数字引脚(例如,第4和5)。

有关连接的可视化表示,请参阅下图:

L9110S Arduino连接图

编程Arduino

设置硬件后,下一步是对Arduino进行编程以控制电机。以下是一个示例代码,该示例代码演示了如何使用L9110S电机驱动器控制直流电动机的方向和速度。


// Define motor control pins
const int AIN1 = 2;
const int AIN2 = 3;

// Setup function
void setup() {
  // Initialize the motor control pins as outputs
  pinMode(AIN1, OUTPUT);
  pinMode(AIN2, OUTPUT);
}

// Loop function
void loop() {
  // Rotate motor forward
  digitalWrite(AIN1, HIGH);
  digitalWrite(AIN2, LOW);
  delay(2000); // Run for 2 seconds

  // Stop the motor
  digitalWrite(AIN1, LOW);
  digitalWrite(AIN2, LOW);
  delay(1000); // Stop for 1 second

  // Rotate motor backward
  digitalWrite(AIN1, LOW);
  digitalWrite(AIN2, HIGH);
  delay(2000); // Run for 2 seconds

  // Stop the motor
  digitalWrite(AIN1, LOW);
  digitalWrite(AIN2, LOW);
  delay(1000); // Stop for 1 second
}

解释:

  • AIN1AIN2 用于控制电动机的方向。
  • 环境 AIN1AIN2 低旋转电动机向前。
  • 环境 AIN1 低和 AIN2 高旋转电动机向后旋转。
  • 两个设置 AIN1AIN2 低站电动机。

用PWM控制速度

L9110支持PWM(脉冲宽度调制)进行速度控制。通过改变PWM信号的占空比,您可以调整电动机的速度。这是修改先前代码以包含速度控制的方法:


// Define motor control pins
const int AIN1 = 2;
const int AIN2 = 3;
const int PWM_PIN = 9; // PWM pin for speed control

// Setup function
void setup() {
  // Initialize the motor control pins as outputs
  pinMode(AIN1, OUTPUT);
  pinMode(AIN2, OUTPUT);
  pinMode(PWM_PIN, OUTPUT);
}

// Loop function
void loop() {
  // Set speed to 150 out of 255
  analogWrite(PWM_PIN, 150);

  // Rotate motor forward
  digitalWrite(AIN1, HIGH);
  digitalWrite(AIN2, LOW);
  delay(2000); // Run for 2 seconds

  // Stop the motor
  digitalWrite(AIN1, LOW);
  digitalWrite(AIN2, LOW);
  delay(1000); // Stop for 1 second

  // Rotate motor backward
  digitalWrite(AIN1, LOW);
  digitalWrite(AIN2, HIGH);
  delay(2000); // Run for 2 seconds

  // Stop the motor
  digitalWrite(AIN1, LOW);
  digitalWrite(AIN2, LOW);
  delay(1000); // Stop for 1 second
}

解释:analogWrite() 功能将PWM信号发送到电动机,使您可以控制其速度。该值范围从0(停止)到255(全速)。

L9110与Arduino的应用

L9110S运动驱动器和Arduino的组合开辟了广泛的项目可能性:

  • 机器人技术: 控制机器人臂或移动机器人的运动,并具有精确的电动机控制。
  • 自动化系统: 自动化任务,例如打开/关闭门,调整阀门或组装线中的移动组件。
  • DIY项目: 创建定制的电子项目,例如电动相机滑块,自动化的植物浇水系统或遥控车辆。
  • 教育工具: 通过动手项目向学生传授电动机控制,电子设备和编程。

结论

对于希望使用Arduino控制电动机的任何人,L9110S电机驱动器是一种多功能且用户友好的组件。它的双通道功能,结合了布线和编程的简单性,使其成为初学者和经验丰富的业余爱好者的绝佳选择。通过遵循本文中概述的步骤,您可以快速将电动机控件集成到项目中,并扩展基于Arduino的系统的功能。

尝试不同的电动机速度,方向和应用,以充分利用L9110S运动驱动器的潜力。快乐的修补!

发表评论

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.