SG90舵机的原理和控制方式

article/2025/10/7 15:13:37

前言

做过机器人、智能车或者玩航模的朋友应该对舵机不会陌生,这种舵机也是很常用的。

舵机只是我们通俗的叫法,它的本质是一个伺服电机,也可以叫做位置(角度)伺服驱动器。一般被应用在那些需要控制角度变化的系统中,可以方便的实现转动任意的角度,实现控制角度的变化。

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输出,可以用于控制很多路的舵机。

 


http://chatgpt.dhexx.cn/article/ZmHvreoH.shtml

相关文章

舵机控制原理和结构

原文:https://blog.zeruns.tech/index.php/archives/358/ 什么是PWM信号 PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅…

舵机控制原理/舵机内部电路原理

舵机结构 舵机是我们常用到的末端执行器,但是在应用时我们只知道利用一定频率和周期的PWM来控制其摆动一定角度。及控制器给舵机一个周期为20ms的PWM波,高电平时间为0.5ms时对应0,高电平时间为2.5ms时对应180。以上规律适用于大多数180摆角的…

矩阵谱半径与矩阵范数的关系

摘自 程云鹏. 矩阵论(第二版)[M]// 矩阵论(第二版). 西北工业大学出版社, 2000. p135~p137

谱半径

矩阵的谱或叫矩阵的谱半径,在特征值估计、广义逆矩阵、数值分析以及数值代数等理论的建树中,都占有极其重要的地位; 矩阵的谱半径为矩阵的特征值的模的最大值。 关于矩阵的谱(半径)的一个重要性质即是:任意…

【矩阵论笔记】谱半径

定义 例子 谱半径比他的诱导范数都小。 证明 例子 hemite对称矩阵 谱半径什么时候跟诱导范数相等?答曰:Hermite矩阵。

python求矩阵的谱半径

在学习计算方法的时候,线性方程组的迭代法中的雅可比(Jacobi)迭代法和高斯-塞德尔(Gauss-Seidel)迭代法的收敛条件中需要求矩阵的谱半径,而经过查阅资料,python numpy库中没有直接求谱半径的函数。 谱半径的定义为: 设A是n n矩阵…

实对称阵的谱半径是连续函数

矩阵的诱导范数(算子范数)的定义: ∣ ∣ A ∣ ∣ sup ⁡ ∣ ∣ x ∣ ∣ 1 ∣ ∣ A x ∣ ∣ ||A|| \sup_{||x|| 1}||Ax|| ∣∣A∣∣∣∣x∣∣1sup​∣∣Ax∣∣其中,||||可以是任何向量范数,由于该矩阵范数是由向量范…

PTA 1063 计算谱半径(Python3)

在数学中,矩阵的“谱半径”是指其特征值的模集合的上确界。换言之,对于给定的 n 个复数空间的特征值 { a1​b1​i,⋯,an​bn​i },它们的模为实部与虚部的平方和的开方,而“谱半径”就是最大模。 现在给定一些复数空间的特征值&a…

1063 计算谱半径

问题描述: 在数学中,矩阵的“谱半径”是指其特征值的模集合的上确界。换言之,对于给定的 n 个复数空间的特征值 { a​1​​b​1​​i,⋯,a​n​​b​n​​i },它们的模为实部与虚部的平方和的开方,而“谱半径”就是最大…

如何判断矩阵的谱半径 C语言,矩阵谱半径

矩阵谱半径指的是矩阵的最大特征值(含绝对值)。 它可以判断收敛性,也可以判断方程解的稳定性。 一般情况下,当存在一个单位矩阵减去另外一个矩阵的形式时, 谱半径小于一就是为了确保它们之间的差值为正这样逆矩阵才会存在,可以用来验证一个方案是否可行。 The radius of t…

一、向量范数、矩阵范数、谱半径、条件数

一、范数、条件数与谱半径 1. 范数 1.1 向量范数 向量范数的具体形式可以有很多种(满足上述三个条件的),但常用的有以下三种 设 向 量 x ( ξ 1 , ξ 2 , … , ξ n ) T ∈ C n , 设向量 x\left(\xi_{1}, \xi_{2}, \dots, \xi_{n}\right)^{T} \in C^{n} , 设向量…

【高等工程数学】南理工研究生课程 突击笔记2 谱半径,条件数

高等工程数学 突击笔记2 文章目录 高等工程数学 突击笔记2写在前面一、谱半径什么是正规矩阵矩阵级数敛散性判断 二、条件数举个栗子条件数求误差总结 写在前面 提示:这里可以添加本文要记录的大概内容: 本文主要是为了应付考试,因此很多原…

线性代数(四十八) : 谱半径

本节介绍复欧几里得空间映射到其自身的矩阵.给出其范数的一个简单而有用的下界. 该矩阵范数的定义同实欧几里得空间. 0 说明: 本节以下的研究都是针对复欧几里得空间到自身的映射 1 范数 2 特征值 设A为任意的复方阵.h为A的一个长度为1的特征向量.a为对应的特征…

高等工程数学 —— 第一章 (2)矩阵的谱半径与条件数

第一章 (2)矩阵的谱半径与条件数 文章目录 第一章 (2)矩阵的谱半径与条件数谱半径收敛矩阵矩阵级数矩阵幂级数 矩阵的条件数及应用 谱半径 谱半径其实就是最大特征值 注意这里谱半径是小于等于矩阵的任意范数的。在求特征值比较麻…

oracle安装问题---测试连接时不成功

1. 以前安装oracle比较顺利,这次安装时出现了一点问题 安装 oracle服务端时没有改账户密码, 出现密码失效 连接不成功的事情 第一步; 运行SQLPlus命令行工具(即在命令行 输入sqlplus /nolog) connect as sysdba;…

oracle安装及常见问题解决

oracle 11g安装详解 一、Oracle安装包准备 二、安装oracle和plsql 1、解压上述压缩包后---》打开文件夹后看见如下图,一个是oracle安装资料,一个是oracle客户端安装资料plsql。 2、打开oracle文件夹,找到安装程序【setup.exe】并双击 3、安装…

Oracle安装过程及问题解决

Oracle安装过程及问题解决 下载安装出现问题[INS-13001] 此操作系统不支持 Oracle 数据库。安装程序将不在系统上执行先决条件检查。[INS-35180]无法检查可用内存 下载安装 Oracle11下载地址 下载这两个文件 下载完成后,选中两个压缩包,右击,点击解压到当前文件夹 会生成一个…

Oracle安装时物理内存检查失败的解决方案:

Oracle安装时物理内存检查失败的解决方案: 1、先决条件检查---未能满足某些最低安装要求,请求复查并修复下表中列出的问题,然后重新检查系统 环境说明: 安装环境:Windows10 64位,内存8G,硬盘…

Oracle安装图文详解!

测试环境描述 服务器 操作系统: windows server2012 标准版 64位 Oracle软件:Oracle 11g 64位 客户端 操作系统: windows10 32位 图形界面工具:PL/SQL Developer13.0.3 32位 Oracle客户端:Oracle win32_11…

Linux下的Oracle安装

一、前置依赖准备 1.下载安装Oracle安装包 我将放在 /opt/install 目录下 2.安装依赖包 yum -y install binutils compat-libcap1 compat-libstdc-33 compat-libstdc-33*i686 compat-libstdc-33*.devel compat-libstdc-33 compat-libstdc-33*.devel gcc gcc-c glibc glibc*.i6…