L9110S电机驱动模块demo

这篇具有很好参考价值的文章主要介绍了L9110S电机驱动模块demo。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0.资料

项目工程文件夹

分文件原理


1.认识L9110S

1、概述:

一个L9110S驱动可以控制一个电机,图中左右两个黑色芯片就是L9110S驱动。当然如果会硬件也可以直接把它们设计到单片机开发板上。

一个电机由两个针脚控制,我们用杜邦线让L9110S和单片机连接,两个针脚的电平高低会决定电机正转还是反转。

L9110S电机驱动模块demo

2、引脚说明:

  • L9110S模块有6根引脚,如下:
    编号 符号 说明
    1 VCC 供电,3~5,5V,DC
    2 GND 接地,电源负极
    3 A-1A 如上图中,与MotorA左侧端子相连。
    4 A-1B 如上图中,与MotorA右侧端子相连。
    5 B-1A 如上图中,与MotorB左侧端子相连。
    6 B-2A 如上图中,与MotorB右侧端子相连。
  • 值得注意的是,最好不要直接由开发板来给模块供电,因为L9110S模块可能会因为需求的驱动功率太高而导致板子上的供电不平衡。

2.L9110s驱动测试

1、和单片机的接线方式:注意一开始把电池电源切断,防止接线的时候出错烧毁L9110S模块。

  • 为了适配接下来的代码:以车头方向超前为准,小车上L9110S驱动模块和两个电机的连接方式如下:
    • 驱动模块上motor A的白色线锡焊在左边电机的上面、黑色线锡焊在左边电机的下面
    • 驱动模块上motor B的褐色线锡焊在右边电机的上面、红色线锡焊在右边电机的下面。
  1. 电源线
    1. L9110S上的VCC——电源VCC
    2. L9110S上的GND——电源GND
    3. 单片机GND——电源GND。原因:要想实现单片机和L9110S驱动模块的信号传输,不仅需要连接好相应的I/O口,还需要将两者共地。
  2. 控制线
    1. L9110S上的B-1A——P3.2。此时单片机这个引脚间接连接到右电机下触点,作用是通过电平切换控制右电机正反转。
    2. L9110S上的B-1B——P3.3。此时单片机这个引脚间接连接到右电机上触点,作用是通过电平切换控制右电机正反转。
    3. L9110S上的A-1A——P3.4。此时单片机这个引脚间接连接到左电机下触点,作用是通过电平切换控制左电机正反转。
    4. L9110S上的A-1B——P3.5。此时单片机这个引脚间接连接到左电机上触点,作用是通过电平切换控制左电机正反转。

L9110S电机驱动模块demo

L9110S电机驱动模块demo

2、电机正反转测试:

  1. 说明:网上给的说明和L9110S的引脚编号对不上,自己测试一下即可。电机的上下接触点的电平可高可低,所以一个电机最多共有4种转动情况,依次验证即可。
  2. 测试代码
    /* 公共代码 */
    #include "reg52.h"
    
    sbit RightCon_1A = P3^2;   //L9110S的MotorB_1A--右轮电机下接触点
    sbit RightCon_1B = P3^3;   //L9110S的MotorB_1B--右轮电机上接触点
    sbit LeftCon_1A  = P3^4;   //L9110S的MotorA_1A--左轮电机下接触点
    sbit LeftCon_1B  = P3^5;   //L9110S的MotorA_1B--左轮电机上接触点
    
    /* 情形一: */
    void main(void)
    {
        /* 右轮测试:不转 */
        RightCon_1A = 0;
        RightCon_1B = 0;
        /* 左轮测试:不转 */
        LeftCon_1A = 0;
        LeftCon_1B = 0;
    }
    
    /* 情形二: */
    void main(void)
    {
        /* 右轮测试:前进 */
        RightCon_1A = 0;
        RightCon_1B = 1;
        /* 左轮测试:前进 */
        LeftCon_1A = 0;
        LeftCon_1B = 1;
    }
    
    /* 情形三: */
    void main(void)
    {
        /* 右轮测试:倒退 */
        RightCon_1A = 1;
        RightCon_1B = 0;
        /* 左轮测试:倒退 */
        LeftCon_1A = 1;
        LeftCon_1B = 0;
    }
    
    /* 情形四: */
    void main(void)
    {
        /* 右轮测试:不转 */
        RightCon_1A = 1;
        RightCon_1B = 1;
        /* 左轮测试:不转 */
        LeftCon_1A = 1;
        LeftCon_1B = 1;
    }
  3. 测试结果
    1. 电机正转(向前):下接触点为高电平、上接触点为低电平。
    2. 电机反转(向后):下接触点为低电平、上接触点为高电平。
    3. 其余两种电平情况电机均不转动。

3.前后左右控制小车

1、小车前进函数封装 :

  • 逻辑:左轮和右轮都正转
    void goForward()
    {
        /* 右轮:前进 */
        RightCon_1A = 0;
        RightCon_1B = 1;
        /* 左轮:前进 */
        LeftCon_1A = 0;
        LeftCon_1B = 1;
    }

