草庐IT

L9110S电机驱动——让小车动起来

ONE_Day| 2023-07-11 原文

L9110S电机驱动模块

产品介绍

  1. 双L9110S芯片的电机驱动
  2. 模块供电电压:2.5-12V,供电电压越大则直流电机转速越快,前提不超过额定电压
  3. 适合的电机范围:电机工作电压2.5v-12V之间,最大工作电流0.8A,目前市面上的智能小车电压和电流都在此范围内
    可以同时驱动2个直流电机,或者1个4线2相式步进电机。
  4. PCB板尺寸:2.8cm*2.1cm超小体积,适合组装
  5. 设有固定安装孔,直径:3mm

模块接口说明

【6P黑色弯排针说明】

  1. VCC 外接2.5V-12V电压
  2. GND 外接GND
  3. IA1 外接单片机IO 口
  4. IB1 外接单片机IO口
  5. IA2 外接单片机IO口
  6. IB2 外接单片机IO口

【4P绿端子说明】

  1. 0A1 0B1 接直流电机2个引脚,无方向
  2. 0A2 0B2 接直流电机2个引脚,无方向

两个直流减速电机工作电压为:3-6V

6V <=200mA 200+_10%rpm

3V <=150mA 90+_10%rpm

程序

因为模块手册的使用说明不太容易理解,电机正反转不清楚,电机插上轮子后通过代码可以很好的分析出电机到底怎么转的

模块接线:

1.先定义引脚,

//右轮
sbit rightA = P3^2;
sbit rightB = P3^3;
//左轮
sbit leftA = P3^4;
sbit leftB = P3^5;

2.控制小车前进

/**
  * @brief控制小车前进
  * @param无
  * @retval无
  */
void GoForward()
{
	rightA = 0;
	rightB = 1;
	
	leftA = 0;
	leftB = 1;
}

3.控制小车后退

/**
  * @brief控制小车后退
  * @param无
  * @retval无
  */
void GoBack()
{
	rightA = 1;
	rightB = 0;
	
	leftA = 1;
	leftB = 0;
}

4.控制小车左转,只需让左轮不动,右轮动就行

/**
  * @brief控制小车左转
  * @param无
  * @retval无
  */
void GoLeft()
{
	//右轮动
	rightA = 0;
	rightB = 1;
	//左轮不动
	leftA = 0;
	leftB = 0;
}

5.控制小车右转,右轮不动,左轮动

/**
  * @brief控制小车右转
  * @param无
  * @retval无
  */
void GoRight()
{
	//右轮不动
	rightA = 0;
	rightB = 0;
	//左轮动
	leftA = 0;
	leftB = 1;
}

6.控制小车停止,左右轮都不动

/**
  * @brief控制小车停止
  * @param无
  * @retval无
  */

void Stop()
{
	//右轮不动
	rightA = 0;
	rightB = 0;
	//左轮不动
	leftA = 0;
	leftB = 0;
}

main函数中直接调用对应的转动函数即可驱动模块让小车动起来

