我想大家已经掌握了最基础的点灯了,今天让我们学习控制一个新的东西-舵机。在开始之前,我先给大家普及一下舵机的相关知识。

舵机的工作原理

舵机是一种带有闭环控制系统的电机,通过接收PWM(脉宽调制)信号来控制输出轴的角度。内部包含电机、减速齿轮组、电位器和控制电路。电位器检测当前角度,控制电路比较目标信号与当前角度,驱动电机转动至目标位置。

舵机的核心参数

  • 工作电压:常见4.8V~6V,高压舵机可达7.4V。
  • 扭矩:单位kg·cm,表示舵机在1cm力臂上可输出的力矩。
  • 速度:单位秒/60°,指转动60度所需时间。
  • 转动范围:标准舵机为0°~180°,连续旋转舵机可无限转动。

控制信号要求

舵机通过PWM信号控制,典型参数如下:

  • 周期:通常20ms(50Hz)。
  • 脉宽范围:0.5ms~2.5ms,对应0°~180°(标准舵机)。

舵机类型

  1. 标准舵机:角度固定范围,适合机械臂、机器人关节。
  2. 连续旋转舵机:可360°旋转,替代直流电机,需控制转速和方向。
  3. 数字舵机:响应更快,精度更高,支持更高频率控制信号。
  4. 高压舵机:支持7.4V以上电压,提供更大扭矩。

常见问题与解决

  • 抖动:检查电源是否稳定,确保供电电流足够(建议单独供电)。
  • 无法转动:确认信号线连接正确,PWM信号参数是否符合要求。
  • 发热严重:避免长时间堵转,减少机械负载或选择更高扭矩型号。

应用场景

  • 机器人关节控制
  • 遥控模型(车/船/飞机)
  • 自动化设备(如摄像头云台)
  • 教育项目(如机械臂实验)

了解完舵机,让我们开始今天的学习!

硬件准备

  • Arduino开发板(如Arduino Uno)
  • 舵机(如SG90)
  • 杜邦线若干
  • 面包板(可选)

连接电路

舵机有三根线:电源线(红色)、地线(棕色/黑色)、信号线(黄色/橙色)。

  • 舵机电源线接Arduino的5V引脚
  • 舵机地线接Arduino的GND引脚
  • 舵机信号线接Arduino的数字引脚(如9号引脚)

安装Servo库

Arduino IDE自带Servo库,无需额外安装。若需确认,可通过菜单栏选择:草图 > 包含库 > Servo

编写代码

以下代码实现舵机从0度到180度往复转动:

#include <Servo.h>

Servo myservo;  // 创建舵机对象
int pos = 0;    // 存储舵机角度

void setup() {
  myservo.attach(9);  // 将舵机连接到9号引脚
}

void loop() {
  for (pos = 0; pos <= 180; pos += 1) { // 0°→180°
    myservo.write(pos);                 // 设置舵机角度
    delay(15);                          // 等待舵机转动
  }
  for (pos = 180; pos >= 0; pos -= 1) { // 180°→0°
    myservo.write(pos);
    delay(15);
  }
}

注意事项

  • 若舵机功率较大(如MG996R),需外接电源,避免Arduino板载稳压器过载。
  • delay()时间影响转动速度,可根据实际需求调整。
  • 舵机角度范围通常为0°~180°,部分型号可能略有差异。

谢谢大家的观看,同时如果喜欢3d打印和嵌入式开发的可以私信我!

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