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

相关推荐
im_AMBER2 小时前
React 17
前端·javascript·笔记·学习·react.js·前端框架
LaoZhangGong1232 小时前
STM32 F103外部晶振8MHz改为12MHz,如何配置?
c语言·stm32·单片机·嵌入式硬件·晶振
谷歌开发者3 小时前
Web 开发指向标 | Chrome 开发者工具学习资源 (六)
前端·chrome·学习
GilgameshJSS3 小时前
STM32H743-ARM例程41-FMC_INDEP
arm开发·stm32·单片机·嵌入式硬件
QT 小鲜肉4 小时前
【QT/C++】Qt定时器QTimer类的实现方法详解(超详细)
开发语言·数据库·c++·笔记·qt·学习
某林2125 小时前
如何使用ROS 2与STM32进行串口通信,并实现通过键盘按键‘1’来控制LED灯开关
stm32·嵌入式硬件·计算机外设
Mr.Jessy5 小时前
Web APIs 学习第五天:日期对象与DOM节点
开发语言·前端·javascript·学习·html
存在morning5 小时前
【人工智能学习笔记 三】 AI教学之前端跨栈一:React整体分层架构
笔记·学习·架构
hazy1k5 小时前
51单片机基础-PWM、频率与占空比
stm32·单片机·嵌入式硬件·51单片机
巫婆理发2225 小时前
评估指标+数据不匹配+贝叶斯最优误差(分析方差和偏差)+迁移学习+多任务学习+端到端深度学习
深度学习·学习·迁移学习