0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

arduino如何控制舵机及详细步骤

姚小熊27 来源:网络整理 2018-05-11 14:28 次阅读

舵机控制方法

舵机的伺服系统由可变宽度的脉冲来进行控制,控制线是用来传送脉冲的。脉冲的参数有最小值,最大值,和频率。一般而言,舵机的基准信号都是周期为20ms,宽度为1.5ms。这个基准信号定义的位置为中间位置。舵机有最大转动角度,中间位置的定义就是从这个位置到最大角度与最小角度的量完全一样。最重要的一点是,不同舵机的最大转动角度可能不相同,但是其中间位置的脉冲宽度是一定的,那就是1.5ms。如下图:

arduino如何控制舵机及详细步骤

角度是由来自控制线的持续的脉冲所产生。这种控制方法叫做脉冲调制。脉冲的长短决定舵机转动多大角度。例如:1.5毫秒脉冲会到转动到中间位置(对于180°舵机来说,就是90°位置)。当控制系统发出指令,让舵机移动到某一位置,并让他保持这个角度,这时外力的影响不会让他角度产生变化,但是这个是由上限的,上限就是他的最大扭力。除非控制系统不停的发出脉冲稳定舵机的角度,舵机的角度不会一直不变。

当舵机接收到一个小于1.5ms的脉冲,输出轴会以中间位置为标准,逆时针旋转一定角度。接收到的脉冲大于1.5ms情况相反。不同品牌,甚至同一品牌的不同舵机,都会有不同的最大值和最小值。一般而言,最小脉冲为1ms,最大脉冲为2ms。如下图:

arduino如何控制舵机及详细步骤

Arduino控制舵机的两种方法

1、第一种是通过Arduino的普通数字传感器接口产生占空比不同的方波,模拟产生PWM信号进行舵机定位。

2、第二种是直接利用Arduino自带的Servo函数进行舵机的控制,这种控制方法的优点在于程序编写,缺点是只能控制2路舵机,因为Arduino自带函数只能利用数字9、10接口。Arduino的驱动能力有限,所以当需要控制1个以上的舵机时需要外接电源。

arduino如何控制舵机及详细步骤

工具/原料:

Arduino 实验套件(Arduino UNO控制器,面包板,跳线,USB数据线)

80度旋转舵机 * 1 个

双头等长标准 2.54mm 排针 * 若干

方法/步骤:

1、准备实验需要用到的硬件,如图所示:

arduino如何控制舵机及详细步骤

2、如下图所示进行硬件的连接,此步我们先不连接任何其他元件,只需将Arduino UNO控制器连接到电脑

arduino如何控制舵机及详细步骤

3、如下图所示,我们先不使用电位计控制,只是使用程序来控制一个舵机,将下列程序复制到Arduino IDE中或者可以直接在最后一步中提供的百度网盘地址中直接下载代码和 Fritzing 电路图

#include 《Servo.h》

Servo myservo;

int pos = 0;

void setup()

{

myservo.attach(9);

}

void loop()

{

for(pos = 0; pos 《= 180; pos += 1)

{

myservo.write(pos);

delay(15);

}

for(pos = 180; pos》=0; pos-=1)

{

myservo.write(pos);

delay(15);

}

}

arduino如何控制舵机及详细步骤

4、如图所示,选择正确的板卡型号和端口,将程序上传到控制器中。

arduino如何控制舵机及详细步骤

5、如图所示,程序上传无误的情况下 Arduino IDE 软件会显示如下结果,在上传过程中,Arduino 控制器板载的 TX RX 灯会频闪

arduino如何控制舵机及详细步骤

6、如下图所示,使用舵盘连接螺丝,连接舵盘和舵机

arduino如何控制舵机及详细步骤

7、按照下图中的电路,进行实验硬件的连接

注意:舵机线一种是:红、黑、黄(红色连接 Vcc、黑色连接 GND、黄色连接信号 S)

还有较为常见的一种是:棕、红、橙(棕色连接 GND、红色连接 Vcc、橙色连接信号 S)

8、实验效果如图所示,舵机会自动从 -90 度转动到 90 度,再从 90 度转动到 -90 度。注意当 Arduino UNO 控制器连接到电脑供电时,舵机会自动归回中间位置

9、代码回顾:

(1)#include《Servo.h》 载入 Servo.h 库文件

(2)Servo myservo; 建立一个舵机对象,名称为 myservo

(3)myservo.attach(9); 将引脚 9 上的舵机与舵机对象连接起来

