按摩床结构设计_第1页
按摩床结构设计_第2页
按摩床结构设计_第3页
按摩床结构设计_第4页
按摩床结构设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、机械工程学院毕业设计(论文)题 目: 按摩床结构系统设计 专 业: 机械电子工程 班 级: 11级3班 姓 名: 杨 振 学 号: 1611110321 指导教师: 孟令启 日 期: 2015.01 按摩床结构系统设计摘要:本课题基于对当前按摩床的研究,设计出一种多功能式按摩床的结构模型。该按摩床利用单片机控制原理满足人们的按摩需求。就按摩床机械结构而言,本课题有着巧妙的按摩触头设计以保证按摩舒适度;就单片机程序而言,本课题有着智能化的程序设计一满足不同客户对按摩方式的要求。本课题首先对按摩床总体结构进行设计及分析,确定机械结构和传动方案,并进行必要零件的校核,然后根据51系列单片机的控制特点

2、,拟定出按摩床的多种动作方案,接着依据这些待实现的功能编写控制程序,最后对程序进行模拟调试和改进,完成按摩床的软硬件的设计,成功实现按摩功能赢得大众认可。关键词:按摩床;自动控制;摆动按摩;单片机目录0引言11.选题背景及现状12.按摩床方案的设计22.1按摩头设计32.2 弹簧的选型与设计校核42.3 连杆的设计52.4 偏心轴承的选型62.5 轴系的设计与校核62.6 键的选型与校核112.7 轴承的选型与校核(寿命计算)122.8 步进电机的选型122.9 步进电机驱动器的选择133. 控制系统设计143.1单片机选择143.2驱动器功能说明143.3硬件接线说明153.4开发板设计:1

3、53.4.1电源模块设计153.4.2电机控制电路设计163.4.3开发板必要模块设计183.4.4开发板所用元器件选型193.4.5PCB设计图193.5编写控制程序213.5.1程序思想213.5.2程序编辑224.结论274.1 论文总结274.2 主要工作及结论284.3 存在问题284.4 感想29致谢29参考文献30附件:本课题完成的CAD图310引言 自改革开放以来,我国的经济实现快步发展,人们日益增长的物质文化需求同落后的生产力仍然是不可消除的矛盾。随着科学发展观的逐步落实,人们的生活条件在不断提升,随着信息时代的到来,人们的身体素质却未得到有效提高。 在这个趋于老龄化的社会,

4、人们对自己的身体健康也是越来越重视。在你追我赶的城市生活中,大众心中会萌生一种想法:能不能在不耽误休息的时间里做到有效的缓解身心压力呢?带着这种观念,许多的健身及按摩器材不断地涌入人们的眼帘。而按摩床可以实现人们在工作之余休息时,既可以养神,又可以“修”身。这样不需要另外的去买按摩器材2,既经济,而又功能强大。是人们优选的保健产品。 同时,按摩床又有着其他保健产品3不可逾越的优势:一,能够对全身进行放松,调试消除了疲劳,缓解了生活压力;二,可以顺通经络,然后加快血液循环,保持人们身体的平衡,可以提高人们机体的免疫力,也可预防多种疾病的伤害,增添身体活力;三,可以改善人们的睡眠并大幅提高了睡眠的

5、质量;四,对身体相应穴位的按摩对关节炎、腰腿痛疼、腰椎颈椎病、中风等疾病有较好的治疗作用;五,针对手术和放疗后的人们更有着显著的修养功能;六,对亚健康的人们来说更是一种福音;七,对于人体局部的按摩可以消耗多余的脂肪也可以实现减肥美体的目的;八,对于人体的内分泌系统有着不可取代的防护效果,按摩可以协助排出人体内和皮肤中附带的垃圾,同时提高人体皮肤的美容效果;九,能够改善人们的肠胃功能,可促进人们新陈代谢,治疗消化不良。1.选题背景及现状 随着经济全球化的到来,统一市场逐渐在世界范围内形成。作为发展中国家的中国,在不断的跟随世界的脚步,抓住世界大发展的机遇,当然,这对发展中国家仍然是一种挑战。保健

