0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Adafruit电动机防护罩的制作

454398 来源:网络整理 作者:网络整理 2019-11-27 11:04 次阅读

概述

教程适用于现在古老的V1电动机护罩。您有可能使用的是V2,请查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。该教程仅供历史参考,并且仅供先前的客户使用!

Adafruit电动机防护罩的制作

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 库并安装

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电动机
    +关注

    关注

    74

    文章

    4101

    浏览量

    96046
收藏 人收藏

    评论

    相关推荐

    高效电动机与传统电动机的区别

    随着全球能源危机的加剧和环境保护意识的提高,高效节能技术越来越受到重视。 1. 能效标准 传统电动机 :传统电动机的设计和制造标准往往没有严格的能效要求,因此在实际运行中,它们的效率可能低于现代高效
    的头像 发表于 11-27 09:37 69次阅读

    力矩电动机是什么?它有什么应用原理?

    力矩电动机是一种特殊类型的电动机,它主要用于产生较大的力矩,而不需要产生高速旋转。这种电动机在许多工业和自动化应用中非常有用,例如在机器人、输送带、起重机和其他需要精确控制力矩的场合。力矩电动
    的头像 发表于 10-25 09:08 418次阅读

    浅析感应电动机和异步电动机的主要区别是什么?

    感应电动机和异步电动机是两种常见的交流电动机,它们在结构和工作原理上有一定的相似性,但也存在一些关键的区别。以下是对这两种电动机的主要区别的介绍: 定义和工作原理: 感应
    的头像 发表于 10-22 10:22 257次阅读

    电动机线圈匝数

    零基础小白请教各位大神: 电动机计算公式里的 K常数 2p ✓(2)是啥意思啊
    发表于 07-25 16:20

    电动机绕组的定义与作用

    电动机绕组,作为电动机的核心组成部分,对电动机的性能和运行效率具有至关重要的作用。本文将详细探讨电动机绕组的定义、结构、作用及其在不同类型电动机
    的头像 发表于 06-18 14:59 1742次阅读

    绕线式电动机和鼠笼式电动机的区别

    电动机作为现代工业中不可或缺的动力设备,其种类繁多,各具特色。其中,绕线式电动机和鼠笼式电动机作为异步电动机的两大主要类型,在工农业生产及国民经济各部门中得到了广泛应用。然而,这两种
    的头像 发表于 06-05 16:42 4747次阅读

    EMC与EMI滤波器:电子设备的“电磁防护罩

    深圳比创达电子|EMC与EMI滤波器:电子设备的“电磁防护罩
    的头像 发表于 05-29 11:44 519次阅读

    三相异步电动机的转速与电动机的什么无关

    三相异步电动机的转速与电动机的设计无关。 在分析三相异步电动机的转速与电动机设计之间的关系之前,我们需要先了解一下什么是三相异步电动机。三相
    的头像 发表于 02-26 10:03 799次阅读

    电动机的空载电流是指什么呢?

    电动机的空载电流是指什么呢? 电动机的空载电流是指在无负载情况下,电动机运行时所消耗的电流。通常情况下,当电动机没有机械负荷时,其输出功率为零,但仍然需要一定的电流来维持旋转和运行的必
    的头像 发表于 02-05 15:51 2978次阅读

    电动机保护器的作用 电动机保护器的脱扣级别如何设置

    电动机保护器是一种用于保护电动机的重要设备,它在电动机运行过程中起到监测和控制的作用,可以保护电动机免受过载、短路、欠载、失电、相序错乱等故障的损害。本文将从
    的头像 发表于 02-02 11:37 2163次阅读

    电动机外壳防护方式

    电动机作为一种常见的动力设备,其外壳的防护对于保护电机内部的电气设备以及工作环境的安全至关重要。本文将详细介绍电动机外壳的防护方式,包括封闭型外壳、
    的头像 发表于 01-04 10:51 1226次阅读

    同步电动机和异步电动机故障的原因分析

    同步电动机   同步电动机故障原因分析如下:   (1)阻尼绕组断路或连接处接触不良,一般是因为阻尼环和阻尼条由于长期受热,使焊接部分松脱,或阻尼环连接处的连接螺丝松动造成的。   (2)运行中振动
    发表于 12-21 07:28

    永磁同步电动机与直流无刷电动机有何异同

    永磁同步电动机和直流无刷电动机是现代电动机中应用较广泛的两种类型。虽然它们在结构上有所不同,但在工作原理和应用领域上存在许多相似之处。接下来,我们将详细介绍永磁同步电动机和直流无刷
    的头像 发表于 12-20 09:11 2970次阅读

    高压电动机短路电流如何计算的?

    高压电动机短路电流如何计算的,看到帖子说高压电动机受潮可以加380v交流电烘干,需要计算高压电动机的短路电流比较,大虾们给个意见昂
    发表于 12-11 07:36

    改变电动机的下线方法对电动机的影响是什么?

    修复电动机,重新下线时绕组模式不变,但下线的方法改变(绕组的头和尾跨距改变)或正下·反下。对电机的正常工作有影响吗??拜求各位高手!!
    发表于 12-11 06:44