attach 函数连接一个舵机对象到指定的引脚上,attch 函数可以有 1 或 3 个参数。如果使用 3 个函数,第一个参数表示引脚,第二个参数表示最小角度(0度)的脉冲宽度,单位是微秒(默认是 544),第三个参数表示最大角度(180度)的脉冲宽度,单位是微秒(默认是2400)。通常情况下,只需要设置舵机引脚,忽略第二和第三个参数。

(4)myservo.write(pos); 写角度到舵机

代码位置如下图所示:

arduino如何控制舵机及详细步骤

10、硬件回顾:

舵机:包括一个直流点击,一套装在电机和输出轴之间的齿轮系统,一个位置传感结构和一个控制电路。位置传感机构检测舵机的位置并提供给控制系统,控制系统使用电机控制舵机臂运动到指定位置。有很多不同尺寸、速度、精度的舵机,功率越大、精度越高的舵机相对价位也比较高。使用汽车、机器人、飞机时,舵机是很常用的一种方式。通过PWM信号实现舵机位置的控制,一般来说脉宽在 500 微秒到 2500 微秒之间,舵机从 -90 到 90 度。下图所示为舵机的内部结构图

arduino如何控制舵机及详细步骤

11、下图分别为(1)舵机控制原理(2)舵机扭矩计算方法(3)输入脉冲宽度与舵机角度对应关系图,供大家参考

arduino如何控制舵机及详细步骤

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 舵机
    +关注

    关注

    17

    文章

    270

    浏览量

    41042
  • Arduino
    +关注

    关注

    188

    文章

    6469

    浏览量

    187118
收藏 人收藏

    评论

    相关推荐

    arduino学习笔记21 - 舵机控制实验

    舵机是什么这里就不详细介绍了,详情请看论坛里《舵机详解》帖子这里使用arduino duemilanove通过电位器控制一个
    发表于 10-24 10:16

    Arduino2560 控制圆周舵机

    求各位大神,Arduino2560 控制圆周舵机怎么编写程序啊~急求~
    发表于 05-04 20:17

    Arduino如何利用红外感应控制舵机

    实现功能:当红外感应到人时,控制舵机转动180度参考:基于Arduino的多种方式控制舵机舵机
    发表于 06-28 11:17

    Arduino控制舵机的方法有哪几种啊?

    什么是舵机?用Arduino控制舵机的方法有哪几种啊?分别有什么优点?Arduino是如何控制
    发表于 07-21 06:36

    Arduino调试舵机的方法步骤

    Arduino调试舵机的方法步骤
    发表于 01-18 07:54

    arduino如何控制舵机

    arduino如何控制舵机
    发表于 01-19 06:04

    请问arduino如何控制两路舵机

    请问arduino如何控制两路舵机
    发表于 01-20 07:51

    【教程】在彩屏上画一个舵机Arduino控制效果出奇的好!有附件

    Arduino的学习应用中,舵机控制非常的普及,也非常的重要。本教程带小伙伴在彩屏上制作一个虚拟舵机,通过控制器发送指令
    发表于 04-07 14:55

    详细舵机控制原理资料

    舵机详细资料。讲解的比较详细。可以看看。
    发表于 05-06 15:06 55次下载

    使用Arduino为微控制器打造能用舵机控制的游戏平台

    本文主要介绍了使用Arduino为微控制器打造能用舵机控制的游戏平台.
    发表于 06-25 10:00 14次下载

    舵机的介绍和如何使用Arduino控制舵机详细概述

    舵机是一种位置伺服的驱动器,主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。其工作原理是由接收机或者单片机发出信号给舵机,其内部有一个基准电路,产生周期为20ms,宽度为1.5ms 的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。
    发表于 07-23 08:00 20次下载

    Arduino的实验例程之9克舵机实验的详细资料说明

    本文档的主要内容详细介绍的是Arduino的实验例程之9克舵机实验的详细资料说明。
    发表于 02-25 16:36 14次下载

    Arduino的实验例程之9克舵机实验的详细资料说明

    本文档的主要内容详细介绍的是Arduino的实验例程之9克舵机实验的详细资料说明。
    发表于 02-25 16:36 30次下载

    Arduino UNO驱动数字舵机

    Arduino UNO驱动数字舵机舵机数字舵机工作原理数字舵机与模拟舵机区别EMAX ES08M
    发表于 11-30 12:06 15次下载
    <b class='flag-5'>Arduino</b> UNO驱动数字<b class='flag-5'>舵机</b>

    通过Arduino控制舵机

    本文主要介绍通过Arduino控制舵机,步进电机以及循环的使用。对于Arduino控制舵机的方法
    发表于 03-23 13:52 1次下载
    通过<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b><b class='flag-5'>舵机</b>