STM32 外设驱动模块【含代码】:SG90 舵机模块

一. 学习目标

如果你对机器人、创客项目或者智能家居感兴趣,那么SG90舵机肯定不陌生!今天我们来聊聊这个小巧、实用的舵机,看看它是如何在各个领域发挥作用的。

1. 舵机的应用领域

  • 机器人技术与创客项目: SG90常被用在机器人关节、手爪,甚至仿生机器人和Pan-Tilt云台上。它能为这些项目提供精确的运动控制。

  • 模型与玩具: 在航模、无人机、车模、船模等领域,SG90也是常见的关键部件。它的小巧设计非常适合这些需要小型化、高精度的模型和玩具。

  • 自动化与智能家居: 你知道智能窗帘、喂食器、分拣装置、指示仪表盘等设备背后可能有SG90在默默工作吗?它们的精确控制就是靠舵机来完成的。

  • 教育与科研: 对于初学者和科研人员来说,SG90因其低廉的价格和简单的控制方式,成为学习和原型验证的常用工具。

二. 模块概述

1. 外观与结构

SG90看起来非常小巧,但却充满了大智慧!让我们来看看它的主要结构:

  • 外壳: 通常采用轻质塑料,帮助减轻整体重量,确保它在各种应用中都能轻松适应。

  • 尺寸与重量: 它的典型尺寸是23mm x 12.2mm x 29mm,重量仅为9克。对于需要节省空间和重量的项目,这个尺寸非常合适。

  • 输出轴: 输出轴上带有十字盘,用于安装各种舵机臂,能够完成多种运动任务。

  • 安装耳: 外壳两侧有带通孔的耳朵,方便通过螺丝将舵机固定在机体上。

  • 线缆: 舵机连接到控制器的三线缆分别是:

    • 棕色线(GND):接地线。
    • 红色线(VCC):电源正极线,通常连接到+5V电源。
    • 橙色线(Signal):控制信号线,用于接收PWM信号,控制舵机的转动。

2. 工作原理

SG90舵机内部是一个闭环自动控制系统,包含四个关键部分:

  • 直流电机: 提供舵机的原始动力。

  • 减速齿轮组: 将电机的高速、低扭矩转动转换为舵机输出轴的低速、高扭矩转动。

  • 位置检测电位器: 连接在舵机的输出轴上,实时检测轴的旋转角度,并将电压值反馈给控制电路。

  • 控制电路板: 舵机的"大脑",它根据接收到的PWM信号和反馈的电压值来计算目标角度,并控制电机转动到目标位置。

3. 性能参数

了解SG90的性能非常重要,尤其是在实际应用时。以下是它的几个主要电气特性:

  • 工作电压: 一般工作电压为+5V,但它在3.5V至6V之间都能正常工作。不过,电压过低或过高会影响性能和扭矩。

  • 工作电流: 空闲状态时约10mA,转动时约100-200mA,堵转时电流会更高。所以务必使用独立电源来供电,避免从开发板的5V引脚取电,否则可能烧坏电路。

  • 扭矩: 在4.8V电压下,SG90的扭矩大约为1.5 kg·cm,而在6V电压下则可达到1.8 kg·cm。这意味着舵机可以驱动大约1.5-1.8公斤的物体。

  • 转动速度: 每转动60度大约需要0.1秒,因此它的速度适中,但并不适合需要非常快速响应的应用。

  • 转动角度: SG90舵机的转动范围是180度,因此可以在广泛的应用中进行调整。

4. 控制信号

SG90舵机通过PWM信号来控制转动。具体来说:

  • 信号类型: 50Hz(周期为20ms)的PWM方波信号。

  • 脉冲宽度与角度的关系: 每个周期中的高电平信号持续时间控制舵机的角度:

    • 0.5ms:舵机转到0度。
    • 1.5ms:舵机转到90度。
    • 2.5ms:舵机转到180度。
  • 注意事项: 如果脉冲宽度小于0.5ms或大于2.5ms,舵机的行为会不稳定,可能导致舵机停滞、抖动甚至损坏。

5. 优缺点总结

优点:

  • 低廉的价格: 这是SG90最具竞争力的特点,适合各种预算。
  • 结构紧凑,重量轻: 非常适合小型化项目。
  • 易于控制,入门友好: 使用标准PWM接口,库支持完备,容易上手。
  • 高集成度: 不需要用户自己设计复杂的控制系统。

缺点:

  • 扭矩较小: 无法驱动重负载。
  • 精度和一致性一般: 存在一定的死区,不同舵机的反应可能有所不同。
  • 齿轮易损坏: 如果超负荷使用,塑料齿轮容易磨损或损坏。
  • 抖动: 有时在目标位置会出现轻微的高频抖动。
  • 速度较慢: 不适合需要快速响应的场合。

6. 选型与使用注意事项

  • 替代选择: 如果你需要更高性能的舵机,可以考虑MG90S(金属齿轮)或DS系列舵机,这些舵机有更高的扭矩和精度。
  • 供电: 一定要为舵机提供独立的电源,不要从开发板的5V引脚供电,以免损坏开发板。
  • 保护: 避免舵机长时间处于堵转状态,安装机械限位,防止超负荷工作。
  • 程序保护: 在程序中避免让舵机从0度直接转到180度,加入延时可以让运动更加平滑。

三. 接线图

SG90舵机的接线非常简单。按照以下接线方式连接到STM32开发板:

  • **VCC(电源正极)**连接到5V(STLink 5V)。
  • **GND(地线)**连接到GND。
  • **Signal(信号线)**连接到B1引脚,用于接收控制信号。

四. CubeMX 配置

使用STM32时,我们可以通过CubeMX进行配置,设置PWM输出等功能。以下是CubeMX的一些配置截图,帮助你更好地理解舵机的控制方法。

五. 代码下载

通过网盘分享的文件:sg90.zip

链接: https://pan.baidu.com/s/1u_S9kg_WHDfS-93uWWGK_Q?pwd=jkcf 提取码: jkcf

相关推荐
北京迅为3 小时前
【北京迅为】iTOP-4412精英版使用手册-第三十五章 WEB控制LED
linux·嵌入式硬件·嵌入式·4412
暴富奥利奥4 小时前
完成docker方式的ros环境配置
linux·学习·docker·容器
总有刁民想爱朕ha4 小时前
AI大模型学习(17)python-flask AI大模型和图片处理工具的从一张图到多平台适配的简单方法
人工智能·python·学习·电商图片处理
Larry_Yanan5 小时前
QML学习笔记(三十一)QML的Flow定位器
java·前端·javascript·笔记·qt·学习·ui
与己斗其乐无穷5 小时前
C++学习记录(17)红黑树简单实现map和set
学习
杰瑞学AI5 小时前
我的全栈学习之旅:FastAPI (持续更新!!!)
后端·python·websocket·学习·http·restful·fastapi
The_Killer.5 小时前
近世代数(抽象代数)详细笔记--环(也有域的相关内容)
笔记·学习·抽象代数·
Larry_Yanan6 小时前
QML学习笔记(三十)QML的布局器(Layouts)
c++·笔记·qt·学习·ui
_李小白8 小时前
【OPENGL ES 3.0 学习笔记】第一天:认识渲染管道
笔记·学习