概述
本教程适用于现在古老的v1电动机护罩。您有可能使用的是v2,请查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。该教程仅供历史参考,并且仅供先前的客户使用!
arduino是电子产品的一个很好的起点,并且带有电动机护罩,它也可以成为机器人技术和机电一体化的一个很好的整洁平台。这是功能齐全的电动机屏蔽罩的设计,能够为许多简单到中等复杂的项目提供动力。
2个5v“业余”伺服器的连接连接到arduino的高分辨率专用计时器-无抖动!
多达4个具有单独8位速度选择的双向dc 电机(因此,分辨率约为0.5%)
最多2个步进电机(单极或双极),具有单线圈,双线圈,交错或微步进。
4个h桥:l293d芯片组提供每桥0.6a(峰值1.2a)的热关断保护,4.5v至25v
下拉电阻可在加电期间使电机保持禁用状态
大端子排连接器易于安装连接电线(10-22awg)和电源
将arduino复位按钮置于顶部
2针端子块以连接外部电源,用于单独的逻辑/电机电源
经过测试与mega,diecimila和duemilanove兼容
完整套件可用于可以从adafruit商店购买。
下载易于使用的arduino软件库,就可以开始使用!
常见问题解答
本教程适用于现在古老的v1电动机防护罩。您有可能使用的是v2,请查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。该教程仅供历史参考,并且仅供先前的客户使用!
此防护罩可以使用多少个电机?
您可以使用2个在5v电压下运行的dc伺服器,最多4个dc电机或2个步进电机(或1个步进和最多2个dc电机)
我可以连接更多的电动机吗?
否,目前还不能例如,可以堆叠屏蔽或轻松连接屏蔽以控制4个步进器。
帮助!我的马达不起作用! - 救命!我的电机不工作!。..但是伺服系统工作正常!
是led灯亮了吗?如果led不亮,则步进电机和dc电机连接不会做任何事情
如果led不亮,请不要费心编写上传代码或为电机接线,这将不起作用。
led指示灯是什么?
led指示直流/步进电机电源正在工作。如果不亮,则直流/步进电机将不会运行。伺服端口由5v供电,不使用直流电动机电源。
我正在尝试构建此机器人,但它似乎无法在9v电池上运行。 。..
请阅读用户手册以获取有关适当电源的信息。
此屏蔽能否控制3v小型电动机?
否实际上,它适用于更大的6v +电机。除非您以6v超速驱动,否则它不适用于3v电动机,否则它们将更快地耗尽。
屏蔽板上的电源连接器有什么作用?如何为电动机供电?
请阅读用户手册以获取有关合适电源的信息。/div》
电动机运行时,我的arduino吓坏了!屏蔽层破损了吗?
电机会消耗很多能量,并可能导致“电力不足”重置arduino。因此,屏蔽罩设计用于单独的(分开的)电源-一个用于电子设备,另一个用于电动机。这样做可以防止电源不足。请阅读用户手册以获取有关适当电源的信息。
我有良好的固态电源,但是直流电动机似乎“切出”或“跳越”。
尝试将陶瓷或碟形0.1uf电容器焊接在电动机接线片之间(在电动机本身上!),这将减少可能会反馈到电路中的噪声(感谢macegr!)
如果每个电机需要600ma以上的电流怎么办?
您可以替换sn754410的(风险自负),也可以在现有的l293d驱动器之上搭载更多的l293d驱动器。
电机上未使用哪些引脚
所有6个模拟输入引脚都可用。它们也可用作数字引脚(引脚14至19)
不使用数字引脚2和13。
仅在使用指定的dc/步进器时使用以下插针:
数字插针11:直流电机#1/步进器1(激活/速度控制)
数字插针3:dc电动机#2/步进器#1(激活/速度控制)
数字引脚5:dc电动机#3/步进器#2(激活/速度控制)
数字引脚6:dc电动机#4/步进器#2(激活/速度控制)
如果使用任何dc/步进器,则使用以下引脚
数字引脚4、7、8和12用于通过74hc595串并锁存器驱动dc/步进电机
以下引脚仅在使用特定的伺服器时使用:
数字引脚9:伺服#1控制
数字引脚10:伺服#2控制
哪些引脚是c
直流/步进电动机不是?直接连接到arduino。它们连接到arduino所说的74hc595锁存器。您不能直接与电动机通信,必须使用电动机屏蔽库。
,嗯?我不明白。..
您可以尝试阅读michael撰写的这篇不错的概述k
如何连接未使用的引脚?
模拟引脚(模拟0-5,也称为数字引脚14-19)在右下角断开。
引脚2的引出线较小唯一真正未使用的针脚
其余的针脚不会折断,因为它们可以被电机罩使用。如果您确定不使用这些引脚,则可以在组装套件时使用堆叠式接头连接到它们,或者使用电线焊接到接头的顶部,或者使用“机翼屏蔽”
尝试运行示例代码时遇到以下错误:“错误:afmotor.h:没有此类文件或目录。。..”
确保已安装afmotor库
如何安装库?
阅读我们的库教程
我有两个步进电机,我想同时运行它们,但是示例代码只能y先控制一个,然后再控制另一个?
步进电机库step()例行程序不能同时运行两个电动机。相反,您将必须“交错”通话。例如,要使两个电动机都前进100次,您必须编写如下代码:
for(i = 0; i 《100; i ++){
motor1.step(1,forward,single );
motor2.step(1,forward,single);
}
如果您想要更智能的控制,请查看accelstepper库(在“下载”部分中),该库具有一些并发的步进器电机控制示例
什么是“建议的电机”?
大多数人都是从多余的商店购买电机的,没有电机会让所有人高兴
但是,由于这是一个很普遍的问题,我建议您购买电机来自pololu(直流伺服,直流电动机)或jameco(各种各样!)以及许多盈余网上商店。
电动机护罩是否与uno r3兼容还是mega r3?多余的引脚呢?
电动机的防护罩与r3 uno和mega兼容。 r3在每个接头连接器上都有2个额外的引脚。这些是插头上其他引脚的重复,并且不需要屏蔽。
我正在使用4wd机器人平台,但无法正常工作。
maker shed,df robotics,jameco等公司的4wd机器人平台中使用的电机有很多“刷子噪音”。这会反馈到arduino电路并导致不稳定的操作。通过将3个降噪电容器焊接到电动机上可以解决此问题。电机端子之间为1个,每个端子与电机外壳之间为1个。
但是我的电动机上已经装有电容器,但仍然无法工作。
这些电动机会产生大量的电刷噪声,通常需要完整的3电容处理才能充分抑制。
为什么不只在屏蔽层中设计电容器?
它们将无效那里。必须在源头处抑制噪声,否则电动机导线将像天线一样工作并将其广播到系统的其余部分。
做到!
本教程适用于现在比较古老的v1电动机护罩。您有可能使用的是v2,请查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。该教程仅供历史参考,并且仅供先前的客户使用!
放手!这是一个道理易于制作的套件,只需完成以下每个步骤即可构建套件
工具和准备
检查零件清单
将其焊接
准备工作
本教程适用于现在古老的v1电动机护罩。您有可能使用的是v2,请查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。该教程仅供历史参考,并且仅供先前的客户使用!
教程
别忘了学习如何使用万用表!
工具。组装时需要一些工具。这些工具均不包含在内。如果您没有它们,现在将是借阅或购买它们的好时机。每当组装/固定/修改电子设备时,它们都非常方便!我提供了购买链接,但是,当然,您应该在最方便/最便宜的地方获得它们。其中许多零件都可以在radio shack或其他(更高质量的)diy电子产品商店中找到。
烙铁
您可能会在本地五金店找到的任何入门级“多合一”烙铁都可以工作。与生活中的大多数事情一样,您将得到所要付出的一切。
升级到高端烙铁设置,例如我们在商店中购买的hakko fx-888,将使焊接变得轻松有趣。
请勿使用“冷热”烙铁。 !它们不适合用于精密的电子工作,并且可能损坏套件(请参阅此处)。
单击此处购买我们的入门级可调30w 110v烙铁。
单击此处升级为原装的hakko fx-888可调温焊接铁。
焊料
您将需要松香芯,60/40焊料。好的焊料是一件好事。不良的焊锡会导致桥接和冷焊点难以找到。
单击此处购买一盘含铅焊料(建议初学者使用)。
单击此处购买一盘无铅焊料。
万用表
您将需要一个高质量的基本万用表,可以测量电压和连续性。
单击此处购买基本万用表。
单击此处购买顶级的万用表。
单击此处购买便携式万用表。
齐平斜刀
一旦将它们焊接到位,您将需要齐平的斜角切割器来修剪电线和引线。
k在这里购买我们最喜欢的刀具。
solder sucker
奇怪的是,这是该脱焊真空工具的技术术语。对于清理错误很有用,每个电气工程师的办公桌上都会出现一个错误。
单击此处购买错误。
用放大镜帮助第三手
不是绝对 这是必需的,但是它将使处理过程变得更快,并且将使焊接变得更加容易。
在此处选择一个。
零件列表
本教程适用于现在古老的v1电动机护罩。您有可能使用的是v2,请查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。该教程仅供历史参考,并且仅供先前的客户使用!
《表类=“ editor-table”》 图片
名称 说明 分销商 数量
pcb 印刷电路板 adafruit 1
ic1,ic2
l293d
双h桥
*请参见使用页上的注释,以替换为sn754410
l293d 2
ic3 74hc595n
串行到并行输出锁存器 74hc595n 1
ic1‘和ic2’
16针插座(可选!)
自2010年7月起,这些都包含在套件中
通用 2
led1
3mm led,任何颜色
电机电源指示灯
3mm led 1
r1 用于led1的1.5k电阻 1/4w 5%电阻 1
r2 10k下拉电阻
棕色,黑色,橙色,金 1/4w 5%电阻器 1
rn1 10针总线10k-100k电阻网络 100k电阻器网络 1
c2,c4,c6 0.1uf陶瓷电容器 通用 3
c1,c3,c5 100uf/6v电容器(或更大) 100uf/6v上限 3
c7,c8 47uf/25v电容器(或更大) 47uf/25v cap 2
x1
5位3.5mm接线端子
(或3位和2位)
3.5mm端子 2
x2 2位3.5mm接线端子 3.5mm端子 1
reset 6mm轻触开关 6mm轻触开关 1
pwr 跳线/旁路 0.1”跳线 1
36针公头(1x36) 通用 1
焊接
本教程适用于现在比较古老的v1电动机护罩。您有可能使用的是v2,请查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。该教程仅供历史参考,并且仅供先前的客户使用!
接下来,如图所示,将电阻滑入pcb,使它们平放在电路板上。弯曲一下导线脚,使电路板翻转时不会出现极化现象。
电阻不会极化,这意味着您可以按“两种方式”放置它们,并且它们会正常工作。
接下来是三个集成电路(ic) ic1,ic2 和 ic3 。当ic出厂时,支脚有些倾斜,这使得将它们插入pcb变得困难。通过将支腿轻轻地弯曲到平坦的桌面上以使其完全笔直来准备焊接。
如果您有驱动电动机的经验,则可能希望跳过插座,因为这会降低芯片的散热能力。
首先,请检查一下您拥有所有零件!在此处查看并显示在左侧的零件清单中。
还要检查以确保您具有组装所需的工具。
将电动机屏蔽板放置在虎钳或其他电路板支架中,然后将烙铁打开700度。
首先需要使用的两个电阻是 r1 ( 棕色绿色红色金 )和 r2(棕黑色橙色金) 。弯曲电阻,使它们看起来像钉书钉,如这张照片所示。
使用烙铁头,加热几秒钟后,同时将电阻器导线和金属环(焊盘)戳入一点焊料,使其熔化成一个圆锥形。去除焊料,然后去除烙铁。对所有4条导线都执行此操作。
检查您的工作,应该有干净的焊点。
使用对角线将长引线夹在焊点上方
下一个放置三个黄色陶瓷电容器 c4 , c2 和 c6 。陶瓷电容器没有极性,因此您可以“两种方式”使用它们,它们可以正常工作。
将引线弯曲,就像使用电阻器一样。
焊接所有6根电线,然后像使用电阻一样将其剪裁。
接下来是6mm触摸开关 reset 和电阻网络 rn1 。轻触开关用于复位arduino,因为一旦打开电机护罩,它就无法到达复位按钮。
电阻器网络用于下拉引脚在马达驱动器芯片上,这样它们就不会在arduino草图告诉它们之前给马达供电。
触觉开关可以“以任何一种方式”进入。但是,电阻器网络必须以某种方式运行。确保带点的末端位于正确的位置,以使其与电阻网络的丝网印刷图像中的x相同。 (请参见左图)。
将板翻转过来,并焊接电阻网络并进行开关。您不需要修剪线索,因为线索很短。
adafruit的最新套件带有2个用于l293d电机驱动器的16针插座。它们是可选的,不是操作所必需的。
如果您不熟悉驱动电机(接线错误的电机可能性很高),则应安装这些,以便在l293d损坏时可以
轻松更换它们。
ic必须以正确的方向放置才能正常工作。为了帮助放置,每个芯片的顶部都有一个u形槽口。在电路板上印有芯片轮廓的打印图像,一端有一个u形缺口。确保切屑槽口与图像槽口在同一端。在此pcb中,所有部件都面对相同的方向。
轻轻地插入三个芯片。检查以确保没有任何腿弯曲或折断。
74hc595位于中间,两个l293d位于两侧。
焊接芯片的每个引脚。
l293d电机驱动器芯片的四个“中间”引脚已绑在一起到大的散热器,因此可能最终被焊料“桥接”,如第二幅图所示。
接下来是三个100uf电解电容器 c1 , c3 和 c5 。电解电容器已极化,必须以正确的方向放置,否则可能会弹出!电容器的长脚为正(+)脚,并进入标有+的孔中。此处显示的特写图像表示带孔的是+ 1。
电容器没有颜色编码。主体颜色可以从蓝色到紫色到绿色到黑色不等,因此请务必阅读侧面的值,而不取决于颜色!
仔细检查它们的极性后,焊接并夹三个电容器。
放置两个剩余的47uf电解电容器 c7 和 c8
这些电极也是极化的,因此请确保将长引线插入丝网印刷图像的+孔中。
电容器没有颜色编码。主体颜色可以从蓝色到紫色到绿色到黑色不等,因此请务必阅读侧面的值,而不取决于颜色!
焊接并修剪两个电容器。
下一个是3mm led,用于指示电机功率。 led像电容器一样是极化的,长引线是正极(+)引线。
请确保正确放置led,否则它将不起作用!
焊接并修剪led引线。
下一次是制作跳线,舵机和arduino接头的时候了。
我们使用一根36针“分离式”接头的针头,将其分开以制成更小的条。您可以使用斜口钳或钳子将其折断。
将36针接头分成2个8针,2个6针,2个3针和1个2针接头。
p》
如果您有ng arduino,则可能需要1个6针接头和1个4针接头,而不是2个6针接头。
2个3针引脚插入左上角的伺服连接中。 2针引脚插入底部中心的pwr跳线中。
此外,放置3个用于电动机和外部电动机电源线的大螺钉端子。如果只收到2位和3位端子块,请将它们滑动在一起,以便有2个5位端子和1个2位端子。
3个标题和三个接线端子中的焊料。
接下来,将8针和6针接头连接到arduino板。这将确保标题完美对齐。确保未插入arduino或未为其供电!
将电动机护罩放置在arduino的顶部,并确保所有插头都对齐。
标题的每个引脚中的焊料。
您已完成!
现在请阅读用户手册。
使用它!
本教程适用于现在古老的v1电动机护罩。您有可能使用的是v2,请查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。此教程仅供历史参考,并且仅供以前的客户使用!
adafruit motor shield套件是arduino的绝佳电机控制器,但要格外小心以确保正确使用。请通读左侧的所有《用户手册》部分,尤其是有关磁带库安装和电源要求的部分!
库安装
本教程适用于现在古老的v1电动机防护罩。您有可能使用的是v2,请查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。该教程仅供历史参考,并且仅供先前的客户使用!
首先安装arduino库
您必须先必须安装 af_motor arduino库,然后才能使用motor shield-这将指导arduino如何与adafruit motor shield对话,但它不是可选!
打开arduino库管理器:
搜索 adafruit motor 库并安装它。确保它是v1电动机屏蔽罩的库。
我们在以下位置也提供了有关arduino库安装的出色教程:http://learn.adafruit.com/adafruit-all-about-arduino-库安装使用
电源使用
本教程适用于现在比较古老的v1电动机护罩。您有可能使用的是v2,请查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。该教程仅供历史参考,并且仅供先前的客户使用!
为直流电动机,电压和电流需求供电电动机需要大量能量,尤其是便宜的电动机,因为它们的效率较低。首先要弄清楚电动机要使用的电压。如果幸运的话,您的电动机带有一些规格。一些小型的业余电动机仅打算以1.5v的电压运行,但6-12v电动机的使用却一样普遍。该屏蔽罩的电机控制器设计为在 4.5v至25v 范围内运行。
most 1.5-3v电动机将无法工作
电流要求:要弄清的第二件事是电动机需要多少电流。该套件随附的电机驱动器芯片旨在为每个电机提供高达600 ma的电流,峰值电流为1.2a。请注意,一旦接近1a,您可能会希望在电机驱动器上放一个散热器,否则会出现热故障,从而可能烧坏芯片。
使用sn754410:某些人使用sn754410电机驱动器芯片是因为它与引脚兼容,具有输出二极管,每个电机可提供1a电流,峰值2a电流。在仔细阅读数据表并与ti技术支持和电源工程师进行讨论之后,看来输出二极管仅设计用于esd保护,并且将其用作反冲保护是一种黑客行为,并且不能保证性能。因此,该套件不随sn754410一起提供,而是使用带有集成反冲保护二极管的l293d。如果您愿意冒险,并且需要额外的流动资金,请随时购买sn754410并更换提供的芯片。
需要更多电源吗?请购买另一组l293d驱动器并将其焊接在板上的顶部(背负式)。瞧,当前功能加倍!您可以在顶部再焊接2个芯片,否则可能不会为您带来很多好处
您不能用9v电池来驱动电动机,因此甚至不浪费时间/电池! 使用大号铅酸或镍氢电池。它还非常建议您设置两个电源(分离电源),一个用于arduino,另一个用于电机。 99%的“怪异电机问题” 是由于共享电源线上的噪声引起的供应和/或没有足够的供应!
如何设置arduino + shield来为电机供电 servos的电源是与arduino使用的相同的5v电压。建议使用小型业余伺服器。如果您想要更好的东西,请切断去往伺服连接器上+的走线,并为您自己的5-6v电源接线!
直流电动机由“高压电源”供电,而不是经过调节的5v电源。请勿将电动机电源连接到5v线。除非您确定自己知道自己在做什么,否则这是一个非常非常糟糕的主意!
可以在两个地方获得电动机的“高压电源”。一个是arduino板上的dc插孔,另一个是屏蔽板上标有 ext_pwr 的2端子块.arduino上的dc插孔具有保护二极管,因此您将无法弄乱如果插入错误的电源,情况可能会变得非常糟糕。但是,屏蔽层上的 ext_pwr端子没有保护二极管(出于相当充分的理由)。请小心不要将其向后插入,否则您将破坏电机护罩和/或arduino!
这是它的工作方式:
如果您想要一个为arduino和电机提供单个dc电源,只需将其插入arduino的dc插孔或屏蔽板上的2针pwr_ext模块。将电源跳线放在电动机的护罩上。
如果您有diecimila arduino,请将arduino电源跳线设置为ext。
请注意,如果电池电源无法提供恒定的电源,您可能会遇到arduino重置问题,但这不是建议您为电机项目供电的方法
如果您想让 arduino的usb电源关闭,而电机的电源是直流电源,插入usb电缆。然后将电动机电源连接到屏蔽板上的pwr_extblock。请勿将跳线放在防护罩上。这是为电机项目供电的建议方法
(如果您有diecimila arduino,请不要忘记将arduino电源跳线设置为usb。如果您有diecimila,则可以交替执行以下操作:将dc电源插入
如果您要 2个用于arduino和电机的独立直流电源。请插入arduino的电源插入dc插孔,然后将电动机电源连接到pwr_ext块。确保将跳线从电动机护罩上卸下。
如果您有diecimila arduino,请将arduino跳线设置为ext。这是为电动机项目供电的建议方法
无论哪种方式,如果要使用直流电动机/步进系统,电动机的护罩led均应点亮,指示电动机功率良好
使用rc伺服系统
本教程适用于现在比较古老的v1电动机防护罩。您有可能使用的是v2,请查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。该教程仅供历史参考,并且仅供先前的客户使用!
业余伺服器是进行电动机控制的最简单方法。它们具有3针0.1英寸母头连接,带+ 5v,接地和信号输入。电动机屏蔽罩将16位pwm输出线简单地引出到两个3针头,因此轻松实现插上电源即可使用,因为9v电池可持续使用几分钟以上。
使用板载pwm的好处是它非常精确,并且可以在您可以使用内置的 servo 库
使用伺服器很简单,请阅读arduino官方文档以了解如何使用它们,并在ide中查看示例伺服草图。/p》 servos的电源来自arduino的板载5v re直接从arduino上的usb或dc电源插孔供电的gulator。如果需要外部电源,请在伺服引脚下方(在v1.2板上)切割走线,并直接连接5v或6v直流电源。高级用户可以使用外部电源,因为您可能会由于不正确地连接电源而意外损坏伺服器!
将外部电源接头用于伺服时,请注意接头引脚的底部不要接触arduino上的金属usb端口外壳。外壳上有一条胶带可以防止短路。
使用步进电机
本教程适用于现在比较古老的v1电动机防护罩。您有可能使用的是v2,请查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。该教程仅供历史参考,并且仅供先前的客户使用!
步进电机非常适合(半)精确控制,非常适合许多机器人和cnc项目。该电机护罩最多可支持2个步进电机。对于双极和单极电动机,该库的工作原理相同。
对于单极电动机:要连接步进电机,首先要弄清楚哪些引脚连接到哪个线圈,以及哪个引脚是中心抽头。如果它是5线制电动机,则两个线圈的中心抽头将为1。在线上有很多关于如何反向工程线圈引出线的教程。中心抽头应同时连接到电机屏蔽输出块的gnd端子上。那么线圈1应该连接到一个电动机端口(例如m1或m3),线圈2应该连接到另一个电动机端口(m2或m4)。
对于双极型电动机:与单极电动机一样,除了没有5号线接地。代码完全相同。
运行步进器比运行直流电动机要复杂得多,但仍然非常简单
请确保您 #include
使用 af_stepper( steps )创建步进电机对象, stepper# )来设置电动机的h桥和闩锁。 步长 表示电机每转多少步。 7.5度/步的电动机具有360/7.5 = 48步。 stepper# 是它连接到的端口。如果使用的是m1和m2,则为端口1。如果使用的是m3和m4,则为端口2
使用 setspeed( rpm 》),其中 rpm 是您希望步进电机每分钟转多少转。
然后每次您希望电动机转移动,调用 step( #steps , direction , steptype )过程。 #步骤 是您要执行的步骤。 direction 是 forward 或 backward ,步长类型是 single,double。交错或 microstep 。
“单”表示单线圈激活,“双”表示一次激活2个线圈(以获得更高的扭矩),“交错”表示交替进行在单倍和两倍之间切换,以获得两倍的分辨率(但当然是速度的一半)。 “微步进”是一种方法,其中对线圈进行pwm调制以在各步之间产生平滑运动。资源页面中提供了有关这些不同步进方法的优缺点的大量信息。
您可以使用所需的任何步进方法,将其“实时”更改为您可能需要最小的功率,更大的扭矩或
默认情况下,电机在完成步进后将“保持”位置。如果要释放所有线圈以使其自由旋转,请调用 release()
步进命令处于“阻塞”状态,一旦完成,这些命令将返回。
由于步进命令“ block”-每次要移动步进电机时,都必须指示它们。如果您想拥有更多的“后台任务”步进器控件,请查看accelstepper库(与afmotor的安装方式类似),其中提供了一些示例,这些示例可同时控制两个步进器,并具有不同的加速度
下载:文件
复制代码
#include
af_stepper motor(48, 2);
void setup() {
serial.begin(9600); // set up serial library at 9600 bps
serial.println(“stepper test!”);
motor.setspeed(10); // 10 rpm
motor.step(100, forward, single);
motor.release();
delay(1000);
}
void loop() {
motor.step(100, forward, single);
motor.step(100, backward, single);
motor.step(100, forward, double);
motor.step(100, backward, double);
motor.step(100, forward, interleave);
motor.step(100, backward, interleave);
motor.step(100, forward, microstep);
motor.step(100, backward, microstep);
} #include
af_stepper motor(48, 2);
void setup() {
serial.begin(9600); // set up serial library at 9600 bps
serial.println(“stepper test!”);
motor.setspeed(10); // 10 rpm
motor.step(100, forward, single);
motor.release();
delay(1000);
}
void loop() {
motor.step(100, forward, single);
motor.step(100, backward, single);
motor.step(100, forward, double);
motor.step(100, backward, double);
motor.step(100, forward, interleave);
motor.step(100, backward, interleave);
motor.step(100, forward, microstep);
motor.step(100, backward, microstep);
}
使用直流电动机
本教程适用于现在古老的v1电动机防护罩。您有可能使用的是v2,请查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。该教程仅供历史参考,并且仅供先前的客户使用!
直流电动机用于各种机器人项目。
电动机护罩可以双向驱动多达4个直流电动机。这意味着它们可以向前和向后驱动。使用高质量的内置pwm,速度也可以以0.5%的增量变化。这意味着速度非常平稳且不会变化!
请注意,h桥芯片不适合驱动超过0.6a的负载或超过1.2a的峰值,因此对于 small 马达。检查数据表中有关电动机的信息,以验证其正常。
要连接电动机,只需将两根导线焊接到端子上,然后将它们连接到 m1,m2,m3, strong》或 m4 。然后在草图中按照以下步骤操作
确保您#include
使用 af_dcmotor( motor#,频率),以设置电动机的h桥和闩锁。构造函数有两个参数。
第一个是电动机连接到的端口, 1、2、3 或 4 。
频率 是速度控制信号的速度。
对于电动机1和2,您可以选择 motor12_64khz , motor12_8khz , motor12_2khz 或 motor12_1khz 。诸如64khz的高速不会被听见,但是诸如1khz的低速将消耗更少的功率。电动机3和4只能以1khz运行,并且将忽略给定的任何设置
然后您可以使用 setspeed( speed )设置电动机的速度》 速度 的范围是0(停止)到255(全速)。您可以随时设置速度。
要运行电动机,请调用 run( direction ),其中 direction 是 forward , backward 或 release 。当然,arduino实际上并不知道电机是否“前进”。 ‘或’向后‘,因此,如果要更改其认为向前的方式,只需将电动机和屏蔽层之间的两根导线互换即可。
下载:文件
复制代码
#include
af_dcmotor motor(2, motor12_64khz); // create motor #2, 64khz pwm
void setup() {
serial.begin(9600); // set up serial library at 9600 bps
serial.println(“motor test!”);
motor.setspeed(200); // set the speed to 200/255
}
void loop() {
serial.print(“tick”);
motor.run(forward); // turn it on going forward
delay(1000);
serial.print(“tock”);
motor.run(backward); // the other way
delay(1000);
serial.print(“tack”);
motor.run(release); // stopped
delay(1000);
} #include
af_dcmotor motor(2, motor12_64khz); // create motor #2, 64khz pwm
void setup() {
serial.begin(9600); // set up serial library at 9600 bps
serial.println(“motor test!”);
motor.setspeed(200); // set the speed to 200/255
}
void loop() {
serial.print(“tick”);
motor.run(forward); // turn it on going forward
delay(1000);
serial.print(“tock”);
motor.run(backward); // the other way
delay(1000);
serial.print(“tack”);
motor.run(release); // stopped
delay(1000);
}
af_dcmotor类
本教程适用于现在古老的v1电动机防护罩。您有可能使用的是v2,请查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。该教程仅供历史参考,并且仅供先前的客户使用!
af_dcmotor类可提供速度与adafruit motor shield配合使用时,最多可控制四个直流电动机的方向和方向。要在草图中使用它,必须首先在草图的开头添加以下行:
下载:文件
复制代码
#include #include
af_dcmotor 电动机名称(端口号,频率)
这是直流电动机的构造函数。为草图中的每个电动机调用一次此构造函数。每个电动机实例的名称必须与下面的示例中的名称不同。
参数:
端口号-选择电机将连接到电机控制器的哪个通道(1-4)
频率-选择pwm频率。如果未指定频率,则默认使用1khz。
通道1和2的频率为:
motor12_64khz
motor12_8khz
motor12_2khz
motor12_1khz
通道3和4的频率为:
motor34_64khz
motor34_8khz
motor34_1khz
示例:
下载:文件
复制代码
af_dcmotor motor4(4); // define motor on channel 4 with 1khz default pwm
af_dcmotor left_motor(1, motor12_64khz); // define motor on channel 1 with 64khz pwm af_dcmotor motor4(4); // define motor on channel 4 with 1khz default pwm
af_dcmotor left_motor(1, motor12_64khz); // define motor on channel 1 with 64khz pwm
注意:较高的频率将产生较小的听觉嗡嗡声,但可能会导致某些电动机的转矩降低。
setspeed( speed )
设置电动机的速度。
参数:
速度-“速度”的有效值在0到255之间,其中0处于关闭状态,255为全油门。
示例:
注意 : dc电机响应通常不是线性的,因此实际rpm不一定与编程速度成正比。
运行( cmd )
设置电动机的运行模式。
参数:
cmd -电动机所需的运行模式
cmd的有效值为:
forward -向前运行(实际旋转方向取决于电动机接线)
backward -向后运行(旋转将与正向相反)
释放-停止电动机。这会从电动机上断电,等效于setspeed(0)。电动机的防护罩没有实现动态破坏,因此电动机可能需要一些时间才能旋转
示例:
下载:文件
复制代码
motor.run(forward);
delay(1000); // run forward for 1 second
motor.run(release);
delay(100); // ’coast‘ for 1/10 second
motor.run(backwards); // run in reverse motor.run(forward);
delay(1000); // run forward for 1 second
motor.run(release);
delay(100); // ’coast‘ for 1/10 second
motor.run(backwards); // run in reverse
af_stepper类
本教程适用于现在古老的v1电动机护罩。您有可能使用的是v2,请查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。该教程仅供历史参考,并且仅供先前的客户使用!
af_stepper类提供单个与adafruit motor shield配合使用时,最多可对2个步进电机进行多步控制。要在草图中使用它,必须首先在草图的开头添加以下行:
下载:文件
复制代码
#include #include
af_stepper steppername ( steps , portnumber ) af_stepper构造函数定义了步进电机。为草图中的每个步进电机调用一次。每个步进电机实例必须具有唯一的名称,如下例所示。
参数:
steps -声明步数
num -声明如何将电动机连接到屏蔽层。
“ num”的有效值是1(通道1和2)和2(通道3和4)。
示例:
下载:文件
复制代码
af_stepper stepper1(48, 1); // a 48-step-per-revolution motor on channels 1 & 2
af_stepper stepper2(200, 2); // a 200-step-per-revolution motor on channels 3 & 4 af_stepper stepper1(48, 1); // a 48-step-per-revolution motor on channels 1 & 2
af_stepper stepper2(200, 2); // a 200-step-per-revolution motor on channels 3 & 4
step(步,方向,样式)步进电动机。
参数:
步数-转向的步数
方向-旋转方向( forward 或向后)
样式-步进样式:
“样式”的有效值为:
单个-一个线圈i一次通电。
双重-一次通电两个线圈以获得更大的扭矩。
交错-交替在单打和双打之间创建半步。这样可以使运行更平稳,但是由于额外的半步,速度也降低了一半。
microstep -相邻的线圈上下倾斜以形成一个每个完整步骤之间的“微步”数量。这样可以实现更好的分辨率和更平滑的旋转,但是会损失扭矩。
注意:步骤是同步命令,直到返回为止所有步骤均已完成。对于两个电动机的同时运动,必须处理两个电动机的步进定时,并使用下面的“ onestep()”函数。
下载:文件
复制代码
stepper1.step(100, forward, double); // 100 steps forward using double coil stepping
stepper2.step(100, backward, microstep); // 100 steps backward using double microstepping stepper1.step(100, forward, double); // 100 steps forward using double coil stepping
stepper2.step(100, backward, microstep); // 100 steps backward using double microstepping
setspeed( rpmspeed ) 设置电动机的速度
参数:
速度-以rpm为单位的速度
注意:最终的步进速度基于构造函数中的“ steps”参数。如果这与您的电动机的步数不匹配,那么您的实际速度也会关闭。
示例:
下载:文件
复制代码
stepper1.setspeed(10); // set motor 1 speed to 10 rpm
stepper2.setspeed(30); // set motor 2 speed to 30 rpm stepper1.setspeed(10); // set motor 1 speed to 10 rpm
stepper2.setspeed(30); // set motor 2 speed to 30 rpm
》
onestep(方向,步进样式)单步电动机。
参数:
方向-旋转方向( forward 或 backward )
stepstyle -步进样式:
“ style”的有效值为:
单次-一次通电一个线圈。
double -一次通电两个线圈
interleave -在单双之间交替,以在两者之间建立半步。这样可以使运行更平稳,但是由于额外的半步,速度也降低了一半。
microstep -相邻的线圈上下倾斜以形成一个每个完整步骤之间的“微步”数量。这样可以实现更好的分辨率和更平滑的旋转,但是会损失扭矩。
示例:
下载:文件
复制代码
stepper1.onestep(forward, double); // take one step forward using double coil stepping stepper1.onestep(forward, double); // take one step forward using double coil stepping
release()释放电机上的保持扭矩。这样可以减少热量和电流需求,但电动机不会主动抵抗旋转。
示例:
下载:文件
复制代码
stepper1.release(); // stop rotation and turn off holding torque. stepper1.release(); // stop rotation and turn off holding torque.
资源
汽车创意和教程
维基百科上有很多有关步进电机的信息
关于步进电机类型的琼斯
jason关于对步进电机引线的反向工程
》
下载
本教程适用于现在古老的v1电动机护罩。您有可能使用的是v2,请查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。该教程仅供历史参考,并且仅供先前的客户使用!
示意图和布局
您可以获取最新的schematic layout文件(来自github的eaglecad格式。单击顶部顶部的 zip下载按钮以下载整个zip。
固件
accelstepper库,带有afmotor支持,该库允许进行高级步进控制,包括加速和加速取消和并发的步进控制!您仍然需要上方的afmotor!
要安装,请单击页面中间的下载,选择下载为 zip 并解压缩该文件夹。
将该文件夹重命名为 accelstepper (检查是否已重命名)文件夹包含.cpp和.h文件),然后安装到 arduinosketches/libraries 文件夹中。有关如何使用和安装库的信息,请参见我们的教程!
具有微步进支持的arduino stepper/servo软件库。通过arduino库管理器安装此库。
打开arduino库管理器:
搜索 adafruit motor shield 库并安装
海目星激光发布三季度业绩公告
银联回应“隔空盗刷”: 损失将获全额赔付
Cisco与Ericsson合作是因为合并太难?
TVS管的应用介绍
电容器故障的预防措施
Adafruit电动机防护罩的制作
电子整机系统设计:你仍然仅关注“点”工具吗
汽车电子常见的电子系统盘点分析
中国电信正式公布了巡视整改进展情况
LTC6802与MCU的连接器电路设计详解
联想手机的辉煌已成为过去,国产手机品牌秀创新科技与推动出货量并重
溶解氧传感器原理及应用
关于Alpha 机器人的性能分析和介绍
ntp同步原理和时钟层级
ASIC的设计与PCBA布局的设计相比
DMVST-Net如何巧妙处理复杂的交通问题
SDWAN和负载均衡的关系
紫光FPGA解决口罩难题!助力口罩全速生产
京东方在LCD、OLED面板领域增收不增利面板价格大幅下跌是主要原因
丰田RAV4车机拆解