教程:如何使用Arduino UNO控制Tower Pro SG90伺服

我写本教程的目的是向您展示如何使用Arduino UNO板控制SG90 9G微型伺服电机的方向,位置和速度。我知道,如果您是一名具有机器人经验的业余爱好者,则很容易控制此伺服电机,但是像往常一样,您在该领域不会错过任何东西。即使这样,如果本教程对您来说无聊,这里还是Arduino UNO廉价项目的列表。

教程:如何使用Arduino UNO控制Tower Pro SG90伺服

教程:如何使用Arduino UNO控制Tower Pro SG90伺服

教程的组织方式:

  1. 我将首先简要介绍控制伺服电机所需的零件。
  2. 然后,我对Tower Pro SG90伺服器进行了概述。
  3. 我将伺服电机分解为零件,向您展示零件;
  4. 最后,我去了练习部分,向您展示了如何连接TowerPro SG90,编写Arduino草图以及一些有关伺服电机的技巧。

伺服电机可以精确控制角位置,速度和加速度。它’s like you’在您的汽车方向盘上。您可以精确控制汽车的速度和方向。

可以非常严格地控制角位置,速度和加速度’必须在没有用于位置反馈的传感器的情况下进行。电机旋转时,此传感器会发出警报。但是即使如此,还是有一些更复杂的东西可以控制伺服电机的所有阶段。它’是一个专用控制器,可使伺服器内的微小物体以军事精度移动。

反馈传感器,控制器和电动机。一世’m just asking –为什么需要伺服电机?如果需要控制对象的位置,旋转传感器,移动手臂和腿部,驱动轮和轨道等,这些伺服器必不可少。

1.所需硬件

这不是一个复杂的项目,但是我们仍然需要一些部分。幸运的是,所有组件都很便宜,并且可以在全球范围内使用。

要控制TowerPro SG90伺服器,您将需要以下部件:

2. 的Tower Pro SG90 伺服

Tower Pro SG90伺服是市场上最便宜的伺服电机之一。即使’便宜,不到5美元,唐’尝试用手旋转伺服电机,因为这可能会损坏电机。

让’简要概述SG90规格。

例如,您需要扭矩来控制物体的位置,这个重量为0.32盎司(9.0克)的小盒子可以在4.8V电压下提供25.0盎司(1.80千克-厘米)的扭矩。在4.8V时,伺服速度为0.12秒/ 60°。所有这些规格对于这个小塑料盒来说确实令人印象深刻。好吧,还有其他高端伺服器比SG90伺服器有更多的肌肉,但是这些高端伺服器可以’击败了SG90伺服器的价格。 SG90便宜到足以在它们破裂时扔掉。

3.看一下SG90微型伺服器的内部

内部SG90伺服

内部SG90伺服


在微型伺服器内部,您可以从上图中找到零件。顶盖装有塑料齿轮,而中盖装有直流电动机,控制器和电位计。

4.如何连接TowerPro SG90,Arduino草图和一些技巧

考虑到您已经有一个Arduino UNO,SG90伺服器和六根线,您的电路应如下所示(加上方案):

Arduino的 SG伺服电机控制架构

Arduino的 SG伺服电机控制架构

Arduino的 SG伺服电机控制电路

Arduino的 SG伺服电机控制电路

这是要注意的事情。伺服电机有三根引线,比直流电机多一根。每根引线都有颜色代码。因此,您必须将棕色线从微型伺服器连接到Arduino的GND引脚。将红色导线从伺服器连接到Arduino上的+ 5V。最后,将橙色线从SG90伺服器连接到Arduino上的数字引脚(引脚9)。

Arduino的使事情变得简单。在本教程中,我将使用直接通过Arduino通过USB供电的SG90伺服器。您也可以这样做。

的Arduino sketch

在下面您可以找到控制伺服的Arduino草图’s方向,电机位置和SG90伺服器的速度。在到达Arduino代码之前,我想写一些关于 文件。该库使我们的生活更轻松。它包含控制SG90伺服器所需的所有功能。

您也可以破解SG 90微型伺服器

SG90微型伺服器可以转动您的机械手。这非常好,因为伺服箱的形状可帮助您将其连接到机器人机箱。但是SG90伺服器的旋转存在问题。它’s关于最大旋转180度的旋转。

