舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。在高档遥控玩具,如飞机、潜艇模型,遥控机器人中已经得到了普遍应用。
舵机主要适用于那些需要角度不断变化并可以保持的控制系统, 比如人形机器人的手臂和腿, 车模和航模的方向控制。舵机的控制信号实际上是一个脉冲宽度调制信号( PWM信号), 该信号可由FP-GA器件、模拟电路或单片机产生。
舵机简单的说就是集成了直流电机、电机控制器和减速器等,并封装在一个便于安装的外壳里的伺服单元。舵机可以根据你的指令旋转到0至180度之间的任意角度然后精准的停下来。能够利用简单的输入信号比较精确的转动给定角度的电机系统。舵机安装了一个电位器(或其它角度传感器)检测输出轴转动角度,控制板根据电位器的信息能比较精确的控制和保持输出轴的角度。
本实验使用电位器控制舵机的角度,为此需要同时连接舵机和电位器。
# 部署
- 电位器连接到OSEPP UNO的
A0
引脚。 - 舵机连接到OSEPP UNO的
3
号引脚。
# 连线图
# 程序搭建
- oseppBlock 积木知识
舵机模块积木。定义名称和引脚
舵机执行指令模块,数值只能在0-180
之间。
oseppBlock代码
Arduino代码
#include <Servo.h> Servo servo1; void setup() { servo1.attach(3); //定义舵机引脚 //potentiometer1 pinMode(A0, INPUT); //定义电位器引脚 } void loop() { servo1.write(map(analogRead(A0), 0, 1023, 0, 180)); //把电位器的值映射到舵机输出 }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 运行结果
当转动电位器,舵机也会随之转动。电位器旋转到左边最小时舵机处于0度
,电位器转到右边最大值时舵机处于180度
位置。
# 解析
舵机只能在0-180
度工作,所以要电位器的输入范围0-1023
映射成0-180
。
# 操作视频
← 步进电机-自动感应门 超声波模块-测距 →