双杆风摆设计的分享

[复制链接]

150

主题

445

帖子

1900

积分

审核员

Rank: 9Rank: 9Rank: 9

积分
1900
查看: 3168回复: 1 发表于 2020-3-25 09:08:12   只看该作者
摘要:
本双杆风摆控制系统采用STA12C56作为主控制芯片,采用高精度AD模块采集数据,以L298N作为直流电机驱动芯片。主控制器通过PWM方式调节电机转速,从而达到控制动臂甲(乙)的摆动角度的目的。并能用12864实时显示动臂甲(乙)转动的角度一方面,可以通过按键调节风扇转速去直接控制动臂甲(乙)的转动角度,另一方面可以预先设置动臂甲(乙)需要转动的角度,让系统自行将动臂甲(乙)调节到相应的角度,控制精度高达士l度,并且保持状态10秒。本设计还实现了动臂甲摆动e度后,动臂乙能够镜像摆动0度,与其对称且保持稳定。

关键词:STCl2单片机、AD转换、PWM调速、12864显示

1引言
双杆风摆的主要任务是制作一个双摆杆,按照要求控制风扇,实现摆杆按要求摆动。该任务既包含有测量角度的环节,还包括有对电机速度的控制,如何根据角度变化及时来控制风机的转速等问题。

关键问题之一为角度信息的采集,通常情况下角度信号的采集有倾角传感器,光栅角度传感器,电位器角度传感器等。

关键问题之二为电机的控制。

关键问题之三是如何让动臂运动到指定的角度位置并保持稳定。

关键问题之四是动臂甲乙如何能够互不干扰的摆动不同的角度。

综合上述的关键问题后,我们根据自身的知识积累,采用相关的单片机控制技术,电路处理技术,数据分析技术等,设计了一整套双杆风摆系统。

2方案设计
2.1系统方案选择与论证
2.1.1设计基本要求
(1)风扇甲电机自静止状态启动,动臂甲摆动至30度时保持稳定10秒以上。(调节时间不超过30秒)。

(2)能通过数码管或液晶屏显示动臂甲的摆动角,显示值与实际值误差士1度。

(3)使动臂甲能摆动到指定的摆角(10°~70°之间),并稳定10秒以上(调竹时间不超过30秒)。

(4)在动臂甲摆动至30度角时,动臂乙也镜像摆动至30度角。

2.1.2发挥部分
(1)能用同一显示装置同时显示两动臂的摆动角。

(2)随机指定动臂甲的摆动角度(10°~70°之间),动臂乙能镜像摆动到相应指定的摆动角度,并保持稳定。

(3)甲乙两动臂均能按随意设定摆动角(10°~70°之间)摆动,并保持稳定10秒以上。

2.1.3系统的基本方案
根据题目的要求,系统可以划分为控制部分和信号检测部分。其中信号检测部分包括:角度传感器模块、控制部分包括、显示模块、电机驱动模块、按键检测模块、AD转换模块以及控制器模块。模块框图如图1所示,为实现各个模块的功能,分别做了几种设计方案并进行论证。

01.jpg
2.1.4各个模块方案选择和论证
2.1.4.1控制器模块
根据题目的要求,控制器主要用于角度传感器信号的接受和辨认、控制电机的转速、控制显示动臂摆动的角度,对于控制器的选择有以下三种方案。

方案一:采用传统的89C51芯片为控制核心。具有4KB的程序存储器,128KB的数据存储器,64KB的片外存储器寻址能力,64KB的片外数据存储器寻址能力,32根输入/输出线,1个全双工异步串行口,2个16位定时/计数器,5个中断源,2个优先级。但没有ISP下载线及SPI接口,功能单一,运算速度慢,控制过程比较烦琐。

故放弃该方案。

方案二:STCl2C5A60S2系列单片机是单时钟的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MX810专用复位电路,2路PWM,8路高速10位A/D转换(250k/s,即25万次/秒),针对电机控制,强干扰场合。且价格合理,故本系统采用该方案。

2.1.4.2显示部分
方案一:数码管显示,数码管显示比较简单不但不能同时显示几个数据和字符,而且显示信息量少,功耗大,故放弃该方案。

方案二:1602显示,LED点阵显示虽然能显示字符和数字,但是无法显示汉字,而且显示效果不好,且不易编程。故放弃该方案。

方案三:12864液晶屏显示,12864液品屏不但能显示字符、数字和汉字,而且显示效果较好,编程较容易实现,内容丰富。符合本次的显示所需,故本系统采用该方案。

