了解舵机以及MG996R的控制方法
了解舵机以及MG996R的控制方法
1.舵机基础知识:
舵机是遥控航空、航天模型控制动作,改变方向的重要组成部件,舵机是一种位置(角度)伺服的驱动器。
舵机主要适用于那些需要角度不断变化并可以保持的控制系统,比如人形机器人的手臂和腿,车模和航模的方向控制。舵机的控制信号实际上是一个脉冲宽度调制信号( PWM信号),该信号可由FP-GA器件、模拟电路或单片机产生。
2.舵机的构造:
舵机主要是由外壳、电路板、驱动马达、减速器与位置检测元件所构成。
引脚接线说明:
红色:供电;
粽色:地线;必须与控制器, 如SMT32芯片共地;
橙色:PWM信号线;
3.工作原理:
由接收机发出讯号给舵机,经由电路板上的 IC驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回讯号,判断是否已经到达定位。位置检测器其实就是可变电阻,当舵机转动时电阻值也会随之改变,藉由检测电阻值便可知转动的角度。
大多数舵机PWM控制协议,都已经标准化。舵机一般有三根引线,分别为电源线、地线、信号线。通过PWM来控制舵机输出轴的旋转角度,下图是MG996R舵机PWM控制波形。

PWM信号周期: 20000 us
0度时,高电平时长: 500 us
180度时, 高电平时长:2500 us
每增加1 °,需增加高电平时长:(2500-500)÷180 = 11.1 us
(ps: 脉冲宽度(W),简称“脉宽”,是脉冲高电平持续的时间。占空比(D),脉宽除以脉冲周期的值。)
某角度值A,需要的总高电平时长:(A x 11.1 +500)us
注意:
①PWM波其实就是一种脉宽可连续调节的矩形脉冲波。
②占空比其实就是描述脉宽与脉冲周期的比值,是量化值。
③占空比调节就是脉宽调节,表达不一样,但本质是一样的。
4.舵机类型:

5.舵机的使用:
使用Arduino编译平台中的servo.h舵机库进行对舵机的控制

