LPC2131控制舵机.docx
6页本文格式为Word版,下载可任意编辑LPC2131控制舵机 ARM大作业(一)——LPC2131操纵舵机 一、舵机简介 1.1舵机的布局: 舵盘、减速齿轮组、位置反应电位计,直流电机、操纵电路板等 1.2舵机的工作原理 操纵信号操纵电路板电极转动齿轮组减速舵盘转动位置反应电位计 操纵电路板反应 图1 舵机工作原理框图 1.3舵机操纵方法 三线连接方法:黑线是底线,红线为电源线,这两个线给舵机供给最根本的能源保证,主要是电机的转动消耗另一个线是蓝线或者黄线是操纵信号线通过颜色区分电源线和底线,并且具有两种标准4.8V和 6V 1.4舵机 舵机的操纵信号是PWM信号,即利用占空比的变化变更舵机的位置,操纵信号的脉冲周期为20ms,当高电平持续时间为1ms时,舵机转向右转极限位置,当高电平持续时间为2ms时,舵机转向左转极限位置,当高电平持续时间为1.5ms时,舵机转向中间位置当舵机转到相应的位置后只要占空比不变更,舵机将保持不动 1 图2 舵机的操纵方法 二、系统设计 2.1芯片的选择 方案一:可采用传统的PWM操纵电路专用集成芯片或中小规模的数字集成电路来做PWM信号发生器。
但是传统的集成电路频率低,可控性差,调试难度大 方案二、随着微电子技术和大规模可编程器件的进展,PWM在电机调速中的应用越来越广泛ARM与传统 PWM操纵电路中使用的用集成芯片或中小规模的数字集成电路相比而言,具有体积更小、通用性更强、响应更快、可通过编程革新其功能等优点,能达成的频率范围指标更广 所以,综合考虑后,本次设计选择LPC2131作为电路的核心部件,这样既达成系统的设计要求,也更便当检测调试 2.2舵机型号 本测验针对航模舵机Fubata,这种舵机的根本参数:在4.8v时扭力为3.9kg,转速为0.22秒/60°,在6.0v时扭力为5.2kg,转速为0.18秒/60°三个外接端子,其中两个电源端,一个操纵端通常选用+5v为供电电源,操纵端接PWM操纵信号由于内部有IC驱动,所以一般不外加驱动电路 2.3总系统设计原理框图 2 电源LPC2131核心操纵芯片程序下载产生PWM信号通道选择LCD显示显示当前舵机的旋转角度按键操纵总系统设计原理框图 2.4工作原理 根据舵机的特点,可以这样设置PWM的输出由于舵机的操纵信号是20ms一个周期,我们可以先设置PWM的输出为双边沿输出,输出的周期为20ms。
当想让舵机转向右极限角度时,我们可以设置在一个周期内高电平的持续时间为1ms,当想让舵机转向左极限角度时,设置在一个周期内高电平持续时间为2msPWM信号发生器通过LPC2131对各模块和定时/计数器、锁存器的操纵,其脉宽调制器建立在标准定时器之上,可在 PWM 和匹配功能当中举行选择本次采用软件编程操纵的方法,通过变更给其内部计数器的写入值产生一系列幅值相等而宽度不等的脉冲,再通过一整形电路,产生规矩的PWM脉冲波形,变更的计数器初值是通过程序的变更实现的,而PWM的输出通道选择,波形频率的变更以及其占空比的变更是通过按键程序实现,结果通过LCD显示当前的舵机旋转角度 由于ARM7单片机运算速度快,PWM功能内部集成,根本由硬件完成,因此操纵误差分外小从而达成对舵机的转角很高的精度操纵 三、硬件电路设计 3.1芯片说明 LPC2131/2132/2138是基于一个支持实时仿真和嵌入式跟踪的16/32位ARM7TDMI-STM CPU,并带有32kB、64kB和512kB嵌入的高速Flash存储器128位宽度的存储器接口和独特的加速布局使32位代码能够在最大时钟速率下运行。
该处理器采用分外小的64脚封装,极低的功耗,多个32位定时器、2个10位8路的ADC、10位DAC、PWM通道、47个GPIO以及多达9个边沿或电平触发的外部中断使其在通信网络、工业操纵、医疗系统、访问操纵和电子收款机(POS)等应用领域得到了广泛的应用 由于LPC213X系列单片机具有6个PWM通道,各方面的性能和硬件配置比起51系列单片机具有很强的实用功能和优点,因此实现舵机的操纵变得分外轻易本测验采用LPC2131芯片,实现对舵机的操纵LPC2131微操纵器的PWM功能是建立在标准的定时器上,它同样具有32位定时器及预分频操纵电路和7个匹配寄放器,可以实现6个单边PWM或者3个双边PWM输出,也可采用这两种类型的混合输出该测验用的是双边沿输出 3.2键盘驱动程序设计 3 3.2.1各按键功能如下: (1)开启电源,各模块初始化 (2) 按下S1键1次,那么按键修改功能作用于P0.7管脚输出的PWM信号,即第1路PWM 信号,再按S1键1次,那么按键修改功能作用于P0.8管脚输出的PWM信号,即第2 路PWM信号按下第3次按键,那么按键修改功能作用于P0.9管脚输出的PWM信 号,即第3路PWM信号。
(3)按下S2键,可以看到液晶显示模块上显示的PWM信号占周期增大 (4)按下S3键,可以看到液晶显示模块上显示的PWM信号占周期减小 (5)按下S4键,可以看到液晶显示模块上显示的PWM信号的占空减小 (6)按下S5键,可以看到液晶显示模块上显示的PWM信号的占空增加 3.2.2按键的程序如下所示: ?周期加减 if((IO0PIN if((IO0PIN while((IO0PIN } if((IO0PIN if((IO0PIN while((IO0PIN } ?占空加减 if(((IO0PIN if(((IO0PIN } while((IO0PIN } else if(((IO0PIN if(((IO0PIN } while((IO0PIN } break; 3.3舵机与LPC2131芯片的硬件电路连接 源程序采用编写c语言编写,概括如下(在ADS中调试通过) #include #include “config h” /*??PWM初始化函数??*/ Void PWM_Init() { u int 32 mp;//PWM初始化 5 — 6 —。