2.1.4.3电机驱动模块
采用电机驱动芯片1298N。L298N使一种高电压,大电流电机驱动芯片。主要特点是:工作电压高,最高工作电压可达46;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A。内含两个日桥的高电压大电流全桥式驱动器,可以用来驱动直流电机和步进电机等。采用标准逻辑电平信号控制,具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑输入端,使内部逻辑电路部分在低压下工作,可以外接检测电阻,将变化是反馈给控制电路。使用L309N芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。

2系统的硬件设计与实现
2.1系统的硬件组成部分
在本设计中运用了智能检测技术,自动控制等多个技术。系统大体可分为智能控制部分和传感器部分。

传感器部分:系统利用角度传感器将检测到的外部信息转化为可被控制器辨认的电信号。

智能控制部分:系统中控制器件根据传感器交换输出的电信号进行逻辑判断,以此来控制电机的转动、12864的显示。控制部分包括三个电路:单片机控制电路,L298N电机驱动控制电路。

2.2主要电路的设计
(1)单片机控制电路单片机接收从传感器检测电路输入的信号,并将输入的信号进行处理算以控制电机的转速,来完成任务的要求。单片机外接显示电路,角度传感器电路,电机驱动电路等。具体的电路图如下图2所示:

01.jpg

(2)其他电路设计见附录1。

3系统的软件部分
3.1设计原理
控制该系统的单片机是STC12C5A60S2。STC12C5A60S2是STC生产的单时钟/机器周期(1T)的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换,针对电机控制,强干扰场合。并且STC12C5A60AD/S2系列自带A/D转换速度可达到250KHz(25万次/秒)。8路电压输入型A/D,可做温度检测、电池电压检测、按键扫描、频谱检测等。上电复位后P1口为弱上拉型I0口,用户可以通过软件设置将8路中的任何一路设置为A/D转换,不须作为A/D使用的口可继续作为I0口使用。

3.2系统流程图
本系统由单片机STC12C5A60S2、电机驱动电路、电位器、模数转换(单片机P1口)、12864显示屏、键盘、电源电路组成。单片机编程实现控制,通过修改程序可方便进行系统升级。系统总体框图如下图所示。

01.jpg

3设计实现
在此次设计中出现了许多问题。主要的问题是角度信息如何采集、动臂如何能够准确的运动到指定角度并能保持稳定以及动臂甲乙如何能够互不干扰的摆动不同的角度。

问题一:角度信息的采集。

解决方法:在采集角度信息时我们用电位器当作传感器,我们把动臂顶端和电位器的旋转钮固定在一起,这样每转动一个角度,电位器的阻值就会发生变化,这样我们就能通过采集处理阻值来计算角度。

问题二:动臂如何准确运动到制定角度并保持稳定?

解决方法:系统中采用PWM调占空比的方法控制电机的转速。所以要想让电机带动动臂转到指定角度就应该给它一个合适的占空比。而在本系统中我们所采集的运动角度是通过电位器的转动让阻值发生变化,并用AD模块转换数据,采用一定的算法换算成角度。最终我们采用试试检测的方法来控制,一点点改变PWM的值,当电位器的阻值换算后等于指定的角度时。系统记住这个PM的值,并跳出检测的循环,因此这样就能克服动臂如何准确运动到指定角度并保持稳定的难题。当然,细心的你一定    会有疑问,系统难道只是检测一次符合角度的值后就推出循环吗?答案是否定的,这也就是我们最后对方案的修改,让系统多次检测并取平均值,这样看似难得问题就会迎刃而解了。

问题三:动臂甲乙如何能够互不干扰的摆动不同的角度?

解决方法:一开始我们分别给动臂甲、乙设定不同的角度,但是当动臂甲乙实际运动后发现情况和我们想象中的不一样。此时的动臂甲乙运动后所达到的角度值与一开始设定的角度不相等。于是接下来我们从新修改了程序。将调节两个电机PWI的算法放在一个函数里,并且用同一个定时器,只不过两个电机传递的参数不一样。

第四章测试
为了确定系统与题目要求的符合程度,我们对系统的关键部分进行了实际测试(动臂摆动中心点距水平面距离约为:45.6cm)。

01.jpg

第五章结论
本系统以STC12C5C60S2单片机为核心,利用电位器、电机驱动等软硬件相结合的方法实现了双杆风摆。最终使该系统完成竞赛题目的任务要求。在该系统的设计过程中力求硬件线路最简单,充分发挥软件编程方便灵活的特点,来满足设计的要求,由于时间的有限,该系统依然有改进的地方。

在本次设计的过程中,我们虽然遇到了很多困难,但通过全组成员的共同努力,最终我们还是把困难解决了。这也让我们深深的体会到团队协作的重要性。同时,在备战及竞赛时期,我们也学到了很多电子专业知识,丰富了自己的知识库,提高了解决问题的能力。



快速回复 返回顶部 返回列表