1、采用 AT89C52 单片机。AT89C52 单片机是一种低功耗、高性能 CMOS 8 位微控制器,具有 8K 在系统可编程 Flash 存储器。采用IAP15F2K61S2 单片机。IAP 系列单片机具有低功耗、高速度、超强抗 干扰等优点。方案三:采用 STC89C52RC 单片机本身带有有 8 路十位 AD 转换和 2 路 PWM, 而且处理速度比一般单片机要快,精度高。综合比较以上三种单片机。为了更方便、高精度、高速度地控制系统,完成题目要求,故选择 IAP15F2K61S2 单片机为主控芯片。3、电机驱动电路的论证与选择使用 L298N 芯片。L298N 是一种高电压、大电流电机驱动芯
2、片,最高工作电压可达 46V,峰值电流可达 3A,持续工作电流为 2A。可以通过 I/O 口提供信号方便地控制直流电机或步进电机,但是容易发烫。使用 BTS7960 芯片。BTS7960 芯片是集成的大电流半桥驱动,其内部 包含一片 NMOS、一片 PMOS 和一片半桥门集驱动。其输入信号为标准的 TTL 电平, 直接与单片机相连就可以,降低系统的不稳 定因素,而且可以用 PWM 调速。综合比较以上两种驱动芯片,由于电路要求精度高、稳定性好,能满足速度变换要求,故选择 L298N 芯片为驱动芯片。二、系统理论分析与计算保证系统稳定性的方法经分析计算,本设计的稳定性主要有2个方面。与外围硬件设备
3、稳定性有关,包括支架的稳定性、检测及控制模块安装的稳定性。控制稳定性,包括电机的转动稳定性,单片机输出电平的稳定性。本设计从以下方面减小损耗以提高效率:(1)选取合适的材料搭建支架采用合适大小的木棍作为支架的材料,不仅更容易加工,还具有相当一定程度的稳定性。然后传感与控制模块用胶枪打胶凝住,不仅稳固,还不易损坏器件,便于器件的回收利用。(2)选取适宜的硬件提高精准度为让控制更稳定,选用了IAP15F2K61S2单片机作为主控芯片,MPU6050作为角度与加速度传感模块。使系统更具稳定性。 各有关量的计算单摆的周期对于本系统具有重要作用,公式为T=2( l / g) ;而需要控制电机的输出功率来
4、控制所需力的大小,公式为P=UIcos,即有用功功率;在提供纸板上需用激光笔画出制定长度的线段,所以就要利用单摆的长及高度计算所画的线段长,公式为D=(Lcos+h)tan。三、电路与程序设计1、小型直流电机电路图1 小型直流机电路图2、显示模块的电路由于1602采用并口传输,速度比12864串口快。数码管就不说了,没有驱动要加CD4511等外加电路。1602内部集成有显示芯片,可以识别英文字母、阿拉伯数字,所以我们选用1602液晶显示屏作为显示模块。图2 显示模块电路图3、电机驱动电路图3 电机驱动电路图三、系统设计1、系统流程图 图4 系统程序流程图 2、程序设计(见附录)四、测试方案及结
5、果1、测试仪器秒表、自制风力摆、量角器、长直尺、小型风扇、带方向角度的硬纸板。2、测试结果驱动风力摆工作,使激光笔稳定地在地面画出一条长度不短于50cm的直线段,来回五次,记录其由静止至开始自由摆时间及最大偏差距离。测试结果如表1所示。表1 风力摆画长于50cm直线测试时间(s)误差1误差2误差3误差4误差5第一次测试第二次测试第三次测试设置风力摆画线长度,驱动风力摆工作,记录其由静止至稳定摆动的时间及在画不同长度直线时的最大偏差距离。测试结果如表2所示。表2 风力摆画不同长度直线测试画30cm直线画40cm直线画50cm直线画60cm直线 设置风力摆画线长度,驱动风力摆工作,记录其由静止至稳
6、定摆动的时间及在画不同角度直线时的最大偏差。测试结果如表3所示。表3 风力摆画不同角度直线误差类型画0o或180o直线角度(o)5364偏离(cm)画45o或225o直线2画90o或270o直线7画135o或315o直线1画180o或360o直线将风力摆拉起一定角度放开,驱动风力摆工作,测试风力摆制动达静止状态所用时间。测试结果如表4所示:表4 风力摆回复静止测试时间1时间2时间3时间4时间5拉起30o拉起35o拉起40o拉起45o以风力摆静止时激光笔的光点为圆心,设置风力摆画圆半径,驱动风力摆用激光笔在地面画圆,记录其画三次圆所用时间以及最大偏差距离,重复测试三次。改变圆半径再次测试,重复以
7、上操作四次。测试结果如表5所示:表5 风力摆画圆测试半径15cm半径20cm半径25cm半径30cm半径35cm第一次偏差距离(cm)第二次第三次在的基础上,使用一台60W台扇在距离风力摆1m距离处向其吹5s后静止,记录风力摆恢复画圆状态时间及偏差测试结果如表6所示。表6 抗干扰测试恢复时间(s)3、测试分析 系统总体上达到较好的性能。风力摆能够实现功能,且运行的时间误差在允许范围内。风力摆运行性能较好,制作成本低,性价比较高。倒立摆控制的 误差主要来源于小型轴流风机、传感器和风力摆机械结构。在运动中摩擦力不均匀。因此,采用具有更好启动、制动和调速特性直流电机、精度更高的传感器改进硬件结构,以
8、消除控制误差,使控制精度更高。五、结论与心得在此次比赛中我们感觉最难做的就是角度控制这方面,在这次风力摆系统中,我们采用了四个轴流风机控制风力摆。在控制过程中只要有一个电机速度过快或者过慢就会影响这个系统的运动,所以对这次程序设计及其调节带来很大的难度。为了更好的控制,我们利用了陀螺仪,根据加速度变化来调节每个电机转速,从而解决了这一难题。六、参考文献 1谭浩强.C语言程序设计M.北京:清华大学出版社,2012 2 姚金生 郑小利 等编着 元器件 电子工业出版社,2004 年 10 月第 1版M 3 张德江.计算机控制系统. 北京.机械工业出版社附录1:源程序#include #include
9、 /*函数名称:Delay_us功 能:STC 1T单片机1us延时程序入口参数:us:延时的微秒数返 回 值:无 备 注:内部时钟*/void Delay_us(unsigned int us) while( us-) _nop_(); /* 函 数 名: LCD1602_WriteCMD* 函数功能: 向lcd1602写指令* 入口参数: cmd:指令* 返 回: 无* 备 注:无*/void LCD1602_WriteCMD(unsigned char cmd) EN=0; RS=0; RW=0; Delay_us(10); EN=1; DataPort=cmd;LCD1602_WriteDAT向lcd1602写数据dat:数据void LCD1602_WriteDAT(unsigned char dat) RS=1; DataPort=dat;LCD1602_CheckBusy检测lcd1602忙信号void LCD1602_CheckBusy(void) unsigned char temp; DataPort=0xff; /做输入先置高,12c系列单片机需转换端口模式 while(1) EN=0; RS=0; RW=1; Delay_us(10); EN=1; temp=DataPort; /读取忙通道数据 if(temp&0x80)!=0x80) break;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1