亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

如何使用ServoTimer2库(简单解释)伺服扫描

组件和用品

舵机(Tower Pro MG996R)
× 1
Arduino UNO
× 1
跳线(通用)
× 1
UTSOURCE 电子零件
× 1

关于这个项目

简介

我最近一直在尝试制作一个人形机器人——这意味着要处理伺服电机。在我尝试让机器人 TALK 之前一切正常。当我需要使用 TMRpcm 库时。但是有一些图书馆像

#TMRpcm.h#VirtualWire.h 

是使用 Arduino 的 Timer1 的库。看起来你不能同时使用两个设备,它们都使用相同的计时器......所以,如果我的机器人说话 - 伺服系统不起作用。因为 Servo.h 和 TMRpcm 都适用于 Arduino TImer1。这是一团糟。如果你想让它们都工作,你必须使用另一个伺服器库。哪个是 ServoTimer2 库?这在 Arduino 上使用 Timer2 ......不幸的是,在互联网上我没有找到任何教程来了解这个 ServoTimer2 库的实际工作原理,以及如何在代码中使用它。所以,我决定制作一个教程,以便像我这样的人可以更好地理解。我们将在这个库中使用一个伺服电机并制作一个简单的伺服扫描代码

您可以观看视频以更好地理解。

第 1 步:零件和组装:

主要部分是伺服电机。

我用的是微伺服sg90,任何型号都可以。

然后像图2一样取一个伺服臂并将其粘在硬纸板上(这只是为了获得良好的度数可见性)然后将臂添加到伺服电机中,如图4所示。

第 2 步:下载 ServoTimer2 库并将其添加到 Arduino

首先,您必须从这里下载库 https://github.com/nabontra/ServoTimer2 并将其粘贴到 Arduino 库文件夹中。

然后转到草图>包含库>从库文件夹中添加zip.file。

现在你可以走了。

第 3 步:构建简单电路

这是最简单的部分

  • 伺服红线连接到 Arduino vcc (5v)
  • 灰色 - 接地
  • 橙色-数字 6

第 4 步:代码。

在了解 ServoTimer2 代码之前,让我们回顾一下 Servo.h 库扫描。

(电机将从0度旋转到90度-等待1秒-然后旋转到180度-等待1秒)

#includeServoservo1;void setup() {servo1.attach(6); // 把你的设置代码放在这里,运行一次}void loop() { // 把你的主要代码放在这里,重复运行:servo1.write(0);delay(1000);servo1.write(90);delay( 1000);servo1.write(180);delay(1000);} 

正如你在这个库中看到的那样,如果我们希望将伺服旋转到某个位置,我们只需要写下度数,伺服就可以了。但是在 ServoTimer2 库中,我们必须写入伺服的脉宽,伺服会使用它移动到那个位置。最常见的 1500 表示 90 度。最大脉冲宽度为 2250,最小脉冲宽度为 750。这意味着 750 为 0 度,2250 为 180 度。但是让我告诉你,这因伺服而异。只需发送您的值,看看会发生什么。别担心,这不会稍微破坏或损坏您的伺服电机。

现在我将为 ServoTimer 2 编写相同的代码,因此您将了解实际的差异。

#include"ServoTimer2.h"ServoTimer2servo1;void setup() {servo1.attach(6); }void loop() { // 把你的主要代码放在这里,重复运行:servo1.write(750); //0度延迟的最小脉冲宽度(1000);servo1.write(1500); //90度的脉冲宽度delay(1000);servo1.write(2250); //最大脉冲宽度大约 180 度延迟(1000);} 

现在只需为 arduino 供电,然后用度数刻度查看伺服旋转的值。通过这样做,您可以使您的项目顺利进行。快乐制作.o 2700 完成它。

第 5 步:最后启动 Arduino 并进行实验

现在只需为 arduino 供电,然后用度数刻度查看伺服旋转的值。购买这样做,您可以使您的项目顺利进行。快乐制作。

代码

  • 伺服seep.code
  • ServoTimer2.sweep.code
伺服seep.codeC/C++
#include伺服servo1;void setup() {servo1.attach(6); // 把你的设置代码放在这里,运行一次}void loop() { // 把你的主要代码放在这里,重复运行:servo1.write(0);delay(1000);servo1.write(90);delay( 1000);servo1.write(180);delay(1000);}
ServoTimer2.sweep.codeC/C++
#include"ServoTimer2.h"ServoTimer2servo1;void setup() {servo1.attach(6); }void loop() { // 把你的主要代码放在这里,重复运行:servo1.write(750); //0度延迟的最小脉冲宽度(1000);servo1.write(1500); //90度的脉冲宽度延迟(1000);servo1.write(2250); //最大脉冲宽度大约 180 度延迟 (1000);}

示意图

ServoTimer2.sweep.code
https://github.com/ashraf-minhaj/Arduino-ServoTimer2-basic-sweep-/tree/code-sweep

制造工艺

  1. 我们如何使用钼?
  2. 如何在 VHDL 中使用函数
  3. 如何在 VHDL 中使用过程
  4. 如何制作 Arduino+Raspberry Pi 机器人平台
  5. 简单的 Pi 机器人
  6. 如何制作玻璃纤维
  7. C 库中的 realloc() 函数:如何使用?语法和示例
  8. C 库中的 free() 函数:如何使用?通过示例学习
  9. 使用热敏电阻有多容易?!
  10. 如何在 Solidworks 中制作剖面动画
  11. 如何制作原型
  12. 如何使用刀具磨床