在这种情况下,您需要对其进行破解以使其连续旋转。这是一个微妙的操作,需要时间和注意。在进行任何操作之前,请确保您有多余的钱或其他微型伺服器。’re doing this wrong.

这个 本教程逐步向您展示如何破解Tower Pro SG 90微型伺服器以实现连续旋转。

最后,我希望本教程能帮助您学习如何使用Arduino UNO控制Tower Pro SG 90微型伺服器。另外,不要’别忘了在社交网络上分享该教程,以帮助其他人学习控制他们的微型伺服器。

免责声明:此帖子包含会员链接。

27条留言 » Write a comment

  1. 感谢您提供了出色的教程,我做到了,而且效果很好,我正在训练激活arduino uno的伺服mg996R,但没有成功。

    再次感谢你

  2. 很棒的帖子!感谢您的教程。

    附言:代码中有一点错字,您将角度设置为45度,您的注释中说’设置为50。只是一个小错误。 ðŸ™,

  3. 你好
    我尝试用PWM控制伺服电机。我需要一个20ms的周期和900µs至2ms的柔韧性占空比来设置伺服器的方向。我使用的是LPC2148。您可以给我任何ARM新手的建议吗?如果有的话,请给我任何参考代码。
    提前致谢

  4. 伺服周围的(大于/小于)使其被视为html标签,从而消失了。可能只是在chrome(或一般来说是Blink渲染引擎)中,我隐约感觉到这种情况在某些时候已经改变或有所不同。用。。。来代替</>修复(或修复应该自动执行的操作)。

  5. 只是一件小事:我的Arduino IDE v 1.8.5中的include必须是#include(注意大写字母)‘S’),而不是小的‘s’例如。否则,不错的教程!

  6. 我正在使用arduino genuino / uno,但我也有同样的疑问(退出状态1
    Error compiling 对于 board Arduino的 / Genuino Uno .)

  7. 我也有同样的问题

    退出状态1
    Error compiling 对于 board Arduino的 / Genuino Uno .

    • 我有同样的问题,但更改了小写“s” in “servo.h” to an Upper case “S” as “Servo.h”

  8. 我的伺服器昨天在此代码上正常工作,但是今天不再工作了,有人可以帮我吗
    #包括

    伺服伺服;

    虚空 设定(){
    序列号.begin(9600);
    myservo.attach(10);
    //最初必须停止伺服
    myservo.write(90);
    }
    无效循环(){
    //开始顺时针旋转
    //继续进行正确的转弯
    // 延迟(TURN_TIME);
    //停止转弯
    myservo.write(95);
    延迟(3000);
    myservo.write(0);
    延迟(105);
    //等待12h
    // 延迟(10000);
    }

  9. 问题:步进器如何记住它在哪里’s at?
    例如,如果我将其从90度移至100度并转动arduino,则下次启动时是否知道90度在哪里或假定当前位置为90度?

  10. 嗨我’我试图制造一个迷你自动贩卖机,我需要马达。这是我唯一能找到的一种,我剪掉了末端部分,因为我需要直线而不是那个连接器。现在我无法正常工作。我尝试了所有可能的组合以及一个新的9v电池,并且电动机刚刚胜出’旋转。有人知道怎么了吗?救命!

  11. 我的伺服赢了’t不能完整旋转180度,似乎短了5度。一世’尝试在程序中输入185,但没有’没有任何区别。我可以用手将伺服器旋转到其到达的位置。

  12. 我没有运气这是我的错误消息:
    Arduino的:1.8.9(Windows Store 1.8.21.0)(Windows 10),开发板:“Arduino/Genuino Uno”

    构建选项已更改,所有重建
    ServerMoter:7:10:错误:#include期望“FILENAME” or

    #包括 伺服器 //add ” before and after 伺服器

    ^

    退出状态1
    #包括期望“FILENAME” or

    该报告将包含更多信息
    “在编译过程中显示详细输出”
    文件中启用的选项-> Preferences.

发表回覆 卡迪尔·阿尔 取消回复

您的电子邮件地址不会被公开。 必需的地方已做标记 *