6、业也不例外,早在原始社会就出现了按摩的概念。经过漫长的岁月,按摩术的发展在我国也有着卓著的影响。早在隋唐时期,也是封建社会的强盛时期,按摩术就已发展到鼎盛阶。宋朝的推拿按摩比以前有了新的发展。49年以后,我国多个省、市医院也开始设立了按摩科,全国范围内开始纳入了按摩培训科目,并为按摩设置了专门培训基地。在酒店、浴池等场所也开始设立了保健按摩。随着我国国民生活水平的不断提高,按摩器材也正逐步愈演愈烈地走向人们大众的生活里。 而就当前的按摩器材发展情况看,虽然中国在按摩行业投入了不少精力,按摩器材也有着可观的完善和进步,但国内的保健企业并未顺应时代的潮流,而是只在中低端发展,主要在于国内的按摩器材

7、4的集成度低,功能较单一,而且价格相当昂贵。并非是普通家庭可以接受的。本课题采用单片机(K60FX512)5控制,这种型号的单片机在当今已经有了广泛的应用,归因于其结构简单且控制和使用方便、体积小便于集成等优点。同时对它的硬件设计,这为以后的改进及完善设计奠定了坚实的基础。本课题主要利用其进行对步进电机的控制,包括调速以及定时。2.按摩床方案的设计这次设计针对按摩床结构系统设计,包括按摩触头的设计、触头的布局、按摩方式(推拿和揉压)的设计、传动设计以及简单的单片机硬件设计和程序设计。为了完成按摩床的整体设计,既要考虑按摩的舒适度,又不能忽略按摩床结构的可行性以及稳定性。鉴于此,我构思了如下方案

8、:(见图1)图1 按摩床总体结构模型该设计的按摩床结构主要由床架、按摩头、弹簧、步进电机、驱动器、整体偏心轴承、轴、键、连杆等部件组成。如上图所示。整个床架是2m*1.2m的长方形,整个床面去掉枕头部位和周围边框共有1.1m*1.75m面积,一共布置了231个触头,每3个触头固定在一个三角形板上构成一个按摩头,通过合理的布局77(5*7+6*7)个按摩头,为了按摩床工作时的噪音,应尽量减少传动机构,故总共用14个步进电机作为按摩动力直接用联轴器驱动14根轴。(见图2所示传动系统示意图。)轴上面设有键槽,同偏心轴承相配合,偏心轴承的的外部同连杆相接,实现连杆带动按摩头进行上下涌动和左右摆动于一体

9、的功能。图2 传动系统示意图1-步进电机,2-联轴器,3-按摩装置,4-轴承端盖,5-传动轴2.1按摩头设计a.材料选择:为了保证按摩的舒适度和使用寿命,暂且采用硅胶材料按摩触头而不采用金属质的。b.结构选择:涉及到每个按摩头的大小和按摩的区域,采用每个杆通过三角形支架连接3个按摩触头,而每个按摩触头又采用三瓣式结构,上面采用按摩小触点来起到按摩的舒适的作用。c.大小确定:由于本次课题设计特点,按摩头不宜太大,否则会让身体感觉不适,所以应采用多个小的按摩头来代替少量大按摩头的形式。根据床体的大小,设计出按摩触头的外围大小被r=80mm的圆包围,考虑到材料的节省利用,不需要太深的厚度,采用深度h

10、=15mm(加上按摩触点总高度在17.5mm左右)。按摩触头和按摩头图3所示:图3 按摩触头结构模型2.2 弹簧的选型与设计校核根据按摩方式以及按摩舒适度的要求,首先要保证人(一般体重在65kg左右)站在一个独立的按摩头(三个按摩触头,由三个弹簧组成,每个弹簧相当于受压力650N/3=216.7N)上面不至于将弹簧压溃,应在合理的弹性范围内,其次要求人站在按摩头上时最多压缩量为max=50mm.与此同时,根据弹簧的最大载荷、最大变形量、以及结构要求来确定弹簧丝的直径,弹簧的中径,弹簧的工作圈数,弹簧的螺旋升角以及长度等做出如下所示的弹簧设计:(1) 由于使用弹簧作为一种减振及支撑,且支撑的质量

11、不是太大,故暂且选用II类C级弹簧材料,由文献1教材表16-2 弹簧材料及其许用应力 ,得到其相关参数为:许用切应力 ,弹性模量,切变模量。(2) 选择旋绕比C,由于极限状态时C不小于4或超过16,所以拟定,由文献1教材式16-4(以下未注名的式均查于文献1教材)得:曲度系数K对于圆截面弹簧丝计算公式:.(1)(3)根据安装空间的要求,初设弹簧的中径D为40mm,由此根据C值取弹簧的直径d为4mm,由表16-2查取弹簧的许用应力.此时许用切应力. (2)(4) 由式16-10试计算弹簧丝的直径d应满足: . (3)现在保证D不变,取弹簧丝直径为,则. .再由.满足要求。根据表16-5 普通圆柱

