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

  • 10
  • 0
  • 约2.54千字
  • 约 7页
  • 2021-01-10 发布于天津
  • 举报
Arduino入门到精通例程18 舵机控制实验 舵机是一种位置伺服的驱动器,主要是由外壳、电路板、无核心马达、 齿轮与位置检测器所构成。其工作原理是由接收机或者单片机发出信 号给舵机,其内部有一个基准电路,产生周期为20ms,宽度为1.5ms的 基准信号,将获得的直流偏置电压与电位器的电压比较, 获得电压差 输出。经由电路板上的IC判断转动方向,再驱动无核心马达开始转 动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回信号,判 断是否已经到达定位。适用于那些需要角度不断变化并可以保持的控 制系统。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使 得电压差为0,电机停止转动。一般舵机旋转的角度范围是0度到180 度。 舵机有很多规格,但所有的舵机都有外接三根线,分别用 棕、红、橙 三种颜色进行区分,由于舵机品牌不同,颜色也会有所差异, 棕色为 接地线,红色为电源正极线,橙色为信号线。 (0V) GND (+5V; (PWM)信号线 舵机的转动的角度是通过调节PWM (脉冲宽度调制)信号的占空比 来实现的,标准PWM (脉冲宽度调制)信号的周期固定为20ms ooo145 degreeslow I-1250微肆h_9hl180 degrees2000嫩眇(50Hz),理论上脉宽分布应在1ms到2ms之间,但是,事实上脉宽 可由 ooo 1 45 degrees low I- 1250微肆 h _9 hl 180 degrees 2000嫩眇 了解了基础知识以后我们就可以来学习控制一个舵机了, 本实验所需 要的元器件很少只需要舵机一个、跳线一扎就可以了。 RB- 412 舵机 *1 面包板跳线*1扎 用Arduino控制舵机的方法有两种,一种是通过 Arduino的普通数字 传感器接口产生占空比不同的方波, 模拟产生PWM信号进行舵机定 位,第二种是直接利用Arduino自带的Servo函数进行舵机的控制, 这种控制方法的优点在于程序编写, 缺点是只能控制2路舵机,因为 Arduino自带函数只能利用数字9、10接口。Arduino的驱动能力有 限,所以当需要控制1个以上的舵机时需要外接电源。 方法一 L呑 e IKta n;. A nd T V ID 1 2 自- L 呑 e IK ta n;. A nd T V ID 1 2 自- te-ta-v ? ar-du I 乃住? c c flUTii 将舵机接数字9接口上。 编写一个程序让舵机转动到用户输入数字所对应的角度数的位置, 并 将角度打印显示到屏幕上。 参考源程序A: int servop in二9;//定义数字接口 9连接伺服舵机信号线 int mya ngle;//定义角度变量 inf pu-sewidfhy/Mx^Mmw inf va-八 void servopu-se(inf servopin5-f myang-e)/^5c—-^^?^ 宀 pu_sewidfhmyang_e* 二)+500y/^?w^R 500—2480s^Mbf digis--wl1(D(servopinT-GH)y/ 质^占?口c书MM de-ayMicroseconds(pu-sewidfh)-潯卑^^血3寒^選 digis--wl1(D(servoppLOW}y/ 质^占?口c书册丰 de-ay(20—pu-sewidfh/l 000)八 void S2.UP0 宀 p5Mode(servopinoUTPUT)w 菇閒壽占?口 RB圧淋口 Seria一?begin(9600)yAt?里?3M口〉薄a擾 R 9600 seria-.prinf-n(二servoHolse「a_lsimp-e「eadyu)八 void -005^0 里93選矣 R 0 里-80??〉半一t LED 习拿盘同 宀 valrseria-.readp//s^?3M口3血 if(va_v?o 氐8va_A9) val二val-O;〃将特征量转化为数值变量 val二val*(180/9);〃将数字转化为角度 Serial.print(moving servo to ); Serial.print(val,DEC); Serial.println(); for(int i=0;i=50;i++) // 给予舵机足够的时间让它转到指定角度 { servopulse(servop in, val);/引用脉冲函数 } } } 方法二 先具体分析一下 Arduino 自带的 Servo 函数及其语句,来介绍一下 舵机函数的几个常用语句吧。 1、 attach (接口)一一设定舵机的接口,只有数字 9或10接口可利 用。 2、 write (角度) 用于设定舵机旋转角度的语句,可设定的角度 范围是0°到1 80°。 3

文档评论(0)

1亿VIP精品文档

相关文档