DesignSpark Electrical Logolinkedin
菜单 搜寻
提问问题

以Arduino控制的卷线机

使用Arduino马达扩展板和步进马达将线缠绕到线轴上。

在 Arduino 步进马达控制的文章当中﹐我写了什么是步进马达﹐它如何运作以及不同类型的步进马达;我把步进马达与Arduino马达扩展板连接在一起﹐并已安装在Arduino Uno板上﹐有一个基本的程序运行。

我在这篇中用到的是齿轮傅动的马达﹐所以我不能随意地把它调较至我在这专案中所需要的那么快。在这篇文章中﹐我会介绍使用不同的步进马达去把线缠绕在木制线轴上﹐并且还添加了可以控制缠绕多少线的开关。

马达最大速度

我连接了新的步进马达﹐以一个电线接到马达板上的每个通道﹐并上传了与上次工作相同的草图。每一转都相应地改变了新的马达的草图﹐以及一切都似乎正常运作。

新的马达似乎比我上一篇文章中所使用的步进马达走得更快。我认为这是因为这个马达不是齿轮传动﹐然而,虽然它比以前更快﹐但它仍然很慢。我开始从5到10的范围去改变草图的速度﹐这使得旋转更快更平滑﹐但这马达似乎可以走得更快。我把速度提高到50﹐并重复运作﹐但它似乎能够再更快。

我继续增加速度﹐直至达到200 – 这相当的快。我想确定它在到达最大速度之前可以驱动得有多快。一旦到达300的速度﹐马达就停止了转动﹐所以我认为最高速度必须在200和300之间的某一点。我试了几个中间速度﹐看看实际的最大速度是多少:

250 – 运作良好
275 – 马达移动﹐但没有完成一个完整的旋转﹐只有约20度。
260 – 运作良好
265 – 运作﹐但只完成了180度的旋转

在这一点上﹐我得出了结论﹐这个马达的最高速度必须是265﹐但为了安全﹐我决定为250。由于我知道这马达的最高速度是多少﹐当我想设置不同数量的旋转绕线时﹐这将会是一个帮助。

确定开关引脚

我选择用于这个专案的开关是SPST﹐瞬态微型按钮开关﹐其中有一个LED。它有四个引脚:两个用于LED﹐两个用于开关。在这些开关的数据表上有标记﹐指示哪些引脚属于LED和开关﹐然而﹐当我查看开关的下侧时都看不到这些标记。

我发现开关触点通过使用万用表设置为连续性﹐按下和松开开关。

我接下来会为每个颜色的LED的额定电压而再次参考数据表﹐这使我可以为这些LED找到阳极和阴极。我有红色和绿色的开关﹐所以我使用台式电源并设置红色开关的电压为2.1v﹐电流限制设置为20mA以及绿色开关的电压为1.95v﹐电流限制设置为20mA。当LED亮起时﹐我知道LED的引脚的正确方向﹐并在阳极上放置一个标记﹐当它在之后接线时能更清晰。 LED引脚是四个中较长的两个。

因为我已经确定了引脚﹐我接下来需要找到两个自由输入的按钮和两个输出为Arduino上的LED。从看到Arduino马达屏蔽板的原理图﹐我可以看到引脚10,7,4和2是自由的﹐以及两个橙色TinkerKit连接(引脚5和6)﹐引脚1(Tx)和引脚0(Rx )。我决定使用引脚10和4作为按钮的输入﹐7和2作为LED的输出。除了LED所需的相应电阻之外﹐我在输入端添加了上拉电阻﹐因此这些电阻不会处于浮动状态。

首先﹐我连接了一个开关和LED来检查我的接线是否正确﹐然后将这些添加到草图。下面的原理图显示了我如何连接一个按钮和LED。

在修复了几个代码上的初始小错误后﹐我设法令这运转﹐然后连接第二个按钮和LED,像这样:

这里是电路的面包板视图。