12、螺旋弹簧尺寸系列修正后得到:由得,中径,大径,小径.(5) 根据变形条件求出弹簧工作圈数:由文献1式(16-6)和(16-7)可知:对于压缩弹簧:圈。 (4)(6) 确定其余参数:由文献1教材表16-4 普通圆柱螺旋压缩及拉伸弹簧的结构尺寸计算公式得:节距,取, (5)自由高度, (6)螺旋升角. (7)(7) 验算稳定性:对于压缩型弹簧,若弹簧的长度比较大时,那么受力后就容易失去其稳定性,所以这在工作中这种情况是不允许的。为了便于制造及避免失稳现象,建议一般压缩弹簧的长细比按下列情况选取:当两端固定时,取.一端固定而另一端可以自由转动时b 应满足;当弹簧两端都可以进行自由转动时,b应满足.据

13、此验算:,故满足要求。2.3 连杆的设计这里连杆的主要作用是支撑按摩头,并传递动力。根据设计8要求,可将连杆设计成图4所示:图4 按摩头连杆机构构模型上面与按摩头用螺栓铰接,下端设计成筒状与偏心轴承进行过盈配合,由于连杆的受力主要是人的部分重量,受力较小且主要承受压缩,可采用一般的工程塑料即可。2.4 偏心轴承的选型由于要实现按头的上下运动,及连杆要将其他运动形式转换为上下运动,可以采用曲柄连杆机构、凸轮机构等,鉴于按摩床的体积、重量以及生产成本综合考虑,特采用偏心轴承6与旋转主轴配合达到曲柄连杆机构的运动特性。由于设计要求按摩头的上下运动(行程)为50mm,所以要求偏心距为25mm,对于这种

14、要求,应设计轴承为大小为6017型9(,单位:mm),在安装内圈时,将内圈做成实心的,并在距离轴承中心25mm处开一个直径为30mm的孔作为与轴相配合的孔,由此可保证偏心轴承7的偏心距为25mm,即按摩头上下运动的行程为50mm.2.5 轴系的设计与校核为了减小噪音,故采用步进电机支直接以联轴器连接轴。而步进电机的转矩和功率直间的关系为:力矩与功率换算:步进电机往往都在较大范围进行内调速使用,它的功率也是变化着的,一般只用力矩来就可以来衡量,力矩与功率换算如下:       . (8)   . (9) &

15、#160;  . (10)     其中P为功率单位为瓦,表示角速度(rad/s),表示转速(r/min),为力矩单位为牛顿·米。对于本课题,取最大的转矩和功率:(1)估算出人体的各部位的质量:基于绘画艺术理念所得到的规律和脊椎正常曲线,正常人体的各部位质量分布为:人体的头部约占人总体重的百分之八,手脚四肢约占百分之十五,胸部占百分之三十七,腰部占人总重量的百分之四十,所以最重的部位在腰部和胸部,而一般人的体重在65kg左右,肩宽在40mm左右。(2)估算轴的支撑位置及力的大小:按照按摩头的大小及人的肩宽,可推算人的身体与按摩头的接触

16、关系为:每根轴上至少有三个按摩头同时支撑人的身体。如此以来,假定一个人躺在按摩床上,占用了每根轴上的3个按摩头,而在轴旋转时,有两个按摩头支撑。所以按照人体最重的部位进行计算:按摩头所受的压力. (11)(3)估算轴的最大转矩:. (12)(4)初步确定轴的最小直径:对于按摩头,上下运动的速度最大可以设为.对于步进电机: ;    ;    ;将,代入到式求得P得:.按文献1式(15-2)初步确定轴的最小直径。初部选取轴的材料为45钢,可经调质处理;根据文献1表(15-3),取,于是得:. (13)现在取安装联轴器的轴端为20mm,取

