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,当想让舵机转向左极限角度时,设置在一个周期内高电平持续时间为2ms。PWM信号发生器通过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 & (1 << SW_2)) == 0) //周期++ {
delayns(100);
if((IO0PIN & (1 << SW_2)) == 0) cycletime++; while((IO0PIN & (1 << SW_2))==0); }
if((IO0PIN & (1 << SW_3)) == 0) // 周期-- { delayns(100);
if((IO0PIN & (1 << SW_3)) == 0) cycletime--; while((IO0PIN & (1 << SW_3))==0); } ?占空加减
if(((IO0PIN & (1 << SW_5)) == 0)&&(mr1pleve<=cycletime)) //占空++
4
{
delayns(100);
if(((IO0PIN & (1 << SW_5)) == 0)&&(mr1pleve<=cycletime)) {
mr1pleve++; }
while((IO0PIN & (1 << SW_5))==0); }
else if(((IO0PIN & (1 << SW_4)) == 0)&&(mr1pleve>=1)) //占空-- {
delayns(100);
if(((IO0PIN & (1 << SW_4)) == 0)&&(mr1pleve>=1)) {
mr1pleve--; }
while((IO0PIN & (1 << SW_4))==0); } break;
3.3舵机与LPC2131芯片的硬件电路连接
源程序采用编写c语言编写,具体如下(在ADS中调试通过) #include
/*??PWM初始化函数??*/ Void PWM_Init() {
u int 32 mp;//PWM初始化
5
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库LPC2131控制舵机在线全文阅读。
相关推荐: