Arduino控制MG995/MG996 360舵机连续旋转

这篇具有很好参考价值的文章主要介绍了Arduino控制MG995/MG996 360舵机连续旋转。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Arduino控制MG995/MG996 360舵机连续旋转

参考:

  1. 调试
  2. 从线机器人 - PID控制 - 安卓设置 : 12 步骤(附图) - 指导 (instructables.com)

MG995 舵机

技术参数

将了解MG995舵机。MG995舵机电机是一种舵机电机,可以连续移动,没有任何旋转程度的限制。“360”版本是连续旋转的伺服器,无法控制位置。它只是做你描述的事情。它根本不是真正的“伺服器”。它是一个带有自己控制器的减速电机。

MG996R是MG995伺服的升级版。新的PCB和IC控制系统使其更加精确。
其内部齿轮和电机也进行了升级,以改善死带宽和定心。MG996R伺服具有高定位速度,可精确控制和调节您的项目。工作电压范围为 4.8 V – 7.2 V。

如果您曾经使用过塔式Pro SG90和MG996R等舵机电机,该舵机电机是标准舵机类型,可以使用指定的度角进行控制。可以使用命令myservo.write(degrees);轻松移动舵机电机,然后舵机将移动到该j角度。MG995 舵机在操作方式上有所不同。我尝试多次对Arduino进行编程,以使用Arduino IDE上提供的默认程序控制舵机电机,但它不起作用。

  • 重量:55g
  • 尺寸:40.7×19.7×42.9毫米
  • 失速扭矩:9.4公斤/厘米(4.8伏);11公斤/厘米(6.0伏)
  • 运行速度:0.19秒/60度(4.8v);0.15秒/60度(6.0V)
  • 工作电压:4.8~ 6.6V
  • 齿轮类型:金属齿轮
  • 温度范围:0-55?
  • 伺服插头:JR(适合JR和双叶)
  • 死带宽度:1us

Arduino控制MG995/MG996 360舵机连续旋转

所以,在我研究并寻找如何控制这个连续舵机之后,我找到了驱动这个舵机电机的方法。

正常的闭环定位舵机通过编程来响应脉冲宽度以确定角度:1.0ms 脉冲为位置 0°,1.5ms 脉冲为位置 90°,2.0ms 脉冲为位置 180°。

由于MG995 360是连续旋转的舵机类型,因此必须指定3个条件,即停止位置,左转和右转。在这三个位置中,基本命令是使用“写入微秒”命令。

根据我所做的几个实验,这些条件时的微秒值为:

  • 停止位置 – 写入微秒(1500)
  • 左转 – 写入微秒(1000)
  • 向右转 – 写入微秒(2000)
  • 脉冲在1.0和1.5ms或1.5ms和2.0ms之间,将产生成比例的速度。

Adafruit指出,连续旋转的伺服可能需要某种校准才能使停止真正停止。如果伺服器本身没有偏移调整,您可能需要在软件中进行调整,即完全停止可能是“89°”或“91°”而不是“90°”。没有位置检测,它只是以命令的速度运行开环。

但是,当“扫描”测试程序驱动连续旋转伺服时,脉冲命令被解释为速度而不是位置。因此,旋转速度的命令从1.0ms=全速顺时针,到1.5ms=慢速/停止,到2.0ms=全速逆时针,到1.5ms=慢速/停止,到1.0ms=全速顺时针。舵机实际上正在执行----1.0ms=spin-CW1.5ms=stop2.0ms=spin-CCW1.5ms=stop1.0ms=spin-CW… ----…类似于闭环伺服的行为方式。

布线

为了能够练习上述值,请将舵机连接到您的 Arduino。在其中一个PWM引脚上使用它。PWM 引脚分别为 3、5、6、9、10 和 11。可以在此处查看电路。对于供电,应给MG996R

基本代码

之后,我编写了下面的基本程序代码。请上传以下程序到Arduino Uno。

#include <Servo.h>
Servo servo;

void setup() {
  servo.attach(3);
}

void loop() {
  // rotate counter-clockwise full-speed
  servo.writeMicroseconds(1000);
  delay(2000);

  // rotation stopped
  servo.writeMicroseconds(1500);
  delay(1000);

  // rotate clockwise full-speed
  servo.writeMicroseconds(2000);
  delay(2000);

  // rotation stopped
  servo.writeMicroseconds(1500);
  delay(1000);
}

您可以看到结果。

如何放慢速度

如果在某个位置它不起作用,例如您无法平稳地向左转,您可以尝试将微秒的值更改为略大于或小于 1000 的值。

如果要缓慢执行此操作,则必须将.writeMicroseconds(1500)值更改为较低的值以向左转,更改较高值以向右转。

  • value = 1500 将停止舵机
  • value**<** 1500 将向旋转,值越小向左旋转将变慢
  • value > 1500 将向旋转,值越大,向旋转将变慢

根据我的实验,每个舵机有时的命令与其他舵机略有不同。由此,请为您的舵机校准合适的微秒值。

