Arduino-入门到精通-例程18-舵机控制

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Arduino入门到精通例程18舵机控制实验舵机是一种位置伺服的驱动器,主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。其工作原理是由接收机或者单片机发出信号给舵机,其内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。经由电路板上的IC判断转动方向,再驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回信号,判断是否已经到达定位。适用于那些需要角度不断变化并可以保持的控制系统。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。一般舵机旋转的角度范围是0度到180度。舵机有很多规格,但所有的舵机都有外接三根线,分别用棕、红、橙三种颜色进行区分,由于舵机品牌不同,颜色也会有所差异,棕色为接地线,红色为电源正极线,橙色为信号线。舵机的转动的角度是通过调节PWM(脉冲宽度调制)信号的占空比来实现的,标准PWM(脉冲宽度调制)信号的周期固定为20ms(50Hz),理论上脉宽分布应在1ms到2ms之间,但是,事实上脉宽可由0.5ms到2.5ms之间,脉宽和舵机的转角0°~180°相对应。有一点值得注意的地方,由于舵机牌子不同,对于同一信号,不同牌子的舵机旋转的角度也会有所不同。了解了基础知识以后我们就可以来学习控制一个舵机了,本实验所需要的元器件很少只需要舵机一个、跳线一扎就可以了。SG90舵机*1面包板跳线*1扎用Arduino控制舵机的方法有两种,一种是通过Arduino的普通数字传感器接口产生占空比不同的方波,模拟产生PWM信号进行舵机定位,第二种是直接利用Arduino自带的Servo函数进行舵机的控制,这种控制方法的优点在于程序编写,缺点是只能控制2路舵机,因为Arduino自带函数只能利用数字9、10接口。Arduino的驱动能力有限,所以当需要控制1个以上的舵机时需要外接电源。将舵机接数字9接口上。编写一个程序让舵机转动到用户输入数字所对应的角度数的位置,并将角度打印显示到屏幕上。参考源程序#includeServo.hServomyservo;//定义舵机对象,最多八个intpos=0;//定义舵机转动位置voidsetup(){myservo.attach(9);//设置舵机控制针脚}voidloop(){//0到180旋转舵机,每次延时15毫秒for(pos=0;pos180;pos+=1){myservo.write(pos);delay(15);}//180到0旋转舵机,每次延时15毫秒for(pos=180;pos=1;pos-=1){myservo.write(pos);delay(15);}}实验现象:上载到Arduino后,可以看到,舵机开始先按0到180运转,然后再从180到0运转扩展实验:1.控制一个舵机如此简单,那控制多个岂不是更好玩?

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功