Arduino控制MG996R高扭矩伺服电机教程
创作时间:
作者:
@小白创作中心
Arduino控制MG996R高扭矩伺服电机教程
引用
CSDN
1.
https://blog.csdn.net/acktomas/article/details/139993620
本教程将介绍如何使用Arduino控制MG996R高扭矩伺服电机。通过本教程,你将学习到所需硬件、电机引脚介绍、接线图、Arduino代码示例以及代码说明等。
所需硬件
- 1 × Arduino UNO 或 Genuino UNO
- 1 × USB 2.0 电缆 A/B 型
- 1 × MG996R 伺服电机
- 1 × 跳线
- 1 × (可选) 9V 电源适配器
- 1 × (推荐) 螺钉接线端子屏蔽层
- 1 × (可选) Arduino Uno 透明亚克力外壳
关于伺服电机
MG996R 伺服电机是一款高扭矩伺服电机,能够举起高达15kg的重量。电机可以将其手柄旋转 0° 至 180°,从而提供对角度位置的精确控制。有关伺服电机的基本信息,请参阅Arduino - 伺服电机教程。
引脚排列
本例中使用的MG996R伺服电机包括三个引脚:
- VCC 引脚:(通常为红色)需要连接到 VCC (4.8V – 7.2V)
- GND 引脚:(通常为黑色或棕色)需要连接到 GND (0V)
- 信号引脚:(通常为黄色或橙色)接收来自Arduino引脚的PWM控制信号。
接线图
由于MG996R是一款高扭矩伺服电机,因此它消耗了大量的动力。我们不应该通过Arduino的5v引脚为该电机供电。相反,我们需要使用MG996R伺服电机的外部电源。
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 servo
void 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 degree
servo.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 degree
servo.write(angle); // control servo to go to position in variable 'angle'
delay(10); // waits 10ms for the servo to reach the position
}
}
快速步骤
- 通过USB线将Arduino连接到PC
- 打开Arduino IDE,选择正确的板卡和端口
- 复制上面的代码并使用Arduino IDE打开
- 单击Arduino IDE上的“上传”按钮,将代码上传到Arduino
- 查看结果:伺服电机从 0 到 180° 缓慢旋转,然后从 180° 缓慢旋转到 0°
代码说明
阅读代码注释行中的逐行说明!
如何控制伺服电机的速度
通过使用 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
}
函数参考
- map()
- millis()
- Servo.attach()
- Servo.write()
- Servo.writeMicroseconds()
- Servo.read()
- Servo.attached()
- Servo.detach()
热门推荐
夏日避暑胜地:三峡大瀑布自驾游全攻略
南京最美秋景打卡:明孝陵&石象路
桂林:从秦朝到现代的华丽转身
桂林喀斯特:世界地质遗产地的奇观解析
漓江与象山:桂林山水的文化传承
消化不良吃哪种益生菌效果好
北师大美食打卡攻略:必吃餐厅推荐!
国家卫健委发布最新指南:婴幼儿饮食安全这样做最科学
幼儿饮食安全,你真的了解吗?
QS世界百强高校中的佼佼者:北师大心理学与汉语言文学专业解析
北师大毕业生就业全景:公费师范生100%就业,普通师范生如何破局?
周昭怡《岳麓书院记》书法展在千年学府开幕
ARM架构助力智能信号灯升级:技术革新与应用实践
新加坡智能信号灯:微波感应技术让城市交通更智慧
初冬打卡西安最美摄影点:关山草原&白鹭桥
冬日打卡:长沙岳麓书院及周边必玩景点
西安周边冬季度假胜地:关山牧场、高寒川、大水川
探秘秦始皇兵马俑,感受千年古都魅力
元宵节来佛山“行通济”,感受岭南文化魅力!
赵公明财神庙楼观台
冬季新能源车充电与驾驶指南:温暖您的绿色出行
赵本山新作《鹊刀门传奇第二季》:东北武侠笑声连连
MIT DeepTraffic:用深度强化学习破解城市拥堵难题
芦苇的主要特点及特征是什么!
海洋科普小课堂⑤丨芦苇——滨海湿地原生植被
成都美食大揭秘,九种绝世特色美食,你吃过几样?
冬季宜昌自驾游:探秘神农架冰雪奇境
在武汉,有一种美味叫“武昌鱼”
男士翘臀:跨越千年的崇拜
改善睡眠质量的有效方法与习惯,让你轻松迎接每一天的活力