如何将SG90舵机旋转到特定位置?

技术说明

现在我们将尝试旋转Arduino伺服电机。通常,要驱动伺服电机,最大循环时间为2ms。1°为0ms,1°为5.90ms,2°为180ms。请看下图:

Arduino控制MG995/MG996 360舵机连续旋转

使用串行监视器进行伺服控制,需要将字符转换为int

如果我们发送一个串行监视器值,例如 90,目的是将伺服旋转到 90 度,这将不起作用。因为我们从串行监视器收到的值是 字符 .同时,确定电机位置的值是整数数据类型。

要将数据类型从 char 更改为 int,我们可以使用命令“Serial.parseInt ()”。

#include <Servo.h>

Servo myServo;

void setup() {
  Serial.begin(9600);
  myServo.attach(9);
}

void loop() {
  while (Serial.available() != 0) {
    int val = Serial.parseInt();
    Serial.println(val);
    myServo.write(val);
    delay(5);
  }
}

上述程序已被尝试并成功。文章来源地址https://www.toymoban.com/news/detail-460596.html

到了这里,关于Arduino控制MG995/MG996 360舵机连续旋转的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ESP32使用Arduino驱动180 360度舵机

    180度舵机 360度舵机

    2024年02月16日
    浏览(39)
  • Arduino通过两个按键开关控制舵机转动(含代码)

    两个开关控制舵机转动 在 Arduino 上控制舵机需要使用到一个 Servo 库,可以通过该库来轻松实现对舵机的控制。下面是两个开关通过 Arduino 控制舵机的步骤: 1.连接硬件:将舵机的 VCC 引脚连接到 Arduino 板子的 5V 引脚,GND 引脚连接到 GND 引脚。将舵机的控制引脚(通常是橙色

    2024年02月12日
    浏览(66)
  • 【Proteus仿真】【Arduino单片机】SG90舵机控制

    本项目使用Proteus8仿真Arduino单片机控制器,使用SG90舵机等。 主要功能: 系统运行后,舵机开始运行。 B站演示视频:https://space.bilibili.com/444388619 视频地址:https://space.bilibili.com/444388619/video 专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网软件开发,PCB设计,

    2024年02月07日
    浏览(49)
  • Arduino ESP8266控制SG90舵机输出PWM信号

    舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前在高档遥控玩具,如航模,包括飞机模型,潜艇模型;遥控机器人中已经使用得比较普遍。舵机是一种俗称,其实是一种伺服马达。 控制信号由接收机的通道进入信号调制芯片

    2023年04月26日
    浏览(74)
  • MG90S 舵机180°角度驱动

    舵机 : 是一种角度伺服电机,一般是由齿轮组、电位器、舵机控制电路、直流电机构成。由发送控制信号来控制输出轴的位置。 数字舵机与模拟舵机的区别: MG90S是一款常用的数字舵机,还有一款常用的模拟电机是MG90。 ①数字舵机 只需发送1次PWM信号 就能转动到某个角度

    2024年02月12日
    浏览(36)
  • 【雕爷学编程】Arduino智能家居之使用Blynk控制两个舵机的角度

    Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来

    2024年02月04日
    浏览(69)
  • 机智云案例(ESP8266模块接入机智云平台实现APP控制舵机旋转)

    ESP8266是一款超低功耗的UART-WiFi 透传模块,拥有业内极富竞争力的封装尺寸和超低能耗技术,专为移动设备和物联网应用设计,可将用户的物理设备连接到Wi-Fi 无线网络上,进行互联网或局域网通信,实现联网功能。 支持无线802.11 b/g/n 标准 支持STA/AP/STA+AP三种工作模式 内置

    2024年02月05日
    浏览(40)
  • 舵机,模拟舵机,数字舵机(arduino,stm32f103代码开源)

     舵机是一种常见的伺服电机,主要用来控制角度的变化。常见的sg90舵机组成结构如下: 舵机组成图 ​ sg90是模拟舵机,除了模拟舵机外,还有数字舵机,他们的控制区别如下 模拟舵机和数字舵机的控制区别  模拟舵机和数字舵机的机械结构一样;硬件方面数字舵机多了一

    2024年02月05日
    浏览(56)
  • 【Arduino】舵机的连线和基本操作

    🎊专栏【Arduino】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【勋章】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰 目录 🚥舵机图片 🚥舵机连接方式   🚥舵机代码基础知识 🎈头文件 🎈变量名 🎈attach(接口) 🎈write(角度) 🎈read() 🎈

    2023年04月25日
    浏览(50)
  • Arduino招财猫(超声波传感器+舵机)

    项目目标: 当人靠近时,招财猫摆动手臂,当附近没人时,招财猫静止。 准备材料: 1.arduino主控板 2.SG90舵机1个 3.超声波传感器1个 电路搭建:  超声波传感器 : Trig:输入引脚 Echo:输出引脚 常用的超声波传感器由压电晶片组成,既可以发射超声波,也可以接收超声波。小

    2024年02月01日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包