草庐IT

A4988驱动步进电机教学

优信电子 2023-10-30 原文

A4988驱动步进电机教学

前言

A4988作为一款完全的微步电动机驱动器,模块轻便小巧易于操作又自带内置转换器,是相当实用的驱动模块。学会使用A4988对于将来学习DIY3D打印机,雕刻机等很有帮助


一、模块介绍

A4988是一款带转换器和过流保护的 DMOS 微步驱动器,该产品可在全、半、1/4、1/8 及 1/16 步进模式时操作双极步进电动机,输出驱动性能可达 35V ,A4988 包括一个固定关断时间电流稳压器,该稳压器可在慢或混合衰减模式下工作。转换器是A4988易于实施的关键。只要在“步进”输入中输入一个脉冲,即可驱动电动机产生微步。无须进行相位顺序表、高频率控制行或复杂的界面编程。A4988 界面非常适合复杂的微处理器不可用或过载的应用。

二、实物图

三、电气参数

四、使用说明


从原理图可以看出在具体的使用中我们只要控制STEP和DIR就可以了,可以说很是方便;电源供电方面器件VDD和GND接Arduino的+5V和GND, 而电机电源 VMOT 和 GND 需要接8-15V(DC); 关于三个模式选择端 MS1、MS2、MS3 我们全部接地或者悬空,进入全步进模式,如果要求更高的精度,我们可以通过选择其他的模式,比如我们如果选择 1/4 步进模式,那么我们电机转一圈就要送800个微步才能完成。我们下面来看看模式选择与 MS1、MS2、MS3 之间的关系
好了,接下来就到了实测环节:

五、模块实验

(那么,开始实验吧)
使用设备: Arduino UNOR3、 杜邦线若干 、 A4988模块 、 步进电机 、 小面包板 、 直流电源;
我们根据上面的原理图连好实物电路,模式选择端 MS1、MS2、MS3 我们全部悬空,步进电机的接线一一对应好

这里接线比较乱,大家看原理图就可以了
接下来看下测试代码:

// A4988接Arduino对应的引脚号
int dirPin = 2;
int stepperPin = 3;
void setup() {
// Arduino控制A4988的引脚为输出模式
pinMode(dirPin, OUTPUT);
pinMode(stepperPin, OUTPUT);
}
void step(boolean dir,int steps){
digitalWrite(dirPin,dir);
delay(50);
for(int i=0;i<steps;i++){
 digitalWrite(stepperPin, HIGH);
 delayMicroseconds(800);
 digitalWrite(stepperPin, LOW);
 delayMicroseconds(800);
}
}
void loop(){
step(true,1000);
delay(500);
step(false,1000);
delay(500);
}

实物效果:

PS、常见问题解答

一、A4988能驱动几安的电流
A4988加散热片后电流能达到2A,若没有加散热片,建议电流在1.2A以内
二、步进电机该如何连接?
以4988板子背面标识为准,依次连接步进电机的1B-1A-2A-2B或者反向连接。例如电机线是红蓝绿黑标准的四色,则可按照颜色相接:红-蓝-绿-黑或相反的黑-绿-蓝-红。
三、接上电机后,电机出现抖动,不能正常工作怎么办?
电机出现抖动一般有两个原因:
1、缺相,可能是4988板子没有焊接好或因为外力导致4988的输出端某一相断开,造成电机缺相从而抖动。也有可能是步进电机接线只用一相没有连接好;
2、两相接错,如果步进电机没有按照正确的顺序进行连接,电机也会出现抖动的情况。(连接方式请看上文)
四、电机丢步如何解决?
相电流的大小跟步进电机的扭力有关,若是感觉你的步进电机扭力不足、丢步,可以加大4988板子的电流配置,驱动板是通过一个小的电位器来实现对输出电流的配置的。
五、4988可以驱动两相六线或两相无线的电机吗?
可以,两相连线按照第二步连接,将中间抽头悬空即可。
六、电机停止转动时会有滋滋的电流声。
首先说明的是这是正常现象
步进电机的特点是走特定的角度而不是一直转,所以步进电机都有一个参数,步距角。如果通过细分,可以最小走步距角/细分数的角度,比如步距角为1.8度的步进电机,采用16细分,最小可以走的角度是1.8/16=0.1125度。
但由于这个角度非常小,并且不一定在电机物理所在的位置(1.8度为一个物理位置),所以步进电机停止时也需要通电,从而保证电机不会自动跳到物理步距角上。因为这个特性使得步进电机在静止时会有电流声,这属于正常现象,无需担心。

总结

以上就是今天要讲的A4988模块相关内容,本文简单介绍了A4988模块的使用,希望对您的使用有所帮助。

有关A4988驱动步进电机教学的更多相关文章

  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. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  3. 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

  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/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"运行

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

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

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

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

  9. AT24C04、AT24C08、AT24C16系列EEPROM芯片单片机读写驱动程序 - 2

    一、概述在之前的一篇博文中,记录了AT24C01、AT24C02芯片的读写驱动,先将之前的相关文章include一下:1.IIC驱动:4位数码管显示模块TM1637芯片C语言驱动程序2.AT24C01/AT24C02读写:AT24C01/AT24C02系列EEPROM芯片单片机读写驱动程序本文记录分享AT24C04、AT24C08、AT24C16芯片的单片机C语言读写驱动程序。二、芯片对比介绍型号容量bit容量byte页数字节/页器件寻址位可寻址器件数WordAddress位数/字节数备注AT24C044k5123216A2A149/1WordAddress使用P0位AT24C088k1024

  10. ruby-on-rails - 测试驱动开发?精神 split 症?我糊涂了!我应该使用什么进行测试,为什么? - 2

    是的,我开始做这个测试了!但是我不知道该用什么=/Rspec+应该吗?Rspec+牛排?迷你测试?cucumber?capybara?可以吗?(cucumber与Shoulda混合)迷你应该吗?(Minitest与Shoulda混合)啊,这么多选择!我很困惑你们用什么,为什么? 最佳答案 如果您刚刚开始,您应该使用默认值并遵循theofficialguides.重要的是你要练习测试。您使用哪种测试库/框架并不重要——这是一种风格选择,在实际练习测试中是次要的——开始测试Rails应用程序的最简单方法是遵循“Golden官方指南布局的

随机推荐