0.资料

项目工程文件夹

分文件原理


1.认识L9110S

1、概述:

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

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

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。此时单片机这个引脚间接连接到左电机上触点,作用是通过电平切换控制左电机正反转。

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、“软件延时”模块:

  • 代码:

    #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相关推荐

  1. 测试Risym 2.5A双路电机驱动模块:MX1919

    简 介: 测试了MX1919双电机驱动模块的基本功能.利用MM32F3273实验电路板作为信号来源,驱动了MX1919,并驱动一个小型步进电机运行.验证了模块的基本驱动功能. 关键词: MX1919, ...

  2. TB6612FNG电机驱动模块的简单使用

    TB6612FNG电机驱动模块的简单使用: 文 小波 QQ463431476 博客  http://www.cnblogs.com/xiaobo-Linux/ 欢迎学习转载!

  3. 备战全国电子设计大赛-TB6612FNG电机驱动模块

    TB6612FNG电机驱动模块 TB6612模块简介: TB6612FNG是一款直流电机驱动器件,具有大电流MOSFET-H桥结构,双通道电路输出,可同时驱动2个电机. 每个通道输出最高1A的连续驱动 ...

  4. 【Arduino学习笔记】使用L298N电机驱动模块驱动直流电机

    L298N是Arduino的电机驱动模块,能驱动步进电机和两路直流电机,驱动步进电机和直流电机的文章网上百度一大堆,这里我想说的是L298N模块外接独立12V电压驱动电机的方法.我使用的L298N模块 ...

  5. STM32F103C8T6控制电机驱动模块298N驱动电机调速以及正反转(附代码资源包)

    STM32F103C8T6控制电机驱动模块298N驱动电机调速以及正反转 一. 硬件选型 1. stm32f103c8t6 2. L298N 3. 电机 4. 其他 二. 硬件连接(连接以接一路电机为 ...

  6. 模块电路选型(5)----电机驱动模块

    系列文章目录 1.电源模块 2.主控模块 3.传感器模块 4.通信模块 5.电机驱动模块 6.存储模块 7.人机交互模块 文章目录 前言 前言 送给大学毕业后找不到奋斗方向的你(每周不定时更新) [牛 ...

  7. 继电器模块和L298N电机驱动模块的使用

    单片机如何与L298N和继电器连接?什么时候选择L298N或继电器模块? L298N模块 主控芯片为L298N的双H桥电机驱动模块,驱动电压为5~35V,一般驱动直流电机正反转一般使用L298N. 接 ...

  8. l298n电机驱动模块驱动直流电机(佛科院——深夜学习)

    目录 一.为什么不能直接用单片机IO口驱动电机,要用电机驱动模块? 二.使用步骤: 1.L298n各引脚作用: 2.推荐的供电方式: 3.推荐的控制方式: 一.为什么不能直接用单片机IO口驱动电机,要 ...

  9. 用寻迹模块L298n电机驱动模块制作Arduino寻迹小车四路(含清单,代码,接线,注意事项)

    本帖是在参考了很多博客之后进行的一次实战加总结,参考连接如下: Arduino智能小车寻迹篇 不适用PWM调速彻底解决L298n电机驱动转速不同的问题 1.工作原理 总体思想:小车通过四路寻迹模块得到 ...

最新文章

  1. XP/Vista 彻底休矣!Firefox 浏览器放弃支持
  2. 到外国的网站写英语留言
  3. Oracle常见五个服务的作用
  4. python向上取整_python向上取整-取整,向上
  5. 地图poi数据库下载
  6. html英文期刊参考文献,外文期刊参考文献标准格式
  7. 高效程序员的45个习惯
  8. BOM有效日期的设置
  9. 成就:优秀的管理者成就自己,卓越的管理者成就他人(读后感)
  10. Python 爬取所有51VOA网站的Learn a words文本及mp3音频
  11. 微信小程序---购物车功能(选中与取消选中,全选与取消全选)
  12. 如何在 Bios 中更改硬盘模式?
  13. 模块划分-4 模块划分
  14. 在电脑端下载google play上的app,将其下载成apk
  15. 30分钟java桌球小游戏_Java桌球小游戏(兴趣制作)
  16. 阿里巴巴2019实习生招聘正式启动!
  17. php组件化开发composer,composer组件化开发,个人总结
  18. 那些年,我所接触过的采集器...
  19. Docker Compose 练习:投票 App
  20. 【Python】turtle小海龟画兔子

热门文章

  1. vue导出Excel表格全局函数(简洁明了)
  2. Python如何制作个性化的动态二维码
  3. git回退远程分支某个版本
  4. fiddler导致浏览器不是私密连接
  5. ChatGPT研究(一)——AI平民化的里程碑
  6. nginx前言 - 负载均衡
  7. android开发常用的组件,7款Android开发者常用的Android UI组件
  8. 人工智能公司50强,来看看都是干什么的
  9. 安卓手机的touchend事件不触发问题
  10. oracle中的分隔函数,Oracle中的split字符串分割函数