教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

arduino足球机器人教材 - 图文(12)

来源:网络收集 时间:2026-08-02
导读: Arduino足球机器人教材 3.2.3舵机的控制协议 舵机的伺服系统由可变宽度的脉冲来进行控制,控制线是用来传送脉冲的。脉冲的参数有最小值,最大值,和频率。一般而言,舵机的基准信号都是周期为20ms,宽度为1.5ms。这

Arduino足球机器人教材

3.2.3舵机的控制协议

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

图2-8

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

度,舵机的角度不会一直不变。

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

2ms。如下图:

42

Arduino足球机器人教材

图2-9

虽然舵机看起来很复杂,但是arduino IDE已经集成了舵机控制库,我们只需要在程序开头调用库Servo.h就可以了,省去了繁琐的信号控制,时序等问题,只要给舵机配置好端口,初始位置,然后给出目标角度,舵机就会转过去了。

3.2.4 舵机实验操作

Arduino有舵机应用库,把180在第6接口,接线图如下。

接线图:

43

Arduino足球机器人教材

Arduino有舵机应用库,把180度舵机接在第6接口,舵机

控制程序如下。

例程1:

#include //舵机的函数库 Servo myservo; //定义舵机变量

int pos = 80; //舵机初始化80度

void setup() {

myservo.attach(6); //初始化使用第6个引脚 myservo.write(pos); //先让舵机回归80°中心点 }

void loop() {

myservo.write(pos); //下角度指令给舵机 for(;pos<90;pos++) {

myservo.write(pos); //下角度指令给舵机,170度 delay(10); //等待10ms }

for(;pos<90;pos--) {

myservo.write(pos); //下角度指令给舵机,80度 delay(10); //等待10ms } }

烧录例程,舵机初始位置为80度,舵机旋转到180度,再旋转到80度。知识点:

描述

44

Arduino足球机器人教材

将指定的引脚控制脉冲控制舵机。 语法

attach(接口)——设定舵机的接口。

write(角度)——用于设定舵机旋转角度的语句,可设定的角度范围是0°到180°。

read()——用于读取舵机角度的语句,可理解为读取最后一条write()命令中的值。

attached()——判断舵机参数是否已发送到舵机所在接口。

detach()——使舵机与其接口分离,该接口(9或10)可继续被用作PWM接口。

writeMicroseconds(uS)——写一个值在微秒(uS)到伺服舵机,控制相应的轴。在一个标准的伺服系统,这将为角度的轴。在标准的伺服系统参数值1000完全是逆时针方向的,2000是完全顺时针,1500是在中间。

注:以上语句的书写格式均为“舵机变量名.具体语句()”例如:myservo.attach(9)

逻辑:

舵机初始位置为80度,舵机逆时针旋转1度,循环70次,舵机旋转到170度。舵机顺时针旋转1度,循环70次,舵机旋转到80度。

实验现象:

下载例程1,舵机初始位置为80度,舵机旋转到180度,再旋转到80度。

45

Arduino足球机器人教材

3.3.直流电机实验操作

控制电机正反转。接线图如下,电机接在M1口。 接线图:

例程:

#include int buttonpin(9);

AF_DCMotor motor1(1); void setup() {

motor1.setSpeed(255); }

void loop() {

motor1.run(BACKWARD); //正转 delay(10000); //延时10秒 motor1.run(RELEASE); //停止 delay(5000); //延时5秒 motor1.run(FORWARD); //反转 delay(10000); //延时10秒 }

知识点:

46

…… 此处隐藏:167字,全部文档内容请下载后查看。喜欢就下载吧 ……
arduino足球机器人教材 - 图文(12).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/615386.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)