您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > 基于AVR单片机步进机驱动电路设计
课程设计报告课程:基于AVR单片机步进机驱动电路设计姓名:班级:教师:*****大学一、设计名称:基于AVR单片机的步进机驱动电路设计二、步进机简介:步进电机是数字控制电机,是一种将电脉冲转化为角位移的执行机构,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进机有以下优点:(1)通常不需要反馈就能对位置和转速进行控制;(2)位置误差不会积累;(3)与数组设备兼容,能够直接接受数字信号;(4)可以快速启停。步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。此外,按照电动机驱动架构又可分单极性和双极型步进电动机。步进电动机主要有两种工作方式:整步方式和半步方式。以步距角1.8°四相混合式步进电动机为例,在整步方式下,步进电动机每接受一个脉冲,旋转1.8°,旋转一周,需要200个脉冲。在半步方式下,步进电动机每接受一个脉冲,旋转0.9°,旋转一周,则需要400脉冲。本课程设计选择单极3相步进机,单极3相步进机有3个磁激励相,分别用A、B、C表示,每相有一个磁激励线圈。通过控制3个磁激励线圈电流通断的先后时间顺序和通断频率,就可以改变步进电机的旋转方向并控制转速。单极3相步进机工作在整步方式时,即工作在3相3拍时,每拍转动3°,工作在半步方式时,即工作在3相6拍时,每拍转动1.5°。图1单极3相步进电机原理图三、设计目的及要求设计目的:1、通过本次课程设计加深对单片机课程的全面认识和掌握,对单片机课程的应用进一步的了解;2、掌握步进电机基本知识,了解单片机对步进机控制的基本原理;AABCCB3、掌握控制步进机转动编程方法;4、掌握步进机和单片机的接口驱动方法5、通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。设计要求:1、能对三相步进电动机的转速进行控制。2、能对三相步进电动机的步长进行控制。四、设计原理步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。(1)控制步进电机的转向果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。(2)控制步进电机的速度给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整单片机发出的脉冲频率,(3)步进电机的步长步进机的步长,即步进机的步距角,步距角是控制系统每发出一个步进机脉冲信号电动机所转动的角度。步进电动机的控制精度与转子的极数和定子的位相成反比,如图2所示。因此当步进机确定之后,步进机的步长尽随步进机工作方式的改变而改变。单极3相步进机工作在整步方式时,即3相3拍时,每拍转动3°,工作在半步方式时,即3相6拍时,每拍转动1.5°。所以步进机要实现步长的改变应工作在3相3拍和3相6拍两种工作方式下。图2步进机的定子与转子示意图(a)3相3拍驱动时序图(b)3相6拍驱动时序图图33相步进机控制时序图步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。其基本原理作用如下图所示:图4步进机控制系统的组成1、脉冲信号的产生脉冲信号一般由单片机或CPU产生,一般脉冲信号的占空比为0.3-0.4左右,电机转速越高,占空比则越大.2、信号分配单机三相步进电机有两种工作方式,图3给出了它们的控制时序图。3相3拍其各相通电顺序正转为A-B-C-A-B-C,反转为A-C-B-A-C-B,每拍转动3°.三相六拍的六拍编码为:A,B,C,A,B,C用二进制表示为:1231231ABCABC100010001100010001123456123ABCABC1001100100110011011001100100x04,0x02,0x01;3相6拍其各相通电顺序正转A-AB-B-BC-C-CA,反转为A-AC-C-CB-B-BA,每拍转动1.5°。三相六拍的六拍编码为:A,AB,B,BC,C,CA,用二进制表示为:01H,03H,02H,06H,04H,05H,把次代码串,顺序循环发送,步进电机正转,反过来循环发送,步进电机反转。通电控制脉冲必须严格按照这一顺序分别控制A,B,C相的通断。3、功率放大功率放大是驱动系统最为重要的部分。步进电机在一定转速下的转矩取决于它的动态平均电流。平均电流越大电机力矩越大,要达到平均电流大这就需要驱动系统尽量克服电机的反电势。因而不同的场合采取不同的的驱动方式,到目前为止,驱动方式一般有以下几种:恒压、恒压串电阻、高低压驱动、恒流、细分数等。五、硬件设计步进机硬件原理图如图图5步进机硬件原理图ATmaga16将控制脉冲从PA0~PA2输出,通过限流保护电阻与一片7位达林顿驱动芯片MC1413相连接。当PA0输出高电平‘1’时,MC1413内部对应O0的达林顿管导通,电流从电源正极(+12V)通过步进机A相线圈,经O0端流入地线;输出为低电平‘0’时,MC1413内部对应O0的达林顿管截止,A相线圈中无电流通过。R4~R6将MC1413的3个控制位拉低,以保证步进电机在上电时不会产生误动作。Kx控制步进机的工作方式,K1控制3相3拍,K2控制3相6拍,K3控制转速变慢,K4控制转速变快。六、软件设计流程图:主程序流程图与中断程序流程图主程序流程中断开启开始I\O口初始化设置定时常数,定时器工作方式。步长调节步进间隔时间调节按键扫描电机运转中断程序框图:中断入口保护现场中断次数1=0读方向指示发速度脉冲重送相关状态恢复现场中断返回YN源程序:#includeavr/io.h#includeavr/interrupt.hunsignedchartemp0[3]={0x04,0x02,0x01};//3相3拍,每拍转动3度unsignedchartemp1[6]={0x04,0x06,0x02,0x03,0x01,0x05};//3相6拍,每拍转动1.5度unsignedcharflag1=0;//定时1秒时的标志位unsignedinti=0,j=0,n=0,k=50;voiddelay(){unsignedintm=0;for(m=0;m10000;m++);}SIGNAL(SIG_OVERFLOW0)//溢出中断服务程序,定时500ms{TCNT0=177;n++;if(n==k){n=0;flag1=1;}}SIGNAL(SIG_INTERRUPT0)//INT0中断服务程序,控制时间转速变慢,k3开关控制{TCNT0=177;n=0;k=k+50;}SIGNAL(SIG_INTERRUPT1)//INT1中断服务程序,控制时间转速变快,最快间隔500ms,k4开关控制{TCNT0=177;n=0;k=k-50;if(k0){PORTB=(13);//当最快间隔为500ms,间隔再变小时,蜂鸣器响}}intmain(void){DDRA=0XFF;//控制步进电机口PORTA=0X00;DDRB=0XFF;//控制蜂鸣器PORTB=(13);DDRD=0X00;//控制开关K1,K2,K3,K4PORTD=0XFF;TCNT0=177;//给初值TIMSK=0X01;//使能T/CO溢出中断TCCR0=0X05;//1024分频,固定8MHZMCUCR=(1ISC11)|(1ISC01)|(1ISC00);//INT1下降沿触发INT0上升沿触发GICR=(1INT0)|(1INT1);sei();while(1){for(i=0;i3;i++){PORTA=temp0[i];while(!flag1);flag1=0;}if((16)!=(PIND&(16)))//开关k1,控制3相3拍,每拍转3度{delay();if((16)!=(PIND&(16))){while(1){for(i=0;i3;i++){PORTA=temp0[i];while(!flag1);flag1=0;}}while(!(PIND&(16)));delay();}}if((17)!=(PIND&(17)))//开关k2,控制3相6拍,每拍转1.5度{delay();if((17)!=(PIND&(17))){while(1){for(j=0;i6;j++){PORTA=temp1[j];while(!flag1);flag1=0;}}while(!(PIND&(17)));delay();}}}}七、设计收获这次课程设计,由于时间紧促,以及涉及到许多没学过得地方,感觉有些生疏,但最终通过网络,书籍以及请教同学等各种方法,终于基本完成了老师布置的任务,过多天的奋战,我感受颇深,对此我总结如下:首先:认真审题,看懂题目的要求,选择适和自己能力的课题,做到既能把课题完成又能锻炼自己的能力;其次:选定题目之后根据课题要求,复习相关的知识并查阅相关的资料,准备实验课题。其中(1)根据课程设计的要求和自己所要增加的功能写好程序流程图,在程序流程图的基础上,根据芯片的功能写出相应的程序。然后再进行程序调试和相应的修改,以达到能够实现所要求的功能的目的。(2)还要根据实验的实际情况,添加些额外程序来使系统更加的稳定,如开关的消震荡(采用延迟)。(3)程序要尽量做到由各个子程序组成,在有些程序后面最好加注释,这样在程序出错的检查过程中可以更容易查找的到,也更简洁,更明白易懂。(4)该实验的程序可以参考DVCC系列单片机微机仿真实验系统实验指导书中的串并转换实验,也可自己根据自己熟悉的方法来编程。(5)在设计控制开关时,注意2个中断的打开和关闭的先后顺序,否则就会出错。最后,要根据课题要求在实验室对程序进行调试,记录其中的错误,积累经验。我和吕雪梅两个人一起通过泡图书馆,上网查阅有关资料,以及向同学请教完成了这份报告。步进机的知识由陌生度99.9%到基本了解了它的基本知识包括种类,工作方式以及工作原理等,并且学会用单片机控制步进机。通过这次的课程设计深刻认识到自己在动手方面能力的不足,急需并且有待进一步的提高,课程设计是一个复杂的过程,不仅需要软件方面的知识更需要对硬件的结构有比较熟悉的了解,在设计的过程中,不仅培养了对知识的了解和进一步的掌握,而且对芯片的结构有更进一步的认识。通过两人的通力合作使实验达到了比较理想的效果,可见团队合作力是不可缺少的,团队合作精神是非常重要的。
本文标题:基于AVR单片机步进机驱动电路设计
链接地址:https://www.777doc.com/doc-2568776 .html