Arduino - MG996R

Arduino - MG996R

In this tutorial, we are going to learn how to use the MG996R high-torque servo motor with Arduino.
在本教程中,我们将学习如何将MG996R高扭矩伺服电机与Arduino一起使用。

Hardware Required 所需硬件

1×Arduino UNO or Genuino UNO Arduino UNO 或 Genuino UNO
1×USB 2.0 cable type A/B USB 2.0 电缆 A/B 型
1×MG996R Servo Motor MG996R 伺服电机
1×Jumper Wires 跳线
1×(Optional) 9V Power Adapter for Arduino (可选)用于Arduino的9V电源适配器
1×(Recommended) Screw Terminal Block Shield for Arduino Uno (推荐)用于Arduino Uno的螺钉接线端子屏蔽层
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno (可选)Arduino Uno透明亚克力外壳

About Servo Motor 关于伺服电机

The MG996R servo motor is a high-torque servo motor capable of lifting up to 15kg in weight. The motor can rotate its handle from 0° to 180°, providing precise control of angular position. For basic information about servo motors, please refer to the Arduino - Servo Motor tutorial.
MG996R伺服电机是一款高扭矩伺服电机,能够举起高达15kg的重量。电机可以将其手柄旋转 0° 至 180°,从而提供对角度位置的精确控制。有关伺服电机的基本信息,请参阅Arduino - 伺服电机教程。

Pinout 引脚排列

The MG996R servo motor used in this example includes three pins:
本例中使用的MG996R伺服电机包括三个引脚:

  • VCC pin: (typically red) needs to be connected to VCC (4.8V – 7.2V)
    VCC 引脚:(通常为红色)需要连接到 VCC (4.8V – 7.2V)
  • GND pin: (typically black or brown) needs to be connected to GND (0V)
    GND 引脚:(通常为黑色或棕色)需要连接到 GND (0V)
  • Signal pin: (typically yellow or orange) receives the PWM control signal from an Arduino’s pin.
    信号引脚:(通常为黄色或橙色)接收来自Arduino引脚的PWM控制信号。
    请添加图片描述

Wiring Diagram 接线图

Since the MG996R is a high-torque servo motor, it draws a lot of power. We should not power this motor via the 5v pin of Arduino. Instead, we need to use the external power supply for the MG996R servo motor.
由于MG996R是一款高扭矩伺服电机,因此它消耗了大量的动力。我们不应该通过Arduino的5v引脚为该电机供电。相反,我们需要使用MG996R伺服电机的外部电源。
请添加图片描述

This image is created using Fritzing. Click to enlarge image
此图像是使用 Fritzing 创建的。点击放大图片

Arduino Code Arduino代码

/** Created by ArduinoGetStarted.com** This example code is in the public domain** Tutorial page: https://arduinogetstarted.com/tutorials/arduino-mg996r*/#include <Servo.h>Servo servo;  // create servo object to control a servovoid setup() {servo.attach(9);  // attaches the servo on pin 9 to the servo objectưservo.write(0);   // rotate slowly servo to 0 degrees immediately
}void loop() {for (int angle = 0; angle <= 180; angle += 1) {  // rotate slowly from 0 degrees to 180 degrees, one by one degree// in steps of 1 degreeservo.write(angle);  // control servo to go to position in variable 'angle'delay(10);         // waits 10ms for the servo to reach the position}for (int angle = 180; angle >= 0; angle -= 1) {  // rotate from 180 degrees to 0 degrees, one by one degreeservo.write(angle);                        // control servo to go to position in variable 'angle'delay(10);                               // waits 10ms for the servo to reach the position}
}

Quick Steps 快速步骤

  • Connect Arduino to PC via USB cable
    通过USB线将Arduino连接到PC
  • Open Arduino IDE, select the right board and port
    打开Arduino IDE,选择正确的板卡和端口
  • Copy the above code and open with Arduino IDE
    复制上面的代码并使用Arduino IDE打开
  • Click Upload button on Arduino IDE to upload code to Arduino
    单击Arduino IDE上的“上传”按钮,将代码上传到Arduino

请添加图片描述

  • See the result: Servo motor rotates slowly from 0 to 180° and then back rotates slowly from 180 back to 0°
    查看结果:伺服电机从 0 到 180° 缓慢旋转,然后从 180° 缓慢旋转到 0°

Code Explanation 代码说明

Read the line-by-line explanation in comment lines of code!
阅读代码注释行中的逐行说明!

How to Control Speed of Servo Motor 伺服电机的速度如何控制

By using map() and millis() functions, we can control the speed of servo motor smoothly without blocking other code
通过使用 map() 和 millis() 函数,我们可以在不阻塞其他代码的情况下平稳地控制伺服电机的速度

/** Created by ArduinoGetStarted.com** This example code is in the public domain** Tutorial page: https://arduinogetstarted.com/tutorials/arduino-mg996r*/#include <Servo.h>Servo myServo;
unsigned long MOVING_TIME = 3000; // moving time is 3 seconds
unsigned long moveStartTime;
int startAngle = 30; // 30°
int stopAngle  = 90; // 90°void setup() {myServo.attach(9);moveStartTime = millis(); // start moving// TODO: other code
}void loop() {unsigned long progress = millis() - moveStartTime;if (progress <= MOVING_TIME) {long angle = map(progress, 0, MOVING_TIME, startAngle, stopAngle);myServo.write(angle); }// TODO: other code
}

