求arduino 360舵机软件中红外传感器控制一个舵机的程序代码,谢谢 在线等

扫我~扫我~
获取更多资讯
当前位置:& &
查看: 3222|回复: 9
关于使用Arduino控制器直接控制舵机的问题
主题帖子积分
大松籽, 积分 70, 距离下一级还需 131 积分
大松籽, 积分 70, 距离下一级还需 131 积分
我刚买的舵机,我将它安装完,装成图片中那样,不知道有没有错,之后用手装动它,为什么他向左可以转180度,向右只能转45度?还有舵机那三根线请问哪根是接地,哪根是接5V电压的
(21.07 KB, 下载次数: 6)
23:29 上传
(31.74 KB, 下载次数: 1)
23:29 上传
主题帖子积分
您好,不太明白您的意思,你是说,它能向左转动180度呢?还是它能转到180度呢?同样右边是转动45度,还是转到45度呀!这两个概念不相同,如果是转动你说的角度,很可能你安装的时候舵机不在中位,也就是90度,如果是可以转动你说的角度,这个你就需要联系下客户,拍下视频,做售后。
最后,舵机的橘黄色线是信号线,红色线是电源线,棕色线是地。
主题帖子积分
大松籽, 积分 70, 距离下一级还需 131 积分
大松籽, 积分 70, 距离下一级还需 131 积分
我问客服,他跟我说舵机不需要写代码,直接充电就可以转动,但我觉得应该要给它写代码才能转动吧,要不要写代码呢?
主题帖子积分
关于舵机的程序书写和控制方式,您可以参考如下文章
主题帖子积分
大松籽, 积分 70, 距离下一级还需 131 积分
大松籽, 积分 70, 距离下一级还需 131 积分
本帖最后由 111 于
16:31 编辑
by BARRAGAN &&
This example code is in the public domain.
modified 8 Nov 2013
by Scott Fitzgerald
#include &Servo.h&
S&&// create servo object to control a servo
& && && && && & // twelve servo objects can be created on most boards
int pos = 0;& & // variable to store the servo position
void setup()
&&myservo.attach(9);&&// attaches the servo on pin 9 to the servo object
void loop()
&&for(pos = 0; pos &= 180; pos += 1) // goes from 0 degrees to 180 degrees
&&{& && && && && && && && && && && & // in steps of 1 degree
& & myservo.write(pos);& && && && &&&// tell servo to go to position in variable 'pos'
& & delay(15);& && && && && && && &&&// waits 15ms for the servo to reach the position
&&for(pos = 180; pos&=0; pos-=1)& &&&// goes from 180 degrees to 0 degrees
&&{& && && && && && && && && && &&&
& & myservo.write(pos);& && && && &&&// tell servo to go to position in variable 'pos'
& & delay(15);& && && && && && && &&&// waits 15ms for the servo to reach the position
我把这段代码上传到Arduino中,舵机刚开始慢慢的转一下,后面就不会转,但是有滴滴的声音,用手碰下电机,里面有东西在动。这是怎么回事
主题帖子积分
0、请您检查舵机是否正确连接到数字9引脚。
1、请您检查供电是否足够,单个电机供电需要5V 500mA的单独供电。
2、请你看下舵机是否卡住,在用手转动时,是否会有卡齿的问题。
3、如果发现舵机发热,或者噪声较大,请您联系下客服人员。联系时,请附相关代码与视频。
主题帖子积分
大松籽, 积分 70, 距离下一级还需 131 积分
大松籽, 积分 70, 距离下一级还需 131 积分
客服叫我去论坛问客服,我是用数据线连接电脑供电的,连线如图,有错吗?
(93.53 KB, 下载次数: 3)
11:57 上传
主题帖子积分
客服叫我去论坛问客服,我是用数据线连接电脑供电的,连线如图,有错吗? ...
你好,你所选用舵机是一个6KG级舵机,需要进行单独供电,板载供电可能会造成芯片系统供电不稳定,而重启。所以会出现你说的问题。
主题帖子积分
大松籽, 积分 70, 距离下一级还需 131 积分
大松籽, 积分 70, 距离下一级还需 131 积分
请问6KG 级是什么意思?& &&&重启是不是主板里的代码被清空了?& && && && & 那得用什么供电?
主题帖子积分
请问6KG 级是什么意思?& &&&重启是不是主板里的代码被清空了?& && && && & 那得用什么供电? ...
6Kg/cm是指舵机的扭矩,因为舵机启动时候需要电流较大,会造成控制器重启,建议您用外部电源进行供电,电压为4-6v即可,再将舵机与Arduino控制器供地即可~查看: 49970|回复: 57
arduino学习笔记21 - 舵机控制实验
舵机是什么这里就不详细介绍了,详情请看论坛里《》帖子
这里使用arduino duemilanove通过电位器控制一个舵机转动
使用原件:
arduino duemilanove一块
10K电位器一个
面包板一个
面包板连接线若干
这里要注意,不要使用电脑usb供电,因为如果电流需求大于500ma,会有烧毁usb的可能,推荐使用电池外置供电。
电位器左右两脚分别接3.3V和GND,中间接模拟口0。
舵机接5V和GND,信号口接数字7号口。
先上硬件连接图
Snap2.jpg (93.96 KB, 下载次数: 140)
21:29 上传
IMGP5433_调整大小.JPG (202.43 KB, 下载次数: 124)
21:29 上传
把下面代码下载进入arduino,然后再进行线路连接,运行时一定要使用电池供电。[pre lang=&arduino& line=&1&]int readPin = 0;& &//用来连接电位器
int servopin = 7;& & //定义舵机接口数字接口7
void servopulse(int angle)//定义一个脉冲函数
&&int pulsewidth=(angle*11)+500;&&//将角度转化为500-2480的脉宽值
&&digitalWrite(servopin,HIGH);& & //将舵机接口电平至高
&&delayMicroseconds(pulsewidth);&&//延时脉宽值的微秒数
&&digitalWrite(servopin,LOW);& &&&//将舵机接口电平至低
&&delayMicroseconds(20000-pulsewidth);
void setup()
&&pinMode(servopin,OUTPUT);//设定舵机接口为输出接口
void loop()
&&//读取电位器(传感器)的读数,接到3.3V,值范围从0到660左右
&&int readValue = analogRead(readPin);
&&//把值的范围映射到0到165左右
&&int angle = readValue / 4;
&&//发送50个脉冲
&&for(int i=0;i&50;i++)
& & //引用脉冲函数
& & servopulse(angle);
}[/pre]下面是实验效果
如果我使用的是MAP函数呢
ck59505 发表于
如果我使用的是MAP函数呢
map函数?map是啥。。。。。
这是我们老师说的,比如。。这样,用的是9号口
11 void setup()&&
13& &myservo.attach(9);
16 void loop()&&
18& &val = analogRead(potpin);& && && && &
19& &val = map(val, 0, 9);& &//使得角度再0~180
20& &myservo.write(val);& && && && && && &
21& &delay(15);& && && && && && && && &&&
ck59505 发表于
这是我们老师说的,比如。。这样,用的是9号口
哦,这段代码是使用Servo库,map函数确实不错,使用后的程序很简练。我看了下官网的,这段程序是官网的程序,肯定是可以工作的。
map函数在20版本里面有哦,控制电机精度很准,就是里面的延时时间好像有点长,稍微改一下,效果很好。
弘毅 发表于
map函数?map是啥。。。。。
为啥我的舵机抖个不停呢,而且电位器控制不了··
回复地方 发表于
为啥我的舵机抖个不停呢,而且电位器控制不了··
有外部供电嘛,不要用usb供电
弘毅 发表于
有外部供电嘛,不要用usb供电
“把USB烧毁”是什么意思?是Arduino的USB接口吗?
“电流需求大于500ma”是指带动舵机工作的电流吗?
本帖最后由 树·水·风 于
16:31 编辑
弘毅 发表于
哦,这段代码是使用Servo库,map函数确实不错,使用后的程序很简练。我看了下官网的,这段程序是官网的程 ...#include &Servo.h&
const int pinPotentiometer = 5;
const int pinServo = 3;
S
void setup(){
&&servo.attach(pinServo);
&&Serial.begin(9600);
}
void loop(){
&&value = analogRead(pinPotentiometer);
&&Serial.println(value);
&&angle = value / 4;
&&servo.write(angle);
&&delay(10);
}复制代码这是我写的,没有用外接电源。效果正常,就是抖动有点厉害,手一触碰电位器,就能感觉舵机的震动,虽然整体角度不变。下一步打算找办法消除抖动。
我不明白的是以下几个问题:
1. duemilanove板子的工作电压是5V,但外部输入电压建议是7-12V,我不明白两者有什么区别。我直接用9V的外接电源连上了那个圆形的电源接口,没发现什么异常。另外,是不是接了外接电池就不能连USB了?
2. 用电脑USB口供电时,电脑的输出电压恒定吗?用外接电源供电时,板子上能提供5V和3.3V的电压输出是不是因为板子上有电压转换电路转换过了。
3. 外接电源除了圆形的插口,是不是也可以用导线连接Vin口、Gnd到电池上。
Powered by第8卷第Knowledge15期(2012年5月;Tel:+86-551-;基于Arduino的舵机控制系统设计;蔡睿妍;(大连大学信息工程学院,辽宁大连116622);摘要:舵机是传统的角度控制驱动器,在机器人等领域;关键词:Arduino;舵机;脉宽信号;角度控制;中图分类号:TM383.4;CAIRui-yan;(Informa
第8卷第Knowledge15期(2012年5月)电脑知识与技术ComputerandTechnologyVol.8,No.15,May2012.ISSNComputerKnowledgeandTechnology电脑知识与技术http://www.E-mail:kfyj@
Tel:+86-551-64
基于Arduino的舵机控制系统设计
(大连大学信息工程学院,辽宁大连116622)
摘要:舵机是传统的角度控制驱动器,在机器人等领域得到了广泛应用。传统的舵机主要采用单片机系统驱动控制,但单片机系统对多个舵机同时进行驱动效果并不理想,因此,采用了流行的开源Arduino控制板,通过输出不同脉宽的信号进行舵机转动角度控制,实验证明,该系统实现了舵机角度控制,满足舵机角度控制精度要求,为舵机的驱动提供了新方式。
关键词:Arduino;舵机;脉宽信号;角度控制
中图分类号:TM383.4
CAIRui-yan
(InformationandEngineeringCollegeofDalianUniversity,Dalian116622,China)
Abstract:Theservoisthetraditionalanglecontroldriverandhasbeenwidelyusedinrobotandotherfields.Ingeneral,servoisdrivenbymicrocontrollersystem,butthedrivingeffectofmicrocontrollersystemisnotsatisfactoryformultipleservos.So,theArduino,anopensourcecontrolboard,isusedtooutputdifferentpulsewidthsignaltocontroltheservorotationangle,experimentshowedthat,thissystemrealizestheanglecontrolofservo,meetstherequirementofanglecontrolprecisionandprovidesanewwaytodriveservo.
Keywords:Aanglecontrol
舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前,在高档遥控玩具,如飞机、潜艇模型,遥控机器人中已经得到了普遍应用。传统对舵机的控制主要采用单片机,利用定时器和中断的方式来完成控制,这样的方式控制一个舵机还是相当有效的,但是随着舵机数量的增加,控制起来就没有那么方便了,尤其对机器人等需要多个舵机同时工作的系统中,单片机驱动复杂且精度难以保证。因此,本文采用目前较为流行的开源Arduino来实现舵机的精确控制。文献标识码:A文章编号:12)15-3719-03DesignofServoControlSystemBasedonArduino1Arduino简介
Arduino是源自意大利的一个教学用开源硬件项目,主要是为希望尝试创建交互式物理对象的实践者、喜欢创造发明的人及艺术家所构建的,它秉承开源硬件思想,程序开发接口免费下载,也可依需求自己修改。Arduino引脚如图1所示:
图1Arduino控制板
其硬件系统是高度模块化的,通过USB接口与计算机连接,包括14通道数字输入/输出,其中包括6通道PWM输出、6通道10位
[1]ADC模拟输入/输出通道,电源电压主要有5V和3.3V。在核心控制板的外围,有开关量输入输出模块、各种模拟量传感器输入模
块、总线类传感器的输入模块,还有网络通信模块,只要在核心控制板上增加网络控制模块,就可以容易地与互联网连接。Arduino还提供了自己的开发语言[2,3],支持Windows、Linux、MacOS等主流的操作系统。Arduino系统是基于单片机开发的,并且大量应用通用和标准的电子元器件,包括硬件和软件在内的整个设计,代码均采用开源方式发布,因此采购的成本较低,在各种电子制作竞赛、收稿日期:
作者简介:蔡睿妍(1979-),黑龙江林甸县人,讲师,硕士,主要从事电子技术、通信与网络方向的研究。
本栏目责任编辑:梁书计算机工程应用技术3719
ComputerKnowledgeandTechnology电脑知识与技术第8卷第15期(2012年5月)电子艺术品创意设计等越来越多地使用Arduino作为开发平台。甚至可以接受MacromediaFlash软件制作的动画发送的信号,并由此来控制一些动作器件(如舵机等)。
2舵机的工作原理
舵机是一种位置伺服的驱动器,具有闭环控制系统的机电结构,由小型直流电机、变速齿轮组、可调电位器、控制板等部件组成,如图2所示。由于可以方便地控制舵机旋转的角度(舵角,但是舵角一般不超过180°),因此,舵机在要求角度不断变化的控制系
统中得到了广泛应用。[4]
图2舵机组成结构
舵机在工作中,控制器发出脉冲宽度调制(PWM)信号给舵机,获得直流偏置电压。舵机内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出到电机驱动芯片,驱动芯片根据电压差的正负控制电机的正反转。舵机转动的角度是通过调节PWM信号的占空比来实现的,标准PWM信号的周期固定为20ms,理论上脉宽(脉冲的高电平部分)范围在1ms~2ms之间,但实际上脉宽可以在0.5ms~2.5ms之间,脉宽和舵机的转角0°~180°相对应。如以脉宽为0.5ms~2.5ms范围控制舵机的角度转动,转动范围为0°~180°,对应的控制关系如图3
图3脉宽与舵角关系
图3给出了转动角度为0°、90°和180°时对应的脉宽,当转动角度处于0°~180°之间的其它角度时,脉宽在0.5ms~2.5ms之间线性变化。
舵机收到控制信号后,首先判断转动方向,然后计算转动角度,接着驱动无核心马达开始转动,并通过减速齿轮将动力传输至摆臂,最后由位置检测器返回转动后的位置信号,以此判断舵机是否已经到达设定的位置。
小型舵机的工作电压一般为4.8V或6V,转速也不是很快,所以假如更改角度控制脉宽太快时,舵机可能反应不过来。如果需要更快速的反应,就需要更高的转速了。要精确的控制舵机,其实没有那么容易,很多舵机的位置等级有1024个,那么,如果舵机的≈0.18°有效角度范围为180°的话,其控制的角度精度是可以达到,如果假定脉宽为0.5ms~2.5ms范围,则要求的脉宽控制精(2.5-0.5)ms度为≈2μs。3Arduino控制舵机转角实验
舵机转动时电流较大,Arduino上的芯片可能会因为过流保护发热而损坏,因此不能采用Arduino板上的电源给舵机供电,需要采用外部电源。舵机有三根引线,棕色(或黑色)为地线,红色线为电源线(4.8-6V),黄色是数据线。选择Arduino的9号数字口作为舵机的脉冲控制信号输出接口。采用Arduino控制舵机角度转动的实验中,通过计算机的USB口输出电压为Arduino控制板供电,然后外接电源插到舵机的电源引脚,舵机的地线与Arduino控制板GND接口相连,信号口接数字9号口。连接原理图如图4所示。
具体的线路连接如图5所示。
连接好舵机和Arduino主控板之后,开始编写控制程序。首先,需要将Arduino的9号数字口定义为输出接口,代码如下:pinMode(9,OUTPUT)前文所述,舵机分别用0.5ms~2.5ms之间的脉宽来对应0到180°左右的角度,且转动的角度与脉宽呈线性关系,按照图3的对应
(2.5-0.2)ms关系,则舵机每转动1°,对应的脉宽为,该值除不尽,因此,用一个除不尽的脉冲宽度控制舵机转动,显然转动角度的精度很难控制,为此,实验中以接近2.5ms且能够整除180的值最为脉宽的变化范围,则取脉宽的范围为0.5ms~2.48ms,此时,舵机每3720计算机工程应用技术本栏目责任编辑:梁书
第8卷第15期(2012年5月)ComputerKnowledgeandTechnology电脑知识与技术图4Arduino控制板驱动舵机原理图
图5实验电路图(2.48-0.5)ms=11μs转动1°,则脉宽变化。因此,定义脉宽与转动角度之间的关系为:pulsewidth=(angle*11)+500(1)其中,pulsewidth为输出脉冲的宽度,单位为μs,angle为控制舵机转动的角度。
用公式(1)把0°到180°的转角映射到500μs到2480μs的脉冲时间,控制舵机转动的函数如下所示:voidpulse(intangle){intpulsewidth=(angle*11)+500;digitalWrite(9,HIGH);delayMicroseconds(pulsewidth);digitalWrite(9,LOW);}将编写好的控制代码通过Arduino的IDE烧录到控制板之后,输入不同的角度值,便会看到舵机执行不同角度的转动信号了。4结束语
本文采用现今较为流行的Arduino控制板进行了舵机的角度控制,实验验证结果表明,Arduino控制板具有较高的控制精度,完全满足舵机角度的精度控制。当有多个舵机同时需要驱动时,Arduino控制板驱动也会达到很高的精度要求。
参考文献:
[1]JonathanOxer,HughBlemings.PracticalArduino:CoolProjectsforOpenSourceHardware[M].NewYork:Springer-Verlag,.[2]杨继志,杨宇环.基于Arduino的网络互动产品创新设计[J].机电产品开发与创新,):99-100.[3]翁浩峰.利用Arduino和Flash开发DISLab[J].物理教师,):45-47.[4]胡小江,董飞,雷虎民,等.基于虚拟仪器的舵机半实物仿真系统研究[J].测控技术,2011,
30(1):75-78.
本栏目责任编辑:梁书计算机工程应用技术3721
包含各类专业文献、各类资格考试、应用写作文书、高等教育、幼儿教育、小学教育、中学教育、外语学习资料、生活休闲娱乐、文学作品欣赏、专业论文、基于Arduino的舵机控制系统设计85等内容。 
 2013 [6] 蔡睿妍.基于 Arduino 的舵机控制系统设计[J].电脑知识与技术.2012 [7] gunpole.舵机知识汇总[EB].果壳网.2011 [8] 伺服电机的调试方法[EB].电气...  舵机控制系统工作稳定,PWM 占空比 (0.5~2.5ms 的正脉冲宽度)和舵机的转角(-...2013 [6] 蔡睿妍.基于 Arduino 的舵机控制系统设计[J].电脑知识与技术.2012 ...  基于STC89C52单片机的舵机控制系统设计_电子/电路_工程科技_专业资料。基于 STC89C52 单片机的舵机控制系统设计 【摘要】舵机是机器人、机电系统和航模的重要执行...  龙源期刊网 .cn 基于 STC89C52 单片机的舵机控制系统设计 作者:王素芹 程连生 来源:《电子世界》2012 年第 22 期 【摘要】舵机是机器人...  通过上 位机软件向单片机发送舵机的动作控制指令, 实时控制舵机转过的角 度 设计舵机实时调试模式下的下位机程序, 其中包括系统初始化 程序、串口通信程序、上位机...  暂无评价 2页 免费 基于Arduino的舵机控制系统... 3页 免费喜欢此文档的还喜欢...基于层次结构的舵机通用测试软件设计作者 (北京航空航天大学,北京 100191) 摘要:...  本文针对舵机数字化控制器的设计,研究其硬件电路设计、软件程序设计和关键算 法。 在分析舵机控制的性能要求和相关控制方法的基础上, 提出了基于上位机和下位机 的...  舵机角度检测系统的设计与应用 【摘要】 舵机是水下航行器的重要执行机构,舵机角度检测系统的性能直接 影响着水下航行器的运动控制性能, 由于旋转变压器适应复杂恶劣...  基于单片机的机械臂控制系统设计与制作电子信息科学与技术专业 学号: ...舵机模块 2.3 软件程序设计 第三章 硬件制作以及程序的下载调试 3.1 电路板的...Arduino 入门到精通 例程18-舵机控制_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Arduino 入门到精通 例程18-舵机控制
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢&&国之画&&&& &&
版权所有 京ICP备号-2
迷上了代码!

我要回帖

更多关于 arduino 舵机 的文章

 

随机推荐