2、小车后退函数封装:

  • 逻辑:左轮和右轮都反转
    void goBack()
    {
        /* 右轮:倒退 */
        RightCon_1A = 1;
        RightCon_1B = 0;
        /* 左轮:倒退 */
        LeftCon_1A = 1;
        LeftCon_1B = 0;
    }

3、小车向前左转函数封装:

  • 逻辑:左轮停止、右轮正转
    void goForward_left()
    {
        /* 右轮:前进 */
        RightCon_1A = 0;
        RightCon_1B = 1;
        /* 左轮:不转 */
        LeftCon_1A = 0;
        LeftCon_1B = 0;
    }

4、小车向前右转函数封装:

  • 逻辑:右轮停止、左轮正转
    void goForward_right()
    {
        /* 右轮:不转 */
        RightCon_1A = 0;
        RightCon_1B = 0;
        /* 左轮:前进 */
        LeftCon_1A = 0;
        LeftCon_1B = 1;
    }

5、小车向后左转函数封装:

  • 逻辑:左轮停止、右轮反转
    void goBack_left()
    {
        /* 右轮:倒退 */
        RightCon_1A = 1;
        RightCon_1B = 0;
        /* 左轮:不转 */
        LeftCon_1A = 0;
        LeftCon_1B = 0;
    }

6、小车向后右转函数封装:

  • 逻辑:右轮停止、左轮反转
    void goBack_right()
    {
        /* 右轮:不转 */
        RightCon_1A = 0;
        RightCon_1B = 0;
        /* 左轮:倒退 */
        LeftCon_1A = 1;
        LeftCon_1B = 0;
    }

4.电机转动测试demo_分文件

1、主程序“main”:

  • 代码:
    #include "reg52.h"
    #include "motor.h"
    #include "delay.h"
    
    void main(void)
    {
        goForward();        //测试:前进
        Delay1000ms();
        Delay1000ms();
        goBack();           //测试:后退
        Delay1000ms();
        Delay1000ms();      
        goForward_left();   //测试:向前左转
        Delay1000ms();
        Delay1000ms();
        goForward_right();  //测试:向前右转    
        Delay1000ms();
        Delay1000ms();
        goBack_left();      //测试:向后左转
        Delay1000ms();
        Delay1000ms();
        goBack_right();     //测试:向后右转
        Delay1000ms();
        Delay1000ms();
    }

2、“电机”模块:

  • 代码:
    #include "reg52.h"
    
    sbit RightCon_1A = P3^2;   //L9110S的MotorB_1A--右轮电机下接触点
    sbit RightCon_1B = P3^3;   //L9110S的MotorB_1B--右轮电机上接触点
    sbit LeftCon_1A  = P3^4;   //L9110S的MotorA_1A--左轮电机下接触点
    sbit LeftCon_1B  = P3^5;   //L9110S的MotorA_1B--左轮电机上接触点
    
    void goForward()
    {
        /* 右轮:前进 */
        RightCon_1A = 0;
        RightCon_1B = 1;
        /* 左轮:前进 */
        LeftCon_1A = 0;
        LeftCon_1B = 1;
    }
    
    void goBack()
    {
        /* 右轮:倒退 */
        RightCon_1A = 1;
        RightCon_1B = 0;
        /* 左轮:倒退 */
        LeftCon_1A = 1;
        LeftCon_1B = 0;
    }
    
    void goForward_left()
    {
        /* 右轮:前进 */
        RightCon_1A = 0;
        RightCon_1B = 1;
        /* 左轮:不转 */
        LeftCon_1A = 0;
        LeftCon_1B = 0;
    }
    
    void goForward_right()
    {
        /* 右轮:不转 */
        RightCon_1A = 0;
        RightCon_1B = 0;
        /* 左轮:前进 */
        LeftCon_1A = 0;
        LeftCon_1B = 1;
    }
    
    void goBack_left()
    {
        /* 右轮:倒退 */
        RightCon_1A = 1;
        RightCon_1B = 0;
        /* 左轮:不转 */
        LeftCon_1A = 0;
        LeftCon_1B = 0;
    }
    
    void goBack_right()
    {
        /* 右轮:不转 */
        RightCon_1A = 0;
        RightCon_1B = 0;
        /* 左轮:倒退 */
        LeftCon_1A = 1;
        LeftCon_1B = 0;
    }

3、“软件延时”模块:文章来源地址https://www.toymoban.com/news/detail-486886.html

  • 代码:
    #include "intrins.h"
    
    void Delay1000ms()		//@11.0592MHz
    {
    	unsigned char i, j, k;
    
    	_nop_();
    	i = 8;
    	j = 1;
    	k = 243;
    	do
    	{
    		do
    		{
    			while (--k);
    		} while (--j);
    	} while (--i);
    }