Video Tutorial 视频教程

We are considering to make the video tutorials. If you think the video tutorials are essential, please subscribe to our YouTube channel to give us motivation for making the videos.
我们正在考虑制作视频教程。如果您认为视频教程是必不可少的,请订阅我们的 YouTube 频道,为我们制作视频提供动力。

Function References 函数参考

  • map()
  • millis()
  • Servo.attach()
  • Servo.write()
  • Servo.writeMicroseconds()
  • Servo.read()
  • Servo.attached()
  • Servo.detach()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/861550.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows系统如何快速查看显卡详情信息

winR&#xff0c;输入dxdiag 打开DirectX诊断工具&#xff0c;可以看到显卡的详细硬件信息

面试经典sql题

假设有两张表&#xff0c;表1为份额表&#xff0c;表2为行业表。份额表与行业表依靠产品id相关联。现在需要查询表2中行业分类字段为1的所有行业的占比变动情况&#xff0c;占比变动计算公式为&#xff1a;最后一天&#xff08;假设为20240531&#xff09;的行业占比减去第一天…

小抄 20240625

1 先照顾好自己&#xff0c;有余力&#xff0c;再去帮助别人&#xff0c;否则&#xff0c;帮了别人&#xff0c;自己落得个生活不能自理&#xff0c;整体并没有变得更好。 2 如果几十年的沉默没有给你带来任何好处&#xff0c;一定要试着去表达&#xff0c;去主动暴露自己&am…

Vue原生写全选反选框

效果 场景&#xff1a;Vue全选框在头部&#xff0c;子框在v-for循环内部。 实现&#xff1a;点击全选框&#xff0c;所有子项选中&#xff0c;再次点击取消&#xff1b;子项全选中&#xff0c;全选框自动勾选&#xff0c;子项并未全选&#xff0c;全选框不勾选&#xff1b;已选…

国产音频放大器工作原理以及应用领域

音频放大器是在产生声音的输出元件上重建输入的音频信号的设备&#xff0c;其重建的信号音量和功率级都要理想&#xff1a;如实、有效且失真低。音频范围为约20Hz&#xff5e;20000Hz&#xff0c;因此放大器在此范围内必须有良好的频率响应&#xff08;驱动频带受限的扬声器时要…

什么是抽象语法树(AST),以及 AST 在前端的应用。

定义 抽象语法树&#xff08;Abstract Syntax Tree&#xff0c;AST&#xff09;是一种抽象表示源代码结构的树形数据结构它以直观的方式展现了代码的逻辑组成。通过 AST&#xff0c;编程语言的复杂结构被简化为一系列节点和边&#xff0c;便于程序理解和操作。 AST 的使用使前…

无人机操作注意事项

检查飞行设备 每次飞行前&#xff0c;要认真检查无人机的各处细节&#xff0c;遥控器等地面设备也不例外。 确保设备电量充足 起飞前&#xff0c;检查无人机是否电量充足&#xff0c;以及辅助设备如遥控器、手机等。 选择空旷的飞行场地 选择适宜的场地进行操作&#xff0…

机器学习原理和代码实现专辑

1. 往期文章推荐 1.【机器学习】图神经网络(NRI)模型原理和运动轨迹预测代码实现 2. 【机器学习】基于Gumbel-Sinkhorn网络的“潜在排列问题”求解 3. 【机器学习】基于Gumbel Top-k松弛技术的图形采样 4. 【机器学习】基于Softmax松弛技术的离散数据采样 5. 【机器学习】正则…

GNU、Unix、Linux、Makefile、GCC、GDB、GPL、CentOS 7、Ubuntu之间的关系

全文总结 早期&#xff0c;Unix系统作为一类强大的操作系统&#xff0c;在计算领域奠定了基础。然而&#xff0c;出于对软件自由的追求&#xff0c;Richard Stallman在1983年发起了GNU项目&#xff0c;旨在创建一个完全自由的、与Unix兼容的操作系统。GNU项目不仅倡议软件自由…

