基于arm的步进电机细分驱动控制设计内容摘要:

、衡海龙、郭亚楠。 分别负责硬件设计调试,软件 程序设计调试,材料 西安科技大学电控学院课程设计论文 第 14 页 搜集和整理,本次实习主要任务 是 过 ARM 控制驱动步进电机完成单四拍、双四拍、八拍的转动控制,同时还要实现转速、角度、方向在 TH12864LCD 显示屏上的显示,对于 步进 电机的的驱动通过 ULN2020A 芯片驱动。 通过这 次课程 设计其次,使我更加清楚地认识了团队合作的重要性,所有 设计环节都 脱离不了集体的力量,遇到问题和 小组成员之间 相互讨论交流,这样,我们组员可以尽可能的统一思想 和确定正确的设计方案 ,这样就不会使在做的过程中没有方向,并且这样也是为了 保证我们最终设计的正确性。 从 讨论不仅是一些思想 设计方 向 的问题, 如一些元器件的选择,是选择 ULN2020A 还是选择L289 作为步进电机的驱动芯片,是选择采用外部脉冲时序控制还是采用 ARM 自带的定时器产生 PWM 调制波来驱动芯片等等,这些位的解决都为我们最后设计的成功不可缺少的组成部分,在设计的过程中 少走弯路 ,避免的了一些不必要的错误。 总之,这次课程设计 对我真的很有好处,给我弥补了很多 欠缺的知识,像步进电机方面和 对 ARM 有了 更加 深入 的理解与设计操作。 同时,使我认识到不同的学习方法和实践的重要性。 在今后的学习过程中,要更加努力将自己的所学的专业知识应用到以后的生 产实践中,要更加注重自己的操作能力和实践能力,多多与同学和老师交流,相信定能在专业方面有所掌握,有所专攻。 第 7 章 调试及实物照片: 西安科技大学电控学院课程设计论文 第 15 页 调试现场实物照片 参考文献 : 【 1】 周立功, ARM 嵌入式系统基础教程【 M】北京航空航天大学出版社, 【 2】 周明安,朱光忠,步进电机驱动技术发展及现状【 J】机电工程技术, 2020 【 3】 许大中、贺益康,电机控制【 M】杭州:浙江大学出版社 , 2020 【 4】 周立功、陈明计、陈渝, ARM 嵌入式 Linux 系统构建与驱动开 发范例【 M】: 北京航空航天大学出版社, 2020 西安科技大学电控学院课程设计论文 第 16 页 致谢 值此论文完成之际,我要衷心的感谢给予我关心和帮助的所有师长,同学和朋友们。 而且,我要特别感谢此次课程设计的李红岩老师,在我们小组进行电路硬件和软件设计的时候悉心的指导和无微不至的关怀 给予了我们很大的帮助,是我受益匪浅。 他渊博的学识和平易近人的风范、严谨的治学态度和以身作则的高贵品质,不断激励我们奋进,在这里我们小组全体学生在这表示诚挚的谢意。 最后,感谢我的母校西安科技大学电气与控制工程学院,希望她能越办越强大,培养出更多的优 秀人才。 西安科技大学电控学院课程设计论文 第 17 页 《附录 1》 程序 /* 文 件 名: * 功 能: LED 显示控制。 * 通过 GPIO 控制步进电机 * 说 明:将跳线 JP14 和 JP19 全部短接。 ****************************************************************************/ include define MOTOA 110 // define MOTOB 111 // define MOTOC 112 // define MOTOD 113 // define key1 116 // ABCD define key2 117 // ABBCCDDAAB define key3 118 // AABBBCCCDDDAA define key4 119 //反转 define key5 120 //停止 define KEYCON 0x001f0000 // LED 控制字 define MOTOCON 0x00003c00 // MOTO 控制字 define GPIOSET(PIN) IO0SET = PIN // 方便修改置位端口 define GPIOCLR(PIN) IO0CLR = PIN // 方便修改清位端口 define RS 19 // define SID 16 // define E 14 // define PSB 12 // 并行或串行,选择低电平串行模式 define RST 125 //,复位脚 unsigned char IC_DAT1[64]=电机运行方式组成 : ABCD 单四拍 步距角。 unsigned char IC_DAT2[64]=电机运行方式组成 : ABBCCDDA 双四拍 步距角。 unsigned char IC_DAT3[64]=电机运行方式组为 AABBBCCCDD 单双八拍 步距角。 unsigned char IC_DAT4[64]= 电机 反 转。 unsigned char IC_DAT5[64]= 电机 停 止。 unsigned char IC_DAT6[64]= 自动化 0901 班 张 凯龙 衡海龙步进电机细分控制卢祖起 郭亚楠。 void TransferCom(unsigned char data0)。 void TransferData(unsigned char data1)。 西安科技大学电控学院课程设计论文 第 18 页 void delay(unsigned int m)。 void delay_10ms(uint32 n)。 void lcd_mesg(unsigned char *adder1)。 void DelayNS(uint32 dly)。 void MOTO_Mode1(uint8 i)。 // ABCD void MOTO_Mode10(uint8 i)。 void MOTO_Mode2(uint8 i)。 // ABBCCDDAAB void MOTO_Mode20(uint8 i)。 void MOTO_Mode3(uint8 i)。 // AABBBCCCDDDAA void MOTO_Mode30(uint8 i)。 /**************************************************************************** * 名 称: main() * 功 能:根据表 DISP_TAB 来控制 LED 显示。 ****************************************************************************/ int main(void) { /* PINSEL2 使用启动代码的默认配置,切勿任意配置 PINSEL2,否则总线会受到干扰 */ PINSEL0=0x00000000。 PINSEL1=0X00000000。 PINSEL2amp。 =~(0x00000006)。 //设置所有 I/O 口为普通GPIO 口 IO0DIR =MOTOCON。 // 配置 LED 控制 I/O 方向 LCD12864_init()。 initinal()。 //液晶端 口初始化 while((IO0PINamp。 key1)amp。 amp。 (IO0PINamp。 key2)amp。 amp。 (IO0PINamp。 key3)amp。 amp。 (IO0PINamp。 key4)amp。 amp。 (IO0PINamp。 key5)!=0) { lcd_mesg(IC_DAT6)。 //显示界面 } while(1) { if ((IO0PINamp。 key1)==0) MOTO_Mode1(15)。 if((IO0PINamp。 key4)==0) MOTO_Mode10(20)。 西安科技大学电控学院课程设计论文 第 19 页 // ABCD if ((IO0PINamp。 key2)==0) MOTO_Mode2(15)。 if((IO0PINamp。 key4)==0) MOTO_Mode20(20)。 // ABBCCDDAAB if ((IO0PINamp。 key3)==0) MOTO_Mode3(8)。 if((IO0PINamp。 key4)==0) MOTO_Mode30(10)。 // AABBBCCCDDDAA if((IO0PINamp。 key5)==0) // 停止 { initinal()。 lcd_mesg(IC_DAT5)。 IO0CLR=MOTOCON。 }。 } return(0)。 } /**************************************************************************** * 名 称: DelayNS() * 功 能:长软件延时 * 入口参数: dly 延时参数,值越大,延时越久 * 出口参数:无 *************。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。