17、安装轴承部位的轴颈为25mm,取轴的直径为30mm,此时与轴相配合的键选平键8×7,L=20的普通平键。由于要使使所选的轴直径与联轴器的孔径相配合,可选取联轴器的型号为GY1型,轴孔的直径为14mm,轴孔的长度为Y型42mm,,转动惯量为0.0008kgm2.(5)按弯扭合成强度条件计算:1) 绘出轴的计算简图(即力学模型):轴所受的所有载荷均是从轴上的零件传来的。计算时可将轴上的分布载荷都简化为集中力,而其作用点可取为载荷分布段的中点处。作用在轴上的所有扭矩,一般则从传动件轮毂宽度的中点算起。故通常可把轴看作置于铰链支座上的梁,那么支反力的作用点则与轴承的类型以及布置方式有关,基于

18、本课题的研究,轴两端轴承职守到径向力,故采用深沟球轴承6005(轴承宽为12mm);对此,因为床内框宽为1100mm,则两轴承中心距为:. (14)因为两按摩头间距为175mm,则两个同时受力的按摩头间距为.此外,轴承离其中一个受力点的位置距离为.根据设计要求及轴的载荷分布,选择一根最危险的轴:即一根轴上承载5个按摩头,其中最危险的时候是当人躺在轴的中间时,这时极限位置是电机带动两个按摩头上下运动,此时轴受到向下的压力: (15)两扭矩均为. (16)据此做出如图5所示的计算简图。2) 根据计算简图绘制扭矩图。从受力情况看,若分别在轴的两段内各取一截面,则两横截面上的扭矩值显然不同,在OC段的

19、截面仅受电机输出扭矩M。据截面法列平衡方程:,得到:; (17)等号右边的负号仅仅说明了扭矩的方向(当其矢量的方向与研究对象的截面的外法线的方向一致时,T取正,反之T取负)。同理,在CD段,截面左侧有电机输出扭矩M和按摩头扭矩,则:,得到:. (18)同理,在BD段,截面左侧有电机输出扭矩M和两个按摩头扭矩均为,则: ,得到:.根据所得数据,把各截面上的扭矩沿轴线变化的情况用如图所示的扭矩图表达出来(见图5):图5 轴的弯扭组合图从图5可以得到最大的扭矩发生在OC段上,最大为. (19)3)据计算简图绘制剪力图和弯矩图。根据前述的力学模型分析,对轴进行剪力分析:此时由平衡方程,. (20),.

20、 (21)将上述参数代入方程得轴承座的支反力为:.以梁的左端点为坐标原点,选取的坐标系如图所示。集中力F1和F2作用于轴上对称的C、D两点上,由于对称力的特点,在CD段内无剪切应力,故亦无弯矩。在AC段内取距原点为x的任意截面,截面以左只有外力FRA,根据剪力和弯矩的计算方法和正负号规则,求得任意截面的剪力FS和弯矩M与x的关系式如下: . 弯矩图和剪力图如图5所示:Fs从图中可以得到最大的弯矩发生在OC按摩头截面上,最大弯矩为3)校核轴的强度:按照弯扭合成应力校核轴的强度,由上述计算已知轴的弯矩和扭矩对轴进行校核时,通常可以只校核轴上的承受最大弯矩和扭矩的截面的强度。按第三强度理论,计算应力

21、: (22)根据文献1式15-5可得轴的弯扭合成强度条件为:式中:轴的计算应力,MPa; M轴所承受的弯矩,Nmm; T轴所受的扭矩,Nmm; W轴的抗弯截面系数,mm3; 对称循环变应力时轴的许用弯曲应力.确定上述参数: (23).考虑到弯曲应力为循环对称变应力以及扭转切应力也为循环对称变应力,且轴要求可以正反转,故取=1.查文献1教材表15-1,得出45钢径调质处理后的许用弯曲应力 .将上述参数代入到式(3-5-1)得: 因为,故按照弯扭合成进行对轴的强度校核结果是安全的.(6)轴的刚度校核及计算本课题所研究轴可视为简支梁,可以主要对轴的弯曲刚度进行校核计算,因为它设计为光轴,可以直接利用

22、材料力学中的公式进行计算其挠度和偏转角。讨论该轴的最大的挠度,应为力作用于轴的中心,又因为同时由两个按摩头支撑,故选择离中间最近的且对称布置的两个按摩头进行校核。受力模型如图6所示:图6 轴刚度校核计算简图由受力特点,可利用材料力学中的叠加法来求弯曲变形,上述的简支梁的受力可以分解成F1单独受力时的挠度与F2单独受力时的挠度叠加即为该简支梁受力的总体影响。由梁在简单载荷作用下的变形,可得:当F2单独作用时:挠曲线方程为:最大挠度:在处有: 确定上式中的参数:,,45钢的弹性模量,.将上述参数代入(3-5-2)得:.由叠加原理可得:该轴最大的弯曲变形的挠度为0.78mm.对于本课题而言,对轴的精

