- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多轴电机控制传动系统概要
《多轴电机控制传动系统》 设计者:第六组全员 课题组成员:闫保成 张伟 林晓强 课题组长:闫保成 指导老师: 一、项目背景 随着现代化工业步伐的加快,一些企业和工厂的规模越来越大,然而规模大了却带了许多的问题:比如当生产线过长时,企业和工厂必须对模式的改变进行相应的人员增加,这样不仅增加了投入成本,也带来许多的不便,而多轴电机传动系统正好解决了这些问题。 多轴电机传动系统在现在生产中应用比例较广泛。 1、大型的自动化加工基地;例如:工厂,车间; 2、自动机仪表车床。 3、自动化数控设备 二、设计思路 三、系统设计方案图 四、项目功能 1、驱动5个电机,同时转动; 2、5个电机在转动的同时可以自行改变自己的转速,相互独立,互不影响; 3、在液晶显示屏可以显示其中任意电机的序号,转速。 五、模块描述 本系统是多轴电机传动系统。它主要包括四个模块: 1、主控模块; 2、调速驱动模块; 3、液晶显示模块; 4、电机模块。 1、主控模块 主控模块功能: 接收电脑所发送的程序指令,在进行数据处理后一方面通 过驱动接口向调速驱动模块发送命令,驱动电机转动。另 一方面向液晶显示屏发送数据,使液晶屏显示相应内容。 主控模块组成: 单片机最小系统、PCF8591接口、串口通讯、按键、电源。 主控原理图 主控模块原理 单片机最小系统: 包括复位、晶振及单片机,这里我们使用的是 STC89C52单片机。 它负责接收电脑所发送的程序指令,接收电脑所发送的程序指令,在进 行数据处理后一方面通过驱动接口向调速驱动模块发送命令,驱动电机转动。 另一方面向液晶显示屏发送数据,使液晶屏显示相应内容。 PCF8591 接 口: 连接PCF8591芯片,PCF8591的功能包括多路模拟输入、 内置跟踪保持、8位模数转换和8位数模转换。 串口通信: 它主要是将接受来自CPU的并行数据字符转换为连续的串行数 据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU 的器件。 按 键:三个按键分别控制电机的加速、减速和选择。 电 源:采用直流5V的电压,为单片机供电。 主控实物图 2、调速驱动模块 ? 模块功能: 接受主控模块发来的指令给PCF8591实现数据信号与模拟信号的转换,再通过LM232产生的稳定的三角波电压与可控制电压的占空比来实现直流电机的加速、减速和选择的控制要求。 调速驱动原理图 调速驱动原理 PWM脉冲生成模块: 它利用TL431和LM324芯片产生恒定的三角波,控制电压和三角波经 LM324组成的滞会比较器产生PWM脉冲, 通过改变脉冲的占空比去调节电机的速度。 PCF8591芯片接收模块 : PCF8591芯片接受到主控模块输出的脉冲指令,把单片机的 数字信号转换成模拟信号 ; 其输出接入PWM脉冲生成模块中,通过改变控制电压从而 改变PWM的占空比。 通信接口模块: 它实现了主控模块与电机,电机 与电机之间的通信。 调速驱动实物图 3、液晶显示模块 模块功能: 接收主控所发出的程序命令, 显示相应电机的编号、转速。 诺基亚5110LCD: 4、电机模块 电机模块功能: 电机是联系生产最直 接的模块。 本系统用到的是24V/30W直流电机,它主要有两部分组成: 定子,转子。 电机供电: 六、程序概述 七、实习心得 收获之多: 1、通过这次的实训,我们进一步的了解了单片机的最小系统,以及各个模块的工作原理、编程及一些简单的运用; 2、这次的实训更好的锻炼了我们实际的动手能力,让我们有机会学以致用,为我们接下的工作奠定了基础。 美中不足: 1、对于一些复杂的电路还是理解不透; 2、对于有一些复杂程序还是不能过很好的理解; 3、焊接技术还有待提高。 * * * 模板来自于 * #include reg52.h #includepcf8591.h #include5510.h sbit key_mode=P1^5; sbit key_up=P1^6; sbit key_down=P1^7; bit flago=0; bit flag=0; void delay_ms(int ms) { int i; while(ms--) { for(i=0;i110;i++); } } main() { unsigned char
文档评论(0)