美文网首页玩转树莓派arduino玩转Arduino
Arduino基础入门篇28—舵机控制

Arduino基础入门篇28—舵机控制

作者: TonyCode | 来源:发表于2019-03-22 09:40 被阅读0次

舵机是一种位置「角度」伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前在高档遥控玩具、航模、机器人中已经得到普遍使用。舵机是一种俗称,其实是一种伺服马达。本篇通过官方驱动库来实现舵机控制。

1. 舵机介绍

  • 结构组成
    舵机实际上是一种位置伺服的驱动器,主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。
内部结构
  • 工作原理
    舵机内部有一个基准电路,产生周期为20ms、宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。经过电路板IC方向判断,再驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回信号,判断是否已经到位。

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

PWM控制
  • 外部接线
    舵机一般都外接三根线,分别用棕、红、橙三种颜色进行区分,由于品牌不同,颜色也会有所差异,棕色为接地线,红色为电源正极线,橙色为信号线。
控制线

由于Arduino的驱动能力有限,当需要控制多个舵机时,需要外接电源以及使用专用的舵机控制板。

舵机控制板

2. 实验材料

  • Uno R3开发板
  • 配套USB数据线
  • 配套连接线
  • 舵机

3. 实验步骤

1. 根据原理图搭建电路。

线路连接非常简单,舵机红色线接开发板5V,棕色线接开发板GND,橙色信号线接开发板数字引脚9。

实验原理图如下图所示:

实验原理图

实物连接图如下图所示:

实物连接图

2. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。

#include <Servo.h>

Servo myservo;  // 定义Servo对象来控制
int pos = 0;    // 角度存储变量

void setup() {
  myservo.attach(9);  // 控制线连接数字9
}

void loop() {
  for (pos = 0; pos <= 180; pos ++) { // 0°到180°
    // in steps of 1 degree
    myservo.write(pos);              // 舵机角度写入
    delay(5);                       // 等待转动到指定角度
  }
  for (pos = 180; pos >= 0; pos --) { // 从180°到0°
    myservo.write(pos);              // 舵机角度写入
    delay(5);                       // 等待转动到指定角度
  }
}

3. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。

程序下载

4. 实验现象

舵机在0°和180°间不断转动。

实验现象

5. 库函数介绍

用Arduino控制舵机一般有两种方法:

  1. 通过Arduino的普通数字引脚产生占空比不同的方波,模拟产生PWM信号进行舵机控制。
  2. 直接利用Arduino自带的Servo库进行控制,但是自带库只支持数字引脚9和10接口。

Servo库常用函数:

  • Attach(接口)—设定舵机接口,只能选择数字引脚9或者10。
  • Write(角度)—用于设定舵机旋转的角度,可设定范围0°—180°。
  • Read()—用于读取舵机角度的语句,可理解为读取最后一条write()命令中的值。

相关文章

  • Arduino基础入门篇28—舵机控制

    舵机是一种位置「角度」伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前在高档遥控玩具、航模、机器...

  • Arduino控制舵机

    一、使用工具 1、Arduino UNO 2、RB-15PG舵机 二、参数(数据来自奥松机器人官网) 1.重量:9...

  • Arduino 舵机控制

    SG90舵机: SG90 9克舵机是目前市面上最便宜也是最常见的舵机,最大角度为180度。9克指的是舵机重量为9克...

  • Arduino 控制舵机

    实验一 2s后旋转到90°位置、2s后旋转到180°位置 接线图 棕色红色黄GNDVCC(5V)D2 代码 实验二...

  • (3)Arduino控制舵机

    1,准备材料 ?Arduino uno开发板 ?USB数据线 ?SG90舵机 ?杜邦线3根 2,软件 ?Ardui...

  • 关于Arduino舵机的控制

    舵机是一种位置伺服的驱动器,主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。一种位置(角度)伺服的驱动器...

  • Arduino库

    一、Arduino库是什么 话不多说先上图 相信看过本人的《每天一点单片机知识系列之Arduino控制舵机》会对S...

  • 使用 python GUI(tkinter) 和 ROS的消息传

    简单的例子: 用两个按钮控制气泵 开启,关闭 用一个滑块控制舵机旋转角度 接线部分: Arduino部分的代码 将...

  • 12.07每日总结

    今天我们学习的是舵机还有中断的程序,先说说舵机,舵机还像以前arduino里边的一样,在pytho里边,有一个关于...

  • 基于ROS实现人脸跟随(关键词:人脸跟随,ROS,OpenCV,

    该测试欲达成目标是实现人脸跟随! 1 硬件 摄像头:1个; USB数据线:1个; 舵机:1个; Arduino控制...

网友评论

    本文标题:Arduino基础入门篇28—舵机控制

    本文链接:https://www.haomeiwen.com/subject/zqakvqtx.html