SG90舵机

1.0 简介

舵机:是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的伺服控制系统。在高档遥控玩具,如飞机、潜艇模型,遥控机器人中已经得到了普遍应用。本篇通过官方驱动库和自定义函数来实现舵机控制。

舵机结构

外形结构:主要是由外壳、无核心马达、四级减速齿轮、电路板和位置检测器所构成。

工作原理:

工作原理

其工作原理是由接收机或者单片机发出信号给舵机,其内部有一个基准电路,产生周期为20ms,宽度为1.5ms 的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。经由电路板上的IC 判断转动方向,再驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回信号,判断是否已经到达定位。

PWM波

舵机转动的角度是通过调节PWM「脉冲宽度调制」信号的占空比来实现的。标准的PWM信号的周期固定为20ms,理论上脉宽分布应该在1ms到2ms之间,实际上可由0.5ms到2.5ms之间,脉宽与转角0°—180°相对应。不同厂家不同型号的舵机也会有所差异。

SG90舵机(180°)相关参数见下表:

参数表

2.0 实验材料

Arduino Uno R3开发板 USB数据线 三根公母线 SG90舵机 一台安装Arduino开发环境的电脑

3.0 实验步骤

3.1 根据原理图搭建电路

舵机红色线接开发板5V,棕色线接开发板GND,橙色信号线接开发板数字引脚10。

3.2 新建sketch,拷贝如下代码并进行保存编译上传

代码1:

代码2:

3.3 实验现象

4.0 总结

用Arduino 控制舵机的方法有两种,代码1是直接利用Arduino 自带的Servo 函数进行舵机的控制,这种控制方法的优点在于程序编写,缺点是只能控制2 路舵机,因为Arduino 自带函数只能利用数字9、10 接口。代码2是通过Arduino 的普通数字传感器接口产生占空比不同的方波,模拟产生PWM 信号进行舵机定位,控制原理更加清晰。 Arduino 的驱动能力有限,所以当需要控制1 个以上的舵机时需要外接电源。

Last updated

Was this helpful?