空间转录组学联合单细胞转录组学揭示卵巢癌生存相关受配体对

卵巢癌&#xff0c;作为女性生殖系统中的一种常见恶性肿瘤&#xff0c;其高级别浆液性卵巢癌&#xff08;HGSC&#xff09;亚型尤其致命。尽管多数患者对初次治疗反应良好&#xff0c;但超过75%的晚期HGSC患者会在治疗后复发&#xff0c;并且对化疗药物产生耐药性。然而&#x…

python 多进程加速web服务

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、1.引入库2.读入数据 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 例如&#xff1a; 提示&#xff1a;以下是本篇文章正文内…

vs code + Keil Assistant 配置 Keil 单片机开发

1、 先安装vscode完成后 安装插件 2 安装C/C 与 keil Assistant 需说明一下 Assistant 1.7.0版本有bug F7按不了 所以安装1.6.2版本 以下是我的安装插件 EMBEDDED IDE 可安装 可不安装 随便你 3 配置 Assistant 4、设置C/C 目录 ${workspaceFolder}/**D:/Keil_v5/C51/INC/**…

Linux提权总结(持续更新)

目录 1. teehee提权 1. teehee提权 teehee命令&#xff1a;teehee命令可以往一个文件中追加内容&#xff0c;可以通过这个命令向/etc/passwd中追加一个超级用户。 teehee参数-a&#xff1a;追加到指定文件&#xff0c;不覆盖原文件。 /etc/passwd文件的结构&#xff1a;用户名:…

排序算法系列一:选择排序、插入排序 与 希尔排序

零、说在前面 本文是一个系列&#xff0c;入口请移步这里 一、理论部分 1.1&#xff1a;选择排序 1.1.1&#xff1a;算法解读&#xff1a; 使用二分法和插入排序两种算法的思想来实现。流程分为“拆分”、“合并”两大部分&#xff0c;前者就是普通的二分思想&#xff0c;将…

应急响应靶机-Linux(2)

前言 本次应急响应靶机采用的是知攻善防实验室的Linux-2应急响应靶机 靶机下载地址为&#xff1a; https://pan.quark.cn/s/4b6dffd0c51a 相关账户密码&#xff1a; root/Inch957821.(记住要带最后的点.) 解题 启动靶机 不建议直接使用账号密码登录&#xff0c;建议用另一台主…

900kW直流负载组-DC系列负载组

R900 DC 型是一个固定式 900kW 直流负载组&#xff0c;旨在准确模拟典型直流电源在实际运行过程中遇到的负载;例如用于物料搬运设备、固定电源和电动汽车领域的设备&#xff0c;例如车队车辆、地面支持设备 &#xff08;GSE&#xff09;、工业机器人等。 技术细节 负载组 R9…

机器学习实现语音识别的背后技术详解

引言 语音识别是机器学习领域中的一个重要应用&#xff0c;它使得计算机能够像人类一样理解和生成语言。随着深度学习技术的快速发展&#xff0c;语音识别的准确性和效率得到了显著提升。本文将深入探讨机器学习实现语音识别的背后技术&#xff0c;并通过详细的代码示例来展示…

海富泰可直动式比例阀控制器EVRD-03C26SB-C1D24-B00

控制EVOTEK海富泰可直动式及先导式比例方向阀EVRD-03A04SA-C1D24-V00、EVRD-03C08SB-C1D24-B00、EVRD-03A16SA-C1D24-V00、EVRD-03C26SB-C1D24-B00、EVRD-05A30SA-C1D24-V00、EVRD-05C60SB-C1D24-B00、EVRD-P05A80SA-IIC1D24-B00、EVRD-P07C100SB-EEC1D24-V00、EVRD-P07A150SA-…

Python学习笔记23:进阶篇(十二)常见标准库使用之日期时间功能datetime模块的学习使用

前言 本文是根据python官方教程中标准库模块的介绍&#xff0c;自己查询资料并整理&#xff0c;编写代码示例做出的学习笔记。 根据模块知识&#xff0c;一次讲解单个或者多个模块的内容。 教程链接&#xff1a;https://docs.python.org/zh-cn/3/tutorial/index.html 日期和时…

【SSM】医疗健康平台-管理端-运营数据报表导出

知识目标 熟悉JasperReports的用法&#xff0c;能够使用JasperReports实现PDF文件导出 掌握Excel方式导出运营数据报表的方法&#xff0c;能够使用Apache POI以Excel方式导出运营数据报表 掌握PDF方式导出运营数据报表的方法&#xff0c;能够使用JasperReports以PDF方式导出运…