欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    嵌入式步进电机课程设计实验.docx

    • 资源ID:922771       资源大小:30.90KB        全文页数:10页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    嵌入式步进电机课程设计实验.docx

    课程设计课程名称嵌入式系统原理题目名称基于ARM的步进电机的实现学生学院自动化学院专业班级:13级物联网工程1班学号.学生姓名指导教师张小波2023年12月25日一、课题应用现状及应用分析随着微电子和计算机技术的开展,步进电机的要求量与日俱增,它广泛用于打印机、电动玩具等消费类产品以及数控机床、工业机器人、医疗器械等机电产品中,其在各个国名经济领域都有应用。研究步进电机的控制系统,对提高控制精度和响应速度、节约能源等都具有重要意义。本控制系统的设计,有硬件设计和软件设计两局部组成。其中,硬件设计主要包括单片机最小系统、键盘控制模块、步进电机驱动模块、数码显示模块等功能模块的设计,以及硬件电路在电路板上的实现。软件设计包括主程序以及各个模块的控制程序,最总实验对步进电机转动方向及转动速度的控制,并且将步进电机的转动速度动态显示在LED数码管上。二、功能模块介绍及总体设计;(一)模块介绍:1、ARM嵌入式开发板本课程设计所用到的是AlientekMiniSTM32开发板,该开发板采的的是STM32FlO3RCT6芯片;SPIFLASH芯片是W25Q64,容量为8M字节;配备有LCD模块接口和三个功能按钮。2、步进电机(1)工作原理:步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而到达准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而到达调速的目的。(2)驱动方式:相励磁法:每一瞬间只有一个线圈导通,其他线圈休息。其特点是励磁方法简单,耗电低,精确度良好。但是力矩小、震动大,每次励磁信号走的角度是标称角度。相励磁法:每一瞬间有两个线圈同时导通,特点是力矩大、震动较小,每次励磁转动角度是标称角度。相励磁法:1相和2相轮流交替导通,精度较高,且运转平滑。每送一个励磁信号转动二分之一标称角度。有称为半步驱动。4相电机中,1、2种方式称4相4拍,3种称4相8拍。按钮:在MiniSTM32开发板上的按键KEYO连接在PC5上、KEYI连接在PA15上、WKjJP连接在PAo上。如下图:LCD实现流程:(二)、方案设计:分配五个输出IO口给步进电机控制,三个按键分别输入“转动/停止"、"一档/二档"、"正传/反转"信号,记录电机当前运行状态输出到LCD模块。三、系统硬件平台及接口设计;硬件平台:ALlENTEKMiniSTM32开发板接口色合计: 定MPA4-8为推挽输出,作为步进电机的信号输入口; 定义PAO为输入'作为按钮”开始/停止"入口,PC5为输出'作为按钮“一档/二档"的入口,PA15为'输入'作为按钮“正转/反转”的入口; LCD接口:LCD_LED对应PClO;LCD_CS对应PC9;LCD_RS对应PC8;LCD_WR对应PC7;LCD_RD对应PC6;LCD对应PB15:0;四、流程图及康代码(一)程序流程图:1、主程序及主循环:u8modle20="MODE:null"u8ifplay15="STATE:stop"intmain(void)Stm32_CIoCknit(9);系统时钟设置delayjnit(72);延时初始化UartJnit(72,9600);串口初始化MOTORJnit();初始化motorEXTIJnitO;外部中断初始化LCDJnitO;LED8=1;POINT_COLOR=BLACK;LCD_ShowString(30,40,200,24,24,“STATE:stop”);LCD-ShowString(30J0,200z24z24,MODExlockwise");LCD_ShowString(30,91,200,24,24,“SPEED:0“);POINT_COLOR=RED;LCD-ShowString(IOl,40,200,24,24JStOp");LCD_ShowString(IOl,70,200,24,24JdoCkWise");LCD_ShowString(101,91,200,24,24J(T);keyl=O;MOTOR_Stop();/motorstopwhile(l)(printf(',OKrn");while(key2=0)(MOTOR_Stop();)switch(key)case0:pay();break;opa();case1:break;)2、按钮初始化及其中断程序:按键初始化函数/PAO.15和PC5设置成输入voidKEYJnit(void)(RCC->APB2ENR=1<<2;RCC->APB2ENR=1<<4;JTAG_Set(SWD_ENABLE);GPIOA->CRLA=OXFFFFFFFO;GPIOA->CRL=0X00000008;GPIOA->CRHfc=OXOFFFFFFF;GPIOA->CRH=0X80000000;GPIOA->ODR=1<<15;GPIOC->CRIA=OXFFOFFFFF;GPIOC->CRL=0X00800000;GPI0C->0DR=l<<5;使能PORTA时钟使能PORTC时钟关闭JTAG,开启SWD/PAO设置成输入/PA15设置成输入/PA15上拉,PAO默认下拉/PC5设置成输入/PC5上拉u8KEY_Scan(u8mode)staticu8key_up=l;按键按松开标志if(mode)key_up=l;支持连按if(key_up&&(KEY0=0|KEYl=OWK.UP=1)(delay_ms(10);去抖动key_up=0;if(KEYO=O)returnKEYO_PRES;elseif(KEYl=O)returnKEY1_PRES;elseif(WK_UP=1)returnWKUP_PRES;elseif(KEYO=1&&KEY1=1&&WK_UP=O)key.up=l;return0;/无按键按下)3、步进电机初始化及正转函数:voidMOTOR-Init(Void)RCC->APB2ENR=1<<2;使能PORTA时钟RCC->APB2ENR=1<<5;使能PORTD时钟GPloAACRL&=OXooOOFFFF;GPIOA->CRL=OX11110000yPA8推挽,出PA2LED推挽,出GPlOAACRHa=oxfffffffo;GPIOA->CRH=0X00000001;GPloA->ODRI=IV<8;GPIOA->ODR=1<<4;/PA8,出高GPI0A->0DR=1<<5;GPI0A->0DR=1<<6;/PA8,出高GPI0A->0DR=1<<7;GPIOD->CRLA=OXFFFFFOFF;GPIQD->CRL|=0X00(X)0300y/PD.2GPI0D->0DR=1<<2;/PD2)voidMOTOkStoP(VOld)MOTORI=O;MOTOR2=0;MOTOR3=0;MOTOR4=0;)voidplay(XM0T0R1=1;MOTOR2=0;MOTOR3=0;MOTOR4=0;delay.ms(key1);MOTOR1=1;M0T0R2=1;MOTOR3=0;MOTOR4=0;delayJnS(Rey1);MOTORI=O;M0T0R2=1;MOTOR4=0;delay_ms(key1);MOTORI=O;MOTOR2=1;MOTOR3=1;MOTOR4=0;/LED8=!LED8;delay_ms(key1);MOTORI=O;MOTOR2=0;MOTOR3=1;MOTOR4=0;delay_ms(key1);MOTORI=O;MOTOR2=0;MOTOR3=1;MOTOR4=1;dlay-ms(ky1);MOTORI=O;MOTOR2=0;MOTOR3=0;MOTOR1=1;MOTOR2=0;MOTOR3=0;MOTOR4=1;delay_ms(key1);)voidOPlayO(同理将play()里序反过来就行)3、LCD显示程序:外部中断。效劳程序voidEXTIOJRQHandIer(Void)(delay.ms(10);消抖if(WK_UP=l)/WK_UP按键(key2=!key2;if(key2=0)LED=I;LCD_ShoWString(IOl,40,200,24,24,“stop");LCD-ShowString(IOl,91,200,24,24,1,0");elseLED=O;LCD-ShowString(1010,200,24,24z,work");if(keyl=3)LCD_ShoWStringUOl,91,200,24,24,"quick”);elseif(keyl=10)LCD-ShowString(IOl,91,200,24,24,"slow");)EXTI->PR=1<<O;去除LINEO上的中断标志位)外部中断95效劳程序voidEXTI9_5JRQHandIer(VOid)If(KEYO=O)按键0(if(keyO=O)key=l;LCD_ShowString(IOl,70,200,24,24,"anticlockwise");elseif(key=l)keyO=O;LCD-ShowString(Iol,70,200,24,24,"clockwise");)EXTI->PR=1<<5;去除LINE5上的中断标志位)外部中断1510效劳程序voidEXTII5_10RQHandler(Void)delay_ms(10);消抖If(KEYl=O)按键1if(key2=l)if(keyl=10)(keyl=3;LCD-ShowString(101,91200,24,24z"quick");elsekeyl=10;LCD-ShowString(101,91,200,24,24z"slow)EXTI->PR=1<<15;去除LINE15上的中断标志位)外部中断初始化程序初始化PA0,PC5,PA15为中断输入.voidEXTI_lnit(void)(KEYJnit();Ex-NVIC.Config(GPIO,AARTIR);上升沿触发Ex_NVIC_Config(GPIO_C,5,FTIR);下降沿触发Ex_NVIJCOnfig(GPIO_A,15,FTIR);下降沿触发MY.NVICJnit(2,2,EXTI0JRQnz2);抢占2,子优先级2,组2MY-NVICJnit(2,lzE×TI9-5JRQn,2);抢占2,子优先级1,组2MY,NVICJnit(2AEXTI15-10-IRQnz2);抢占2,子优先级0,组2)五、实验测试、结果分各个功能均实现,运行正常,经老师检查通过。六、总结、心得体会经过这个学期对ARM的学习,并且在老师的悉心指导下和严格要求下,我们总于完成了步进电机设计课程。从书本上的知识到自己亲手的课程设计,每一步对我们来说无疑是巨大的尝试和挑战。七、附主要的参考文献1楚荣珍,周向宁,张鹏“嵌入式步进电机控制系统的设计与实现“;2百度百科词条一“嵌入式系统"I3百度百科词条一“步进电机“,

    注意事项

    本文(嵌入式步进电机课程设计实验.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开