23、度及传动方面没有特殊要求,所以满足要求。2.6 键的选型与校核前面根据轴的直径为30mm已经选择键为普通平键A型8×7×20,对轴上的键进行校核:因为轴和键的材料都是钢,则查文献1教材表6-2查得许用挤压应力为:,取其平均值,。键的工作长度,键与键槽的接触高度为.由文献1教材式(6-1)可得: (24)由于,故选择该键满足使用要求。2.7 轴承的选型与校核(寿命计算)在轴端与床架配合时采用轴承,由于在按摩过程中,轴承只承受径向力,故可选用深沟球轴承,由于轴的直径是30mm,故暂时选用6005型滚动轴承,其基本尺寸为:内孔,外径,基本额定动载荷.根据前面3.5所述的轴的受力模

24、型分析,轴承所承受径向力.则:当量动载荷.为了考虑到实际工作当中轴承可能会受到冲击,不平衡力,惯性力和轴挠曲变形所引起的偏差,可对当量动载荷设置一个载荷系数fp,查文献1教材表13-6取fp为1.2.则:此时的当量动载荷为.查文献1教材式13-5可得: (25)其中:C为基本额定动载荷,. P为当量动载荷为. 取10/3(滚子轴承) n为转速,取最大转速100r/min.将上述参数代入到式(25)得: 2.8 步进电机的选型步进电机是一种专门用于位置和速度精确控制的特种电机。其最大特点就是它的“数字性”,对于控制器发过来的每一个脉冲信号,步进电机在其驱动器的驱动下可运转一个固定角度(步距角),

25、如果接收到了一串脉冲,步进电机则会连续地运转一段对应距离。同时,可以通过控制脉冲频率,直接就可对电机转速进行控制。因为步进电机的工作原理较为简单且容易应用,相应成本不高(相对于伺服)、电机和驱动器又不易损坏,非常适用于PLC和单片机控制,故近年来在各大行业中的控制设备中有着越来越广泛的应用。下面就本课题的研究做出如下电机10选型:步进电机有静转矩、步距角(涉及到相数)、及电流三大要素组成。将这三大要素确定,那么步进电机的型号也就基本可以选定。    1、步距角的选择    电机的步距角由负载精度的要求所决定,把负载的当量换算到电机输出

26、轴上,每个当量脉冲电机要转过的角度,而电机的步距角就应当小于或等于这个角度。步进电机的步距角常规的有0.36度/0.72度的五相电机、09度/1.8度的二相或四相电机、1.5度/3度的三相电机等,由于本课题对步距精度要求不是很高,所以可选用两相的,相应的步距角是0.9度/1.8度。    2、静力矩的选择    运动状态的步进电机的动态力矩是很难确定的,所以先确定电机的静力矩。而静力矩的选择由是电机工作的负载决定,负载分为两种:摩擦负载和惯性负载。因为惯性负载和摩擦负载都是不可以单独存在的。当电机直接起动时(一般由低速)时,两种负载都

27、要考虑,加速起动时则主要考虑惯性负载,恒速运行时则只需考虑摩擦负载。常规情形下,静力矩应为摩擦负载的2至3倍内即可,静力矩一经选定,那么电机的机座和长度即能确定包括几何尺寸。根据前面的计算,最大静力矩为M=T=130N×25mm×2=6.5Nm。据此选定电机为86BYG250-98型,具体参数如下:86BYG250-98,步距角:0.9度/1.8度;相数:2;电压:60-80V;电流:4A;电阻:0.9;电感:7.4mH;最大静力矩:7.5Nm;外形尺寸:98;轴径为19mm。    3、电流的选择    静力矩一

28、样的电机,由于它们的电流参数不同,运行特性的差别会很大,可以根据矩频特性曲线图来判断电机的电流。参考电机电流为4A。    4、力矩与功率换算    由于步进电机通常都在较大范围内进行调速使用,它的功率是可以变化的,一般只需用力矩来衡量,如下所示力矩与功率换算方法:               .     其中P为功率单位为瓦,为角速度(rad/s),n为转速(r/min),M