有关L9110S电机驱动——让小车动起来的更多相关文章

  1. ruby-on-rails - 如何在 Ruby on Rails 中实现由 JSF 2.0 (Primefaces) 驱动的 UI 魔法 - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。问题1)我想知道ruby​​onrails是否有功能类似于primefaces的gem。我问的原因是如果您使用primefaces(http://www.primefaces.org/showcase-labs/ui/home.jsf),开发人员无需担心javascript或jquery的东西。据我所知,JSF是一个规范,基于规范的各种可用实现,prim

  2. FOHEART H1数据手套驱动Optitrack光学动捕双手运动(Unity3D) - 2

    本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01  客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02  数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit

  3. ruby-on-rails - ruby:将数组的每个元素用附加引号引起来 - 2

    我有以下字符串:a="001;Barbara;122"我拆分成字符串数组:names=a.split(";")names=["001","Barbara","122"]我应该怎么做才能将每​​个元素另外用''引号括起来?结果应该是names=["'001'","'Barbara'","'122'"]我知道这听起来很奇怪,但我需要它在ruby​​onrails中进行数据库查询。出于某种原因,如果我的名字在“”引号中,我将无法访问数据库记录。我在数据库中确实有mk1==0006但rails不想以某种方式访问​​它。但是,它确实访问1222。sql="SELECTmk1,mk2,pk1,pk

  4. ruby - 运行测试时静音 Chrome 驱动程序控制台输出 - 2

    我使用的是最新版本的Chrome(32.0.1700.107)和Chrome驱动程序(V2.8)。但是当我在Ruby中使用以下代码运行示例测试时:require'selenium-webdriver'WAIT=Selenium::WebDriver::Wait.new(timeout:100)$driver=Selenium::WebDriver.for:chrome$driver.manage.window.maximize$driver.navigate.to'https://www.google.co.in'defapps_hoverele_hover=$driver.find_

  5. node.js - 从未编写过任何自动化测试,我应该如何开始行为驱动开发? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。多年来,我一直在使用多种语言进行编程,并且认为自己总体上相当擅长。但是,我从未编写过任何自动化测试:没有单元测试,没有TDD,没有BDD,什么都没有。我已经尝试开始为我的项目编写适当的测试套件。我可以看到在进行任何更改后能够自动测试项目中所有代码的理论值(value)。我可以看到像RSpec和Mocha这样的测试框架应该如何使设置和运行所述测试变得相当容易

  6. ruby-on-rails - 为什么我的 Rails 服务器渲染时间不加起来? - 2

    我的Rails应用程序在暂存服务器上运行速度非常慢,这让我遇到了一些麻烦。最令人困惑的是每个请求的日志输出的最后一行。看起来View和数据库时间甚至不接近整个渲染时间。在一页上,完成时间大约1000毫秒,View大约450毫秒,数据库大约20毫秒。渲染页面所需的其余时间从何而来? 最佳答案 当事情变得神秘时......分析器是你的friend!分析器将统计哪些方法被调用最多以及每个方法调用花费多长时间。ruby-prof当我在RubyLand时,它会帮我解决这个问题,它会生成一个漂亮的调用图(如果需要,可以是html格式),这使得查

  7. ruby-on-rails - 在 Rails/Capybara/Poltergeist 规范中使用 url_for 将驱动程序发送到 example.com 而不是应用程序 - 2

    如果我在功能规范中调用url_for,它会返回一个以http://www.example.com/开头的绝对URL.Capybara会很乐意尝试加载该站点上的页面,但这与我的应用程序无关。以下是重现该问题的最少步骤:从这个Gemfile开始:source'https://rubygems.org'gem"sqlite3"gem"jquery-rails"gem"draper"gem"rails",'4.1.0'gem"therubyracer"gem"uglifier"gem"rspec-rails"gem"capybara"gem"poltergeist"gem"launchy"运行

  8. 驱动开发:内核无痕隐藏自身分析 - 2

    在笔者前面有一篇文章《驱动开发:断链隐藏驱动程序自身》通过摘除驱动的链表实现了断链隐藏自身的目的,但此方法恢复时会触发PG会蓝屏,偶然间在网上找到了一个作者介绍的一种方法,觉得有必要详细分析一下他是如何实现的进程隐藏的,总体来说作者的思路是最终寻找到MiProcessLoaderEntry的入口地址,该函数的作用是将驱动信息加入链表和移除链表,运用这个函数即可动态处理驱动的添加和移除问题。MiProcessLoaderEntry(pDriverObject->DriverSection,1)添加MiProcessLoaderEntry(pDriverObject->DriverSection,

  9. ruby - 事件/观察者驱动的 Ruby on Rails - 2

    我有一个适用于事件/监听器模型的应用程序。发布了几种不同类型的数据(事件),然后许多不同的事情可能需要也可能不需要对该数据(监听器)采取行动。监听器的发生没有特定的顺序,每个监听器将决定是否需要对事件采取行动。Rails应用程序有哪些工具可以完成此任务?我希望自己不必这样做(尽管我可以。这没什么大不了的。)编辑:观察者模式可能是更好的选择 最佳答案 查看EventMachine.它是一个非常流行的Ruby事件处理库。它看起来相当不错,而且很多其他库似乎都在利用它(Cramp)。这是一个很好的介绍:http://rubylearnin

  10. ruby - 什么是最像 Ruby 的生成 3 个正整数加起来等于 100 的唯一组合的方法 - 2

    条件:a+b+c=100a,b,cpositiveintegersor0期望的输出:[[0,0,100],[0,1,99],...#allotherpermutations[99,1,0],[100,0,0]] 最佳答案 我会写:(0..100).flat_map{|x|(0..100-x).map{|y|[x,y,100-x-y]}}#=>[[0,0,100],[0,1,99]],...,[99,1,0],[100,0,0]]站点注释1:这是一个经典示例,其中列表推导式大放异彩(如果某处有条件则更是如此)。由于Ruby没有LC,我

随机推荐