您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > Arduino如何控制舵机
Arduino如何控制舵机(伺服电机)发布日期:2011-08-13舵机,又称伺服马达,是一种具有闭环控制系统的机电结构。舵机主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。其工作原理是由控制器发出PWM(脉冲宽度调制)信号给舵机,经电路板上的IC处理后计算出转动方向,再驱动无核心马达转动,透过减速齿轮将动力传至摆臂,同时由位置检测器(电位器)返回位置信号,判断是否已经到达设定位置,一般舵机只能旋转180度。舵机有3根线,棕色为地,红色为电源正,橙色为信号线,但不同牌子的舵机,线的颜色可能不同,请大家注意。舵机的转动位置是靠控制PWM(脉冲宽度调制)信号的占空比来实现的,标准PWM(脉冲宽度调制)信号的周期固定为20ms,占空比0.5~2.5ms的正脉冲宽度和舵机的转角-90°~90°相对应。注意,由于舵机牌子不同,其控制器解析出的脉冲宽度也不同,所以对于同一信号,不同牌子的舵机旋转的角度也不同。本实验需要舵机1只。由于只是做演示用,舵机5v电源就暂时使用Arduino上的,但不可长时间使用,因为舵机转动时电流比较大,Arduino上的电源芯片可能会因过热而保护甚至损坏。正常使用时需要使用外部电源给舵机供电。硬件连接:舵机电源接Arduino5V电源脚舵机地接ArduinoGND脚信号线接Arduino9脚软件代码:arduinoIDE使用的版本为0022版本,此次演示就使用其自带的例子代码,打开File-Examples-Servo-sweep,代码如下:#includeServo.hServomyservo;//createservoobjecttocontrolaservo//amaximumofeightservoobjectscanbecreatedintpos=0;//variabletostoretheservopositionvoidsetup(){myservo.attach(9);//attachestheservoonpin9totheservoobject}voidloop(){for(pos=0;pos180;pos+=1)//goesfrom0degreesto180degrees{//instepsof1degreemyservo.write(pos);//tellservotogotopositioninvariable'pos'delay(15);//waits15msfortheservotoreachtheposition}for(pos=180;pos=1;pos-=1)//goesfrom180degreesto0degrees{myservo.write(pos);//tellservotogotopositioninvariable'pos'delay(15);//waits15msfortheservotoreachtheposition}}下载程序进入arduino后,可以看到舵机摇臂左右慢慢摆动。
本文标题:Arduino如何控制舵机
链接地址:https://www.777doc.com/doc-2898508 .html