29、为力矩单位为牛顿·米将,代入到上式求得P得:.2.9 步进电机驱动器的选择选用86系列的电机可选择两相步进电机驱动器2HD8080(F)11.2HD8080(F)为两相混合式的步进电机驱动器,采用24至80V供电,它适合驱动电压为24至80V且电流小于8A,适合外径尺寸为57至86mm的两相混合式步进电机。此驱动采用的是交流伺服驱动器的电流环进行细分控制,工作过程中电机转矩的波动比较小,低速运行时相当平稳,振动和噪音比较小。其使用说明如下:该步进电机驱动器主要特点:1.直流电压24-80V供电2.平均电流控制,两相正弦电流驱动输出3.具有欠压,过电流,过电压和相间短路保护功能4.14

30、档细分和自动半流功能5.光电隔离信号输入/输出6.具备脱机功能3. 控制系统设计根据本课题要求,要满足一个控制器控制14个步进电机,并且每个电机可被独立控制,控制的内容包括:电机正反转和速度,基于此,可选用每个电机加电位器加驱动组成。下面对选用元器件进行介绍分析。3.1单片机选择对于本课题中控制器12的要求,选择多引脚单片机是有必要的。MK60FX512VLQ15 是以ARM Cortex-M4F内核设计,具有IEEE 1558以太网,全速和高速USB 2.0 On-The-Go带设备充电探测、硬件加密以及防篡改探测能力,具有丰富的模拟、通信、定时器和控制外设、浮点运算单元FPU、NAND f

31、lash控制器和DRAM内存控制器,如High speed analog-to-digital converter、FlexTimers、Low power timer、Periodic interrupt timer、CAN总线、SPI总线、IIC总线、UART等设备,从144LQFP封装256KB闪存开始可扩展到256MAPBGA 1MB内存。ARM Cortex-M4F Core13是ARM公司基于ARMv7构架的内核,精简指令集(RISC)具有DSP内核和FPU硬件浮点运算单元。对于复杂的控制算法具有很好的运算性能。图 7 MCU框架3.2驱动器功能说明本课题所用步进电机驱动器具有信号

32、接口、电机接口和电源接口。其中信号接口包括电机转动方向信号和转动速度(脉冲)信号。具体如下说明:一、信号接口:CP和CP为控制脉冲信号的正端和负端;DIR和DIR为方向信号的正端和负端;(ENA和ENA为使能信号正端和负端。本课题将其设为高电平)二、电机接口:A和A接两相四线步进电机A相绕组的正负端;B和B接两相四线步进电机B相绕组的正负端。如果A、B两相绕组进行调换时,此时电机方向会反向电源接口X572采用直流电源供电,工作电压范围为2070VDC,X860H交直流供电,DC为24-80V,AC为20-60V。指示灯:驱动器有两个指示灯,分别为红绿指示灯。绿灯表示电源的指示灯,当驱动器上电以

33、后绿灯为常亮;红灯为故障指示灯,当发生故障时红灯会亮。3.3硬件接线说明根据步进电机驱动器的结构,要求两相步进电机的A相绕组正端与驱动器的A+相接,A相绕组的负端与驱动器的A-相接,两相步进电机的B相绕组正端与驱动器的B+相接,B相绕组的负端与驱动器的B-相接,另外驱动器上的VC接24-70V电压,GND接地,控制脉冲的PUL-与单片机的一个控制引脚相接,控制方向的DIR-与单片机的一个控制引脚相接,而另外的PUL-和DIR-都接到公共端的5V上。这样当一个cp脉冲来时,一相得电一相失电,便可达到步进电机的运作,而脉冲的频率,则可通过软件编程来改变脉冲的占空比来实现。具体硬件连接的示意图如图8

34、。图8 硬件连接示意图1-步进电机驱动,2-单片机,3-B相,4-A相3.4开发板设计:图9 控制流程图对于PCB板的设计,首先要考虑所需的元器件以及必要的电路。本课题的设计所需的电路有:1.电源模块电路,包括稳压、滤波等电路;2.电机控制电路,包括数字信号的获取电路、电机的方向控制电路以及决定电机转速的脉冲输出电路等;3.K60FX512的复位电路、晶振电路等。具体细节如下所述。3.4.1电源模块设计电源模块是整个系统比较重要的单元,如果电源不稳定就可能导致系统死机、复位等症状。根据此系统的需要,系统由24V电源供电,本系统需要两种电压,分别是电机供电24V、MCU供电5V。主要设计如下:1

