SG90舵机的原理和控制方式
前言
做过机器人、智能车或者玩航模的朋友应该对舵机不会陌生,这种舵机也是很常用的。
舵机只是我们通俗的叫法,它的本质是一个伺服电机,也可以叫做位置(角度)伺服驱动器。一般被应用在那些需要控制角度变化的系统中,可以方便的实现转动任意的角度,实现控制角度的变化。
sg90舵机的图示:
1、sg90舵机的应用场景
(1)航模
在很多的航模中,sg90舵机都被用于两翼的位置控制,从而实现航模的转向,倾斜之类的。因为航模本身的要求,需要尽量的控制航模的自重,而sg90舵机的重量本身就很轻,扭矩也大,所以能很好的满足要求。如下:
(2)智能小车的转向桥
因为sg90舵机的精准角度控制,所以在很多的智能小车类中被用作转向控制。如下的一个简易转向桥:
(3)云台控制
将sg90用于云台控制也是很常见,如下:
2、sg90舵机的参数
(1)sg90舵机的一些重要特性参数:
1)工作扭矩:16KG/CM
2)反应速度:0.12 - 0.13秒/60°
3)温度范围:-30° ~ +60°
4)死区设定:5微妙
5)转动角度:常见0°、90°、180°、360°
6)电压范围:3V - 5V
(2)sg90舵机的接线定义
sg90舵机的接线定义如下:
3、sg90舵机的工作原理
sg90舵机模块内是有控制电路的,控制信号通过信号线输入到内部的控制电路中,调制芯片将输入的信号进行调制,获得直流偏置电压。然后再由内部的基准电路产生周期为20ms,宽度为1.5ms的基准信号,将直流偏置电压和电位器电压进行比较,从而获得输出的电压差。由电压差控制舵机的转动,这个电压差的正负控制舵机正反转。大致原理就是这样!
4、sg90舵机的控制原理
至于如何驱动sg90电机也是比较简单的。
驱动原理:产生一个周期为20ms,高电平宽度为0.5ms-2.5ms的方波就能驱动sg90舵机。
换一种说法就是需要一个50Hz的pwm波,然后通过改变占空比来控制sg90舵机的转动角度。
下面以180°舵机为例说明,高电平宽度和sg90舵机的转动角度的关系表如下:
占空比如下:
方波示意如下:
或者看下面的演示图就更加形象:
(素材源自网络,侵删!)
按照理解的话,可以根据角度和高电平的时间推断一个公式:
PWM的高电平时间 = 0.5ms +(转动角度/180°)*2ms
注意:这是根据高电平宽度和角度推算的,不一定准确,使用中还是需要根据实际情况进行参数调整
5、180° 和 360° 的舵机
据我所知道的,sg90舵机是分为两种的,一种是转角范围180°的舵机,另外一种是360°转角的舵机。这两种是存在一定的差别的。
(1)180°舵机
180°舵机是给一个PWM信号就转动到一定的角度,然后保持在这个转动之后的位置,直到有下一个不同的PWM信号,才会转到其他的角度。
转动的角度和PWM高电平的时间关系如下:
0.5ms ---- 0度;
1ms ---- 45度;
1.5ms ---- 90度;
2ms ---- 135度;
2.5ms ---- 180度;
(2)360°舵机
360°舵机是给一个PWM信号,就会按照一定的速度转动,这是和180°舵机不同的地方。但是按照我自己的测试中发现,其实360°舵机按照180°舵机的控制方式,每次只发一个周期的PWM的话,也是可以控制360°舵机按照一定的角度转动的。
转动的速度和PWM高电平的时间关系如下:
0.5ms --- 正向最大转速;
1.5ms --- 速度为0;
2.5ms --- 反向最大转速;
注意:其他的转速也是可以调的!
6、控制舵机的PWM的产生方式
(1)用中断的方式
中断的方式的话,大致的步骤如下:(以转动45°为例)
1)使用一个定时器,并开启中断;
2)第一次:先设置定时器的中断时间为1ms,这段时间IO输出高电平;
3)第二次:1ms时间到了,在中断里面让IO输出低电平,并同时设置下一次中断时间为19ms。就可以产生一个周期20ms,高电平时间为1ms的PWM方波控制信号。
4)一直循环上面的 2)3)的操作
(2)用MCU的PWM输出功能
这个方法比用中断的方式就容易多了,毕竟中断过于频繁的话,对于控制程序也不好,特别是有操作系统的时候,可能会影响系统的实时性能。
MCU自动生成PWM的方式就很好了,这个过程不需要MCU的参与,极大的释放了MCU的压力。有很多的MCU本身甚至可以产生很多路的PWM输出,可以用于控制很多路的舵机。
SG90舵机的原理和控制方式相关推荐
- sg90舵机工作原理_舵机跑舵?锲而不舍终除隐患!
因为专注才更专业,快快关注吧! 欢迎投稿:sea@shipmg.com 正文开始 一.前言某司二条姐妹船采用 SSP5 型 360º全回转电力推进器,左右两台中压永磁电机推进船舶行驶,另外两面分别由两 ...
- sg90舵机工作原理_快来听郑老轨分享船舶舵机液压锁报警测试经验!
点击☝上方"泛海国际船管"轻松关注哦! [编者按:以下工作经验分享为敝司外派轮机长郑永忠,根据在船工作经验,结合大家日常中,比较容易忽略的地方,整理出来的文章,经其本人同意后,刊发 ...
- 树莓派-10-安装jupyter并控制SG90舵机
1 开发工具jupyter notebook 1.1 安装jupyter #(1)安装jupyter notebook $ sudo pip3 install jupyter $ sudo pip3 ...
- ESP8266驱动SG90舵机控制开关灯(灯的开关)的折腾记录
https://blog.csdn.net/qq_47749454/article/details/117638828 想法来源地址在上面,可以去参考一下,建议是结合两篇文章一块看,按照大佬的先来折腾 ...
- 51单片机控制SG90舵机、MG90S舵机
舵机的控制信号为周期是20ms 的脉宽调制(PWM)信号,其中脉冲宽度从0.5ms-2.5ms,相对应舵盘的位置为0-180度,呈线性变化.也就是说,给它提供一定的脉宽,它的输出轴就会保持在一个相对应 ...
- 懒人开关 ESP32控制舵机旋转(基于ESP32+SG90舵机+微信小程序)
提示:站在巨人肩膀上的小白,大家可以提出自己的看法.如有侵删: 原文参考链接:esp32单片机控制舵机 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/566 ...
- C51单片机定时器2实现SG90舵机控制
谈起舵机最初的了解应用于航模,偶然的机会在网上看到有牛人使用多个舵机做人形机器人的关节,感觉这小东西很有趣,蒙发了买来学习学习的想法,这已经是多年前的事了,后来由于某些原因,这个想法直到今年才落地.小 ...
- php控制舵机,分享一个关于SG90舵机的实验(+串口控制)
新手第一次做实验,如果有写的不对的地方,还希望各位大佬多多指导. --------第一次做实验,也发现了自己学习过的东西掌握的不是很好,大佬们有啥入门级别的模块也可以推荐一下,分享当然更好了. --- ...
- STM32F103单片机控制SG90舵机
前言 在智能衣柜系统中,试用SG90旋转0°-180°,模拟衣柜的开关门,舵机正转开门,180°-0°反转模拟一个关门的现象. 一,SG90舵机 1.1SG90链接: [淘宝]https://m.tb ...
最新文章
- 匿名函数、普通函数、箭头函数作用域
- Java领域的对象如何传输-了解序列化的意义
- 使用redis的发布订阅模式实现消息队列
- 目标检测——阅读代码需要了解的内容
- iPhone 的黄金时代已结束!
- “机智号”成功试飞火星,但它使用的开源软件安全吗?
- PDFCreator(pdf转换器电脑版免费版)官方繁体中文版V4.3.0 | PDF生成器下载 | pdf转换器哪个好用?
- 数字冰雹智慧城市大数据可视化分析决策系统
- 《电磁学》学习笔记1——电场
- 计算机超级管理用户名,超级管理员设置及简介
- Python:实现Gale-Shapley盖尔-沙普利算法(附完整源码)
- 数美科技:全栈防御体系怎么样护航游戏ROI增长
- 数据结构与算法(陈越版)第一讲 基本概念
- 教妹学Java(十七):do-while 循环
- 代码设置margintop_js获取css属性,更改margin-top属性,给每个a标签的margin-top属性在原基础上 +5px...
- ROS机器人021-机器人命令行发送cmd_vel话题及/cmd_vel geometry_msgs/Twist示例
- 若依管理系统windows本地运行教程
- UE4-简单的FPS项目制作(B站视频笔记)P1P2
- Android 获取电池容量 mAh
- LED与照明光学基础知识
热门文章
- 新浪财经分析报告(0605)
- 心态决定一切 成败一念之间
- 无法启动游戏 因为计算机,WeGame只需五步即可解决游戏无法启动的问题!
- mysql binlog增量备份脚本_实现mysqlldump+binlog日志全量备份和增量备份脚本
- 非静态的字段、方法或属性 要求对象引用
- flink sql 知其所以然(十五):改了改源码,实现了个 batch lookup join(附源码)
- JUC-9.“锁”事(显式锁与隐式锁/悲观锁与乐观锁/公平锁与非公平锁/可重入锁/读写锁(独占/共享/降级)/邮戳锁/死锁)、锁升级
- 清除windows系统垃圾文件简易脚本(bat)
- linux-shell系列5-统计
- MySQL ERROR 1153 解决办法