舵机使用基础(SG90模拟舵机和MG90S数字舵机为例)(附驱动程序)

本文介绍了舵机的基础知识,包括模拟舵机SG90和数字舵机MG90S的区别,它们的共同点在于机械结构,但数字舵机在性能和精度上有优势。舵机的工作原理是通过PWM信号控制角度,文中还提供了PWM波形与角度的关系,并讨论了舵机在不同状态下的电流消耗。12C5A60S2单片机的PWM驱动和舵机电路图也被提及。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工作环境(蓝色粗体字为特别注意内容)
1、系统环境:SG90模拟舵机、MG90S数字舵机、12C5A60S2单片机
2、参考文献:

很多不是航模或者机器人爱好者的同学可能舵机了解比较少,笔者也一样,只是单纯的单片机爱好者,只是有时候需要用舵机来控制一些机械机构,因此对舵机不是很了解。对新手来说可能会有以下疑问
1、舵机是什么?有什么作用?
2、数字舵机和模拟舵机的区别是什么?模拟舵机和数字舵机接口是否通用?
3、舵机的工作原理是怎么样的?
4、舵机控制方式是怎么样的?
5、舵机工作的时候电流是多大?
6、舵机是否需要驱动电路?

那么今天咱就来彻底的了解一下舵机的来龙去脉。有图有真相,咱们先来看看舵机长什么样。

 笔者为了弄清楚以上两个问题,特地从某宝买了以上两种舵机,都比较便宜,也非常好找,分别是SG90模拟舵机(蓝色塑料齿轮)<10元,MG90S(灰色金属齿轮)<20元。可以发现,金属齿轮比塑料齿轮要贵,数字舵机比模拟舵机要贵。那么下面咱们来一一解答上面的问题。

1、舵机是什么?有什么用?

### SG90MG90S舵机特点及参数对比 #### 舵机基本特性 SG90是一款常见的小型模拟舵机,通常用于低成本项目。其特点是价格低廉、体积小巧且易于驱动[^1]。相比之下,MG90S属于数字舵机,具有更高的精度更强的动力性能,适合需要高稳定性快速响应的应用场景[^1]。 | 参数 | SG90 (模拟) | MG90S (数字) | |--------------|----------------------------------|-------------------------------| | **电压范围** | 4.8V ~ 6V | 5V | | **扭矩** | ≈1.8kg·cm @ 4.8V | ≈2.5kg·cm @ 6V | | **速度** | 约0.1秒/60° | 约0.1秒/60° | | **齿轮材质** | 塑料 | 金属 | | **控制方式** | PWM模拟信号 | 数字PWM | | **成本** | 较低 (<10元) | 较高 (<20元) | #### 特点与优缺点分析 ##### SG90 (模拟舵机) - **优点**: - 成本极低,非常适合预算有限的小型项目[^1]。 - 易于驱动,仅需简单的PWM信号即可实现精确的角度控制[^2]。 - 小巧轻便,适用于空间受限的设计环境。 - **缺点**: - 扭矩较小,无法承受较大负载[^1]。 - 齿轮由塑料制成,长期使用可能磨损严重。 - 控制精度较低,不适合对位置精度要求较高的场合。 ##### MG90S (数字舵机) - **优点**: - 使用金属齿轮,耐用性强,能够适应更复杂的工况。 - 支持数字通信协议,具备更快的响应速度更高的稳定性[^3]。 - 动力强劲,可提供更大的扭矩输出。 - **缺点**: - 成本较高,对于简单应用来说性价比不足。 - 对电源质量要求更高,不稳定供电可能导致异常行为。 - 编程复杂度增加,尤其是当采用定时器中断等方式生成PWM信号时[^3]。 --- ### 应用场景分析 #### SG90适用场景 - 教育用途:如Arduino初学者实验套件中的机械臂模型开发[^2]。 - DIY玩具:制作简易机器人或其他互动装置。 - 实验验证:测试算法或概念原型阶段的理想选择。 #### MG90S适用场景 - 工业自动化设备:如精密装配线上的夹具操作部件。 - 高端消费电子产品:无人机云台、摄影滑轨等领域。 - 复杂运动控制系统:涉及多自由度联动机构设计的情况。 --- ### 为何选择SG90? 尽管MG90S在许多方面表现优于SG90,但在某些特定条件下仍会选择后者作为解决方案: 1. **经济因素考虑**:如果目标是构建一个低成本系统,则优先选用价格更低廉的SG90舵机会更加合理[^1]。 2. **资源约束下的简化需求**:针对一些只需要完成基础动作而无需过多关注细节处理的任务而言,利用现成库文件就能轻松操控SG90的优势显得尤为突出[^2]。 3. **学习目的导向的选择**:新手开发者往往倾向于从较为容易理解实践的对象入手,因此入门级教程大多围绕像SG90这样的产品展开讲解[^2]。 综上所述,在满足功能前提下兼顾效率与开销平衡的情况下,选取SG90不失为明智之举。 ```python #include <Servo.h> // 引入伺服电机库 Servo sg90; // 创建名为sg90的服务对象实变量 void setup() { sg90.attach(9); // 绑定到第9号数字I/O口 } void loop() { for(int angle = 0; angle <= 180; angle++) { sg90.write(angle); delay(15); } for(int angle = 180; angle >= 0; angle--) { sg90.write(angle); delay(15); } } ``` 上述代码展示了如何通过Arduino平台控制SG90舵机连续摆动的过程。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值