35、. 采用稳压芯片LM2940将24V电源电压稳压至5V(图10)图 9 5V电源2. 采用稳压芯片LM1117将5V电源稳压至3.3V(图11),给MCU供电。图 10 3.3V电源3. 本供电系统同时采用了大量电容滤波,保证电源电压稳定,防止系统崩溃。总体控制电压如下图(图12):图12 24V-5V-3.3V电源模块3.4.2电机控制电路设计脉宽调制(即PWM)15的基本原理:控制方式是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等但方向不同的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压转为正弦波形,所获得的输出就会

36、比较平滑而且低次谐波较少。按一定的规则可对各脉冲的宽度进行调制,即改变逆变电路的输出电压的大小,可以改变输出的频率。PWM控制电机原理:利用MCU的PWM端口,固定PWM的周期,通过改变PWM的占空比,从而控制输出的电压。以达到控制速度的目的。图13 PWM通过MK60FX512VLQ15 MCU内部的FTM模块可以实现脉宽调制波形(PWM)输出。硬件连接图如图14、图15所示,其中,PTEx口接入A/D模块,将电压模拟量转换为从0到4096中的某一数字信号,便于控制器处理数据。DIR接单片机公共引脚用于控制方向。如图所示的接法,其逻辑控制为:输出逻辑“1”为正转,输出逻辑“0”为反转的共阳极

37、接法。PUL与FTM模块14相连以获得来自于FTM的PWM输出。图14 控制电路图图15 一个电机的控制图3.4.3开发板必要模块设计部分开发板必要的(最小系统:电源模块、复位模块、晶振模块、存储模块)模块电路有复位电路、晶振电路、电源模块电路以及仿真接口(软件下载用)。仿真接口(晶振电路芯片电源复位电路图16 开发板必要电路模块3.4.4开发板所用元器件选型对于本次设计中所使用的元器件均在下表中列出:图17 使用元器件型号规格图3.4.5PCB设计图对于上述的元器件选型及硬件连接方案的确定,绘出如下PCB图。图18图19 PCB板示意图1-稳压芯片;2-LED;3-开关;4-电源接口;5-驱

38、动器接口;6-电容;7-K60FX512单片机;8-电位器;9-复位开关;10-晶振;11-JTAG(程序下载接口);12-电阻;13-电容图203.5编写控制程序 3.5.1程序思想本课题的设计以K60FX512单片机为控制器,通过A/D转换器将14个电位器模数转换为数字信号(12位AD 其数字量范围为0 4096)的14个数,分别判断和2048(4096/2)的大小,如果经转换得到的数字量大于2048,则假设为正转 ADC采集到的数减去2048 得到的差值经处理得到相应的脉宽,驱动器接收到给定脉宽来驱动电机。当差值小于就为反转4096减去 ADC 得到的差值经处理得到相应的脉宽,驱动器接收

39、到给定脉宽来驱动电机(因为等于2048的时候我们的电位器在中间需要停止转动)。程序控制流程图见图21.图21 程序流程框图3.5.2程序编辑#include "common.h"#include "system_MK60DZ10.h"float adcval14 = 0;float * GetConversionValue(void)/*读取电位器数据 for(int i = 0; i < 4; i +) adcvali = ADC_GetConversionValue(1, i + 4); for(int i = 4; i < 10; i

40、+) adcvali = ADC_GetConversionValue(1, i + 6); adcval10 = ADC_GetConversionValue(0, 15); adcval11 = ADC_GetConversionValue(0, 14); adcval12 = ADC_GetConversionValue(0, 13); adcval13 = ADC_GetConversionValue(0, 12); return (float *)adcval;float ADC_GetConversionValue(uint8_t ADCx, uint32_t ADCxMap) f

41、loat ADCHval = 0; if(ADCx = 0) /配置通道 ADC0->SC10 |= ADC_SC1_ADCH(ADCxMap); /等待转换完成 /while(ADC0->SC10 & ADC_SC1_COCO_MASK) = 0); while(ADC0->SC10 & ADC_SC1_COCO_MASK ) != ADC_SC1_COCO_MASK); /while(ADC1->SC10 & ADC_SC1_COCO_MASK )= 0); ADCHval = (float)(ADC0->R0);/读取A通道 值 AD