将舵机从0°~90°再回转的控制代码如下:
#include <Servo.h>
Servo myservo; // 定义Servo对象来控制
int pos = 0; // 角度存储变量pos
void setup() {
myservo.attach(9); // 控制线(橙色)连接数字引脚9接受PWM信号
}
void loop() {
for (pos = 0; pos <= 90; pos ++) { // 角度pos从0°到90°
// in steps of 1 degree
myservo.write(pos); // 舵机角度写入
delay(10); // 等待10ms转动到指定角度
}
for (pos = 90; pos >= 0; pos --) { // 从90°到0°
myservo.write(pos); // 舵机角度写入
delay(10); // 等待10ms转动到指定角度
}
}
连接开发板设置好端口和开发板类型,进行验证上传即可驱动舵机。
了解舵机以及MG996R的控制方法的更多相关文章
- STM32—TIMx输出PWM信号驱动MG996R舵机
文章目录 一.前言 二.MG996R舵机简介 三.TIM定时器简介 四.通用定时器TIMx 1.TIMx主要功能 2.TIMx框图 3.计数单元 4.时钟选择 5.输出比较PWM 五.TIM3输出双路 ...
- PWM波控制舵机总结
文章转自:http://www.geek-workshop.com/thread-70-1-1.html 一.关于舵机: 舵机(英文叫Servo):它由直流电机.减速齿轮组.传感器和控制电路组成的一套 ...
- 舵机&数据处理&stm32内存之堆栈溢出(遇到的问题)
产品名称:TOWER PRO(辉盛)大扭力舵机MG996R (MG995升级产品)6v/11Kg厂家编号:MG996R产品净重: 55g产品尺寸: 40.7*19.7*42.9mm产品拉力: 9.4k ...
- Arduino舵机控制
普通舵机有3根线:GND(黑).VCC(红).Signal(黄) 红色的是电源正极,黑色的是电源负极,白色的是信号线.有些舵机线是红棕橘三色,分别对应红黑白. #include <Servo.h ...
- Nodejs中Async模块的流程控制方法
首先,使用Asycn模块需要安装,它不是node自带的.其次,该模块有大约20多个流程控制方法,我们在这里仅分析常用的series, parallel, waterfall, auto这四种,并且尽量 ...
- 智能车学习(十七)——舵机学习
一.舵机的结构 舵机简单的说就是集成了直流电机.电机控制器和减速器等,并封装在一个便于安装的外壳里的伺服单元.能够利用简单的输入信号比较精确的转动给定角度的电机系统.舵机安装了一个电位器(或 ...
- C# 给某个方法设定执行超时时间 C#如何控制方法的执行时间,超时则强制退出方法执行 C#函数运行超时则终止执行(任意参数类型及参数个数通用版)
我自己写的 /// <summary> /// 函数运行超时则终止执行(超时则返回true,否则返回false) /// </summary> /// <typepara ...
- 15SpringMvc_在业务控制方法中写入模型变量收集参数,且使用@InitBind来解决字符串转日期类型
之前第12篇文章中提到过在业务控制方法中写入普通变量收集参数的方式,也提到了这种凡方式的弊端(参数很多怎么办),所以这篇文章讲的是在业务控制方法中写入模型变量来收集参数.本文的案例实现的功能是,在注册 ...
- x264码率控制方法介绍
转自:http://www.bubuko.com/infodetail-471698.html 1. X264显式支持的一趟码率控制方法有:ABR, CQP, CRF. 缺省方法是CRF.这三种方式 ...
- WEB用户访问控制方法
分享到 一键分享 QQ空间 新浪微博 百度云收藏 人人网 腾讯微博 百度相册 开心网 腾讯朋友 百度贴吧 豆瓣网 搜狐微博 百度新首页 QQ好友 和讯微博 更多... 百度分享 一直以来,我对用户/权 ...
随机推荐
- 记一次 .NET 某电子厂OA系统 非托管内存泄露分析
一:背景 1.讲故事 这周有个朋友找到我,说他的程序出现了内存缓慢增长,没有回头的趋势,让我帮忙看下到底怎么回事,据朋友说这个问题已经困扰他快一周了,还是没能找到最终的问题,看样子这个问题比较刁钻,不 ...
- MAUI Blazor (Windows) App 动态设置窗口标题
接着上一篇"如何为面向 Windows 的 MAUI Blazor 应用程序设置窗口标题?" Tips: 总所周知,MAUI 除了 Windows App 其他平台窗口是没有 Ti ...
- 【JVM调优】Day02:CMS的三色标记算法、分区的G1回收器、短时停顿的ZGC回收器
一.CMS及其三色标记算法 1.核心 标记整个图谱的过程分为多步 多个线程相互工作,才能标记完 标记的算法,JVM虚拟机.go语言使用的都是三色标记算法 2.含义 从那个地方开始,用三种颜色替代 一开 ...
- 【Scala复习】基础知识、函数式编程、面向对象、集合、隐式转换、模式匹配、泛型
重点版 详细版 基础知识常量和变量尽量使用常量val别使用变量var变量的命名数字字母下划线_特殊的用法数据类型java基本数据类型引用数据类型scalaAny-对象的根类AnyVal-数值类型Lon ...
- 【JUC】信号量Semaphore详解
欢迎关注专栏[JAVA并发] 欢迎关注个人公众号-- JAVA旭阳 前言 大家应该都用过synchronized 关键字加锁,用来保证某个时刻只允许一个线程运行.那么如果控制某个时刻允许指定数量的线程 ...
- 互斥锁 线程理论 GIL全局解释器锁 死锁现象 信号量 event事件 进程池与线程池 协程实现并发
目录 互斥锁 multiprocessing Lock类 锁的种类 线程理论 进程和线程对比 开线程的两种方式(类似进程) 方式1 使用Thread()创建线程对象 方式2 重写Thread类run方 ...
- django.core.exceptions.ImproperlyConfigured: Field name `tester_id` is not valid for model `WebCase`.
代码: class WebCase(models.Model): id = models.AutoField(primary_key=True) casename = models.CharField ...
- c语言基础理解(原创)
家中小女初上大学开学计算机课程,学习C语言时遇到困难,为帮助她尽快入门,特写了这篇基本概念理解,希望帮她快速认识清楚C语言的本质.发到博客园上,也帮助同样的C语言初学者轻松掌握C语言的本质 ...
- 问一个 Windows 窗口的 Capture 问题
好久没写了,上来先问一个问题...羞射... 有 A.B 两个窗口,A 是 B 的 Owner,B 不激活不抢焦点.在 B 的 WM_LBUTTONDOWN 的时候,设置 A 窗口为 Capture: ...
- lwl-resume 个人简历编辑使用说明
LWL RESUME 是一个简洁.可自定义生成pdf的在线简历编辑工具! 如果你喜欢这种简约格式的简历风格,可以尝试用它来编辑简历 . 注意事项 不支持手机端编辑!请务必使用最新版Chrome(谷歌浏 ...