制作状态机器

当按下按钮时﹐LED应该会亮起和马达旋转四圈。这发生了﹐它没有按预期般运作﹐并且当按钮被激活时﹐按钮在高位(红色椭圆形)﹐而我想要在按钮按下时激活(绿色椭圆形)。在跟一个同事谈过后﹐我才知道我需要在代码中加入一个状态机器 (state machine)。

状态机器是“可以根据先决条件和输入的当前值而决定稳定条件的其中一个设定数的一个装置”。这个想法是﹐如果按钮的当前状态为低并且之前为高﹐则亮起LED并旋转马达。

当我实施了状态机器﹐我有想要的原型工作﹐并可以继续设计一块用来安装Arduino﹐马达和线轴的板。

使设计壮大

我想做一些比面包板设计更长久的东西﹐所以我使用了一个Arduino原型扩展板来做﹐而它只需要安装在Uno板上的马达扩展板。当我确定了开关和电阻连接在扩展板上的位置﹐我会把所有相关的元件焊接上去﹐然后继续设计安装板。这比面包板版本的电路更紧凑和整洁﹐这也意味着我可以将选择好的开关直接连接到扩展板。

3D设计

我用了Inkscape设计安装部件的亚克力板﹐之后会使用激光切割出来﹐然后加热并弯曲前面来安装按钮。

当设计好板后﹐我使用中密度纤维板中切割了一个原型﹐以确保所有位置都是适合的以及所有孔的尺寸都是正确的。但很可惜﹐因为原型是由中密度纤维板制成﹐我无法弯曲面板的前面﹐所以我打算使用亚克力。

原型上的所有位置都很适合﹐而且看起来与我想像的很相似﹐除了不能弯曲的中密度纤维板外。由于这个设计没有问题﹐我会使用3mm透明无色的亚克力切割安装基座并弯曲面板前端以安装开关。

接下来我可以组装开关﹐在四个引脚中﹐我把LED的阴极和一个开关引脚连接在一起﹐从而形成一个公共GND﹐然后把LED阳极连接到Arduino原型扩展板上的引脚。这是为了与原型扩展板的六条引线连接的两个开关而做的。

Arduino板﹐步进马达和线梭都固定到板上﹐以及把开关安装到面板上。当一切都完成后﹐我测试了所有的东西﹐而它完全符合预期地运作。

未来修订

在安装板的未来设计中﹐我会更改一些东西。第一个是Arduino板的方位﹐因为它们的定向而令插座和USB插座至右手边的电缆的位置相当挤压﹐并且没有足够的空间把Arduino连接到USB﹐无需先从安装板上拧下。替代方法是在Arduino和步进马达之间留出更多的间隙﹐但是我认为除非间隙相当大﹐否则你仍然需要很小心地以手指进入间隙将Arduino连接到USB﹐很可惜﹐我没有在原型安装板意识到这个问题。

其他我唯一想改变的事情就是线轴:因为它有点松散﹐当它在中密度纤维板周围卷线时也相当宽松。我认为这是因为线轴上没有足够的阻力﹐以及当马达由于动量而停止﹐它还会继续卷绕线。我认为这可以通过把线轴放置得更加远离马达或者在亚克力板增加更多不同高度的穿线孔﹐以增加阻力到线轴。

除了这两个小的改变﹐我很满意Arduino控制卷线机的方式!我认为透明的亚克力真的很好看以及很好地安装所有的组件。我在这个过程中也学到了很多关于步进马达的事﹐从几乎不知道任何关于它们的事到理解代码如何运作和使用arduino马达扩展板﹐我对这个专案的成果感到满意。

Trainee Electronics Engineer, currently studying towards my degree in Electronic Engineering at the University of Hudderfsield. Completed my HND in Electrical & Electronic Engineering from Bradford College 2017. Love to try new things and build interesting projects!

26 Jun 2017, 9:32