42、C0->SC10 &= ADC_SC1_COCO_MASK;/清除转换完成标志 /返回ADC输出返回结果 else if(ADCx = 1) /配置通道 ADC1->SC10 |= ADC_SC1_ADCH(ADCxMap); /等待转换完成 /while(ADC0->SC10 & ADC_SC1_COCO_MASK) = 0); while(ADC1->SC10 & ADC_SC1_COCO_MASK ) != ADC_SC1_COCO_MASK); /while(ADC1->SC10 & ADC_SC1_COCO_MASK )=

43、 0); ADCHval = (float)(ADC1->R0);/读取A通道 值 ADC1->SC10 &= ADC_SC1_COCO_MASK;/清除转换完成标志 /返回ADC输出返回结果 return ADCHval;void PWM_Setval(unsigned char dre, uint32_t PWMDuty, unsigned char cnt)/*对电位器的数字信号处理计算得到电机转速(PWM)和方向 if(dre = 1) switch(cnt) case 1:PTD->PDDR |= (1 << 8);FTM0->CONTRO

44、LS0.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 2:PTD->PDDR |= (1 << 9);FTM0->CONTROLS1.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 3:PTD->PDDR |= (1 << 10);FTM0->CONTROLS2.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 4:PTD->PDDR |= (1 << 11);FTM0-&g

45、t;CONTROLS3.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 5:PTD->PDDR |= (1 << 12);FTM0->CONTROLS4.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 6:PTD->PDDR |= (1 << 13);FTM0->CONTROLS5.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 7:PTD->PDDR |= (1 << 14

46、);FTM0->CONTROLS6.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 8:PTD->PDDR |= (1 << 15);FTM0->CONTROLS7.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 9:PTC->PDDR |= (1 << 5);FTM1->CONTROLS0.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 10:PTC->PDDR |= (1 &l

47、t;< 6);FTM1->CONTROLS1.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 11:PTC->PDDR |= (1 << 7);FTM1->CONTROLS2.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 12:PTC->PDDR |= (1 << 8);FTM1->CONTROLS3.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 13:PTC->PDDR

48、 |= (1 << 9);FTM1->CONTROLS4.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 14:PTC->PDDR |= (1 << 10);FTM1->CONTROLS5.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; else if(dre = 0) switch(cnt) case 1:PTD->PDDR &= (1 << 8);FTM0->CONTROLS0.CnV = (FTM0->MOD)*(P

49、WMDuty)/1000); break; case 2:PTD->PDDR &= (1 << 9);FTM0->CONTROLS1.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 3:PTD->PDDR &= (1 << 10);FTM0->CONTROLS2.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 4:PTD->PDDR &= (1 << 11);FTM0->CONTROLS3.CnV

50、 = (FTM0->MOD)*(PWMDuty)/1000); break; case 5:PTD->PDDR &= (1 << 12);FTM0->CONTROLS4.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 6:PTD->PDDR &= (1 << 13);FTM0->CONTROLS5.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 7:PTD->PDDR &= (1 << 14);F

51、TM0->CONTROLS6.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 8:PTD->PDDR &= (1 << 15);FTM0->CONTROLS7.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 9:PTC->PDDR &= (1 << 5);FTM1->CONTROLS0.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 10:PTC->PDDR &am

52、p;= (1 << 6);FTM1->CONTROLS1.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 11:PTC->PDDR &= (1 << 7);FTM1->CONTROLS2.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 12:PTC->PDDR &= (1 << 8);FTM1->CONTROLS3.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; cas

53、e 13:PTC->PDDR &= (1 << 9);FTM1->CONTROLS4.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; case 14:PTC->PDDR &= (1 << 10);FTM1->CONTROLS5.CnV = (FTM0->MOD)*(PWMDuty)/1000); break; void M_PWM_output(void) for(int i = 0; i < 15; i +) if(adcvali >= 2048)/正 adcvali = adcvali - 2048; PWM_Setval(1, adcvali, i); else/反 adcvali = 4096 - adcvali; PWM_Setval(0, adcvali, i); void main(void)/*主函数(包括初始化、采集信号和处理信号) DisableInterrupts(); /* 关闭总中断 */ SystemClockSetup(ClockSour

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论