到了这里,关于L9110S电机驱动模块demo的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 智能小车 - DRV8833电机驱动模块

    基本兼容TB6612模块管脚 ,可驱动1.5A以下的直流电机和4线步进电机。 芯片中共有两个全H桥。因此最多可以同时驱动两个直流电机或一个步进电机。 (如果将4个电机中两个两个正负极相接,一个芯片也可带动4个电机) 管脚说明: ANI1:AO1的逻辑输入控制端口,电平0-5V。 AI

    2024年02月02日
    浏览(52)
  • 探索全桥电机驱动模块:实现精确控制与高效驱动

    全桥电机驱动模块是一种在现代工程应用中广泛使用的电机驱动方式。对于需要精确控制和高效驱动的场景,如机器人、无人机、电动车等,全桥电机驱动模块提供了理想的解决方案。本文将介绍全桥电机驱动模块的原理和实际应用场景,并对几种常见的全桥驱动芯片进行详

    2024年02月12日
    浏览(70)
  • ESP32设备驱动-步进电机A4988驱动模块

    在本文中,我们将介绍如何通过ESP32芯片驱动A4988 步进电机驱动器模块。 A4988 驱动器模块用于以相对简单的方式控制步进电机。 仅使用 ESP32 和 A4988 驱动模块的两个引脚,我们就可以控制步进电机的旋转速度和旋转方向。 步进电机是直流无刷同步电机。 它们以预定义值的离

    2024年02月13日
    浏览(39)
  • 【mcuclub】直流电机-MX1508驱动模块

    编号 名称 功能 1 A1 1通道正转逻辑输入 2 A2 1通道反转逻辑输入 3 B1 2通道正转逻辑输入 4 B2 2通道反转逻辑输入 5 OB2 2通道反转输出 6 OB1 2通道正转输出 7 OA2 1通道反转输出 8 OA1 1通道正转输出 9 VCC 电源正(2-8V) 10 GND 电源地 MX1508采用H桥电路结构设计,采用高可靠性功率管工艺,特

    2023年04月08日
    浏览(47)
  • 【常见直流电机驱动模块与arduino使用最全教程】

    驱动 直流电机 是基于微控制器设计的一种非常常见的应用,电机驱动器的选择可能非常重要。 如果您的唯一要求是在不考虑控制速度或方向的情况下打开和关闭电机,那么继电器或 MOSFET 就可以解决问题。但在大多数应用中,您会希望能够调整电机参数,为此,您需要一个

    2024年02月03日
    浏览(58)
  • Driver8833电机驱动模块的使用(STM32为主控)

    一、硬件 STM32C8T6、STLINK下载器 Driver8833:TI公司的DRV8833是双桥马达驱动器解决方案,包括有两个H桥驱动器,可驱动两个DC电刷马达,或一个步进马达, 螺线管和其它电感负载. DRV8833具有PWM绕组电流调整/限制,H桥的输出电流1.5A RMS,2A峰值,工作电压2.7V-10.8V。 编码电机 二、Driver8833的使

    2024年02月01日
    浏览(42)
  • 关于TMC2209步进电机驱动模块 – SilentStepStick的知识概况

    TMC2209 SilentStepStick 是一款用于两相双极步进电机的步进/方向驱动器,具有高达 2.8A 峰峰值和 2A RMS 的电流。它可以在 1 至 1/256 步进模式下驱动 2 相双极步进电机。最重要的是,TMC2209 提供了一个简单的 UART 接口,可以在任何具有 UART 端口的微控制器的帮助下进行调整和控制。

    2024年02月05日
    浏览(48)
  • L298N双路电机驱动模块使用指南

    哦吼,这个模块上手很快!!! L298N,是一款接受高电压的电机驱动器,直流电机和步进电机都可以驱动。一片驱动芯片可同时控制两个直流减速电机做不同动作,在6V到46V的电压范围内,提供2安培的电流,并且具有过热自断和反馈检测功能,可对电机进行直接控制,通过主

    2024年02月07日
    浏览(41)
  • L298N 直流电机驱动模块与 Arduino

    原文地址 L298N 电机驱动器可以控制两个直流电机的速度和旋转方向。 此外,它还可以控制双极步进电机,例如NEMA 17。如果您想了解更多信息,请查看本教程。 L298N电机驱动器和Arduino控制步进电机:Control Stepper Motor with L298N Motor Driver Arduino (lastminuteengineers.com) 只有当我们可以

    2024年02月02日
    浏览(46)
  • 最全H桥电机驱动模块L298N原理及应用

    通常,H 桥是一个相当简单的电路,包含四个开关元件,负载位于中心,采用类似 H 的配置。 开关元件 (Q1…Q4) 通常是双极或 FET 晶体管,在某些高压应用中为 IGBT。也存在集成解决方案,但开关元件是否与其控制电路集成与本讨论的大部分内容无关。二极管 (D1…D4) 称为钳位

    2024年02月08日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包