1.基于单片机步进电机控制系统设计
单片机驱动步进电机很简单,一般都是4线的,还有5线的,单片机最好用AT89C51,这个芯片很可靠,不用看门狗,并且每个P口都有锁定功能。
电源买个开关电源,如果是演示,买个变压器,要两路的,一路 5V,一路12V的(根据步进电机的电压,一般都是12V的),5V用个大的7805就可以了,12V只要整流一下,后面加一个4700u的大电容,主要是驱动步进电机,选个小一点的步进电机,驱动电路用TIP41就可以了,每个线可以加个蓄流二极管,A,B,C,D四个线顺序别接错。单片机和步进电机驱动最好用光耦隔离,TLP521-4正好4路,驱动TIP41中间加一个2K 的电阻。
驱动程序和硬件连接网上到处可以找的到。
2.基于单片机步进电机自动控制系统设计
能实现步进电机的正转、反转、手动和自动控制。
步距角为1.5°或3°已知步进电机的型号是36BF003(属三相步进电机),工作相电压的标称值是27V,相电流的标称值是1.5A,保持转距是78mN·m 步距角为1.5°/3° 。Protel99SE软件的应用及仿真PCB板的制作。
关键词:步进电机 功率放大电路 TWH8751 Protel99SE目录一、设计目的、意义…………………………..…………………………第2页二、步进电机的工作原理…………………………………………………第2页三、步进电机的系统组成框图……………………………………………第5页四、单元电路设计…………………………………………………………第6页五、步进电机供电电源电路设计………………………………………..第8页六、仿真及Protel实验结果……………………………………………….第9页七、Protel99SE软件介绍………………………………………………….第10页八、设计心得………………………………………………………………第11页.九、参考文献………………………………………………………………第12页一、设计目的、意义: 1)了解步进电机的结构和工作原理。 2)掌握步进电机控制系统的设计方法及其调试技术。
3)能够使用电路仿真软件进行电路调试。步进电机驱动控制系统设计内容二、步进电机的工作原理 .步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。
使得在速度、位置等控制领域用步进电机来控制变的非常的简单。 虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。
它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。
目前,生产步进电机的厂家的确不少,但具有专业技术人员,能够自行开发,研制的厂家却非常少,大部分的厂家只一、二十人,连最基本的设备都没有。仅仅处于一种盲目的仿制阶段。
这就给户在产品选型、使用中造成许多麻烦。签于上述情况,我们决定以广泛的感应子式步进电机为例。
叙述其基本工作原理。望能对广大用户在选型、使用、及整机改进时有所帮助。
三相发电机主要是三相交流同步发电机。其转子通常为直流励磁线圈产生的电磁铁,为发电机工作提供磁场。
定子是在空间互差120度电角度的三相交流绕组(按照一定规律连接的线圈组称为绕组)。 直流电且由原动机带动三相同步发电机的转子旋转时,转子磁场对定子的三相绕组有相对运动,定子的三相绕组就感应三相交流电。
调节转子线圈通入直流电流的大小,可以改变定子的三相绕组电压的大小,改变原动机的转速,可以改变定子的三相绕组电压的频率。 图1 1、结构:如图1所示, 电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开。
0、1/3て、2/3て,(相邻两转子齿轴线间的距离为齿距以て表示),即A与齿1相对齐,B与齿2向右错开1/3て,C与齿3向右错开2/3て,A'与齿5相对齐,(A'就是A,齿5就是齿1)下面是定转子的展开图: 2、旋转: 如A相通电,B,C相不通电时,由于磁场作用,齿1与A对齐,(转子不受任何力以下均同)。 如B相通电,A,C相不通电时,齿2应与B对齐,此时转子向右移过1/3て,此时齿3与C偏移为1/3て,齿4与A偏移(て-1/3て)=2/3て。
如C相通电,A,B相不通电,齿3应与C对齐,此时转子又向右移过1/3て,此时齿4与A偏移为1/3て对齐。 如A相通电,B,C相不通电,齿4与A对齐,转子又向右移过1/3て 这样经过A、B、C、A分别通电状态,齿4(即齿1前一齿)移到A相,电机转子向右转过一个齿距,如果不断地按A,B,C,A……通电,电机就每步(每脉冲)1/3て,向右旋转。
如按A,C,B,A……通电,电机就反转。 由此可见:电机的位置和速度由导电次数(脉冲数)和频率成一一对应关系。
而方向由导电顺序决定。 不过,出于对力矩、平稳、噪音及减少角度等方面考虑。
往往采用A-AB-B-BC-C-CA-A这种导电状态,这样将原来每步1/3て改变为1/6て。甚至于通过二相电流不同的组合,使其1/3て变为1/12て,1/24て,这就是电机细分驱动的基本理论依据。
不难推出:电机定子上有m相励磁绕阻,其轴线分别与转子齿轴线偏移1/m,2/m……(m-1)/m,1。并且导电按一定的相序电机就能正反转被控制——这是步进电机旋转的物理条件。
只要符合这一条件我们理论上可以制造任何相的步进电机,出于成本等多方面考虑,市场上一般以二、三、四、五相为多。 3、力矩: 电机一旦通电,在定转子间将产生磁场(磁通量Ф)当转子与定子错开一定角度产生力F与(dФ/dθ)成正比 其磁通量Ф=Br*S Br为磁密,S为导磁面积 F与L*D*Br成正比 L为铁芯有效长度,D为转子直径 Br=N·I/RN·I为励磁绕阻安匝数(电流乘匝数)R为磁阻。
力矩=力*半径力矩与。
3.基于51单片机的步进电机控制系统设计
//-AVR的--------------------------------
//正反转可控的步进电机ULN2003A(atmega16)AVR
#include <avr/io.h>
#include <avr/delay.h>
#define INT8U unsigned char
#define INT16U unsigned int
//四相步进八拍方式
//正转励磁序列为A->AB->B->BC->C->CD->D->DA
const INT8U zheng[]={0x01,0x03,0x02,0x06,0x04,0x0C,0x08,0x09};
//反转励磁序列为A->AD->D->CD->C->BC->B->AB
const INT8U fan[]={0x01,0x09,0x08,0x0C,0x04,0x06,0x02,0x03};
//按键定义
#define k1() ((PIND & (1<<PD0))==0x00)
#define k2() ((PIND & (1<<PD1))==0x00)
#define k3() ((PIND & (1<<PD2))==0x00)
//-----------------------------------------------------------------
// 步进电机正转或反转n圈
//-----------------------------------------------------------------
void STEP_MOTOR_RUN(INT8U Direction,INT8U n)
{
INT8U i,j;
for (i=0;i<n;i++)
{
for(j=0;j<8;j++)
{
if(k3()) return;
if(Direction==0) PORTB=zheng[j];
if(Direction==1) PORTB= fan[j];
_delay_ms(200);
}
PORTB=0x01;
}
}
// 主程序
//-----------------------------------------------------------------
int main()
{
INT8U r=1;
DDRB=0XFF;PORTB=zheng[0];
DDRD=0X00;PORTD=0XFF;
while(1)
{
if(k1())
{while(k1());STEP_MOTOR_RUN(0,r);} //STEP_MOTOR_RUN(INT8U Direction,INT8U n)
if(k2())
{while(k2());STEP_MOTOR_RUN(1,r);}
}
}
4.基于单片机步进电机的控制系统论文怎么写?
摘要…………………………………………………………………………………Ⅰ
ABSTRACT……………………………………………………………………Ⅱ
1绪论………………………………………………………………………………1
1.1步进电机概述…………………………………………………………………1
1.2混合式步进电机……………………………………………………………1
1.3课题研究内容…………………………………………………………………2
1.4论文安排………………………………………………………………………2
2 系统方案论证…………………………………………………………………4
2.1驱动电路的选择……………………………………………………………4
2.2元器件的选择………………………………………………………………4
3混合式步进电机细分驱动技术研究………………………………………8
3.1步进电机的细分驱动原理………………………………………………8
3.2细分驱动对步进电机运行的影响………………………………………9
3.3细分驱动的实现……………………………………………………………11
4系统架构与硬件电路的实现………………………………………………13
4.1整体硬件结构………………………………………………………………13
4.2系统硬件电路设计…………………………………………………………14
4.3算法的设计…………………………………………………………………24
5系统软件设计…………………………………………………………………28
5.1系统软件总体结构…………………………………………………28
5.2系统开发软硬件环境………………………………………………28
5.3步进电机控制主程序设计………………………………………………29
5.4步进电机细分驱动程序设计……………………………………………29
5.5步进电机显示和键处理程序设计………………………………………31
5.6其他程序模块设计…………………………………………………………32
6基于单片机的步进电机控制系统仿真…………………………………34
7结论与展望……………………………………………………………………37
参考文献…………………………………………………………………………38
附录Ⅰ……………………………………………………………………………40
附录Ⅱ……………………………………………………………………………41
致谢…………………………………………………………………………………49
还有原理图,仿真
5.基于单片机步进电机自动控制系统设计
能实现步进电机的正转、反转、手动和自动控制。
步距角为1.5°或3°已知步进电机的型号是36BF003(属三相步进电机),工作相电压的标称值是27V,相电流的标称值是1.5A,保持转距是78mN·m 步距角为1.5°/3° 。Protel99SE软件的应用及仿真PCB板的制作。
关键词:步进电机 功率放大电路 TWH8751 Protel99SE目录一、设计目的、意义…………………………..…………………………第2页二、步进电机的工作原理…………………………………………………第2页三、步进电机的系统组成框图……………………………………………第5页四、单元电路设计…………………………………………………………第6页五、步进电机供电电源电路设计………………………………………..第8页六、仿真及Protel实验结果……………………………………………….第9页七、Protel99SE软件介绍………………………………………………….第10页八、设计心得………………………………………………………………第11页.九、参考文献………………………………………………………………第12页一、设计目的、意义: 1)了解步进电机的结构和工作原理。 2)掌握步进电机控制系统的设计方法及其调试技术。
3)能够使用电路仿真软件进行电路调试。步进电机驱动控制系统设计内容二、步进电机的工作原理 .步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。
使得在速度、位置等控制领域用步进电机来控制变的非常的简单。 虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。
它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。
目前,生产步进电机的厂家的确不少,但具有专业技术人员,能够自行开发,研制的厂家却非常少,大部分的厂家只一、二十人,连最基本的设备都没有。仅仅处于一种盲目的仿制阶段。
这就给户在产品选型、使用中造成许多麻烦。签于上述情况,我们决定以广泛的感应子式步进电机为例。
叙述其基本工作原理。望能对广大用户在选型、使用、及整机改进时有所帮助。
三相发电机主要是三相交流同步发电机。其转子通常为直流励磁线圈产生的电磁铁,为发电机工作提供磁场。
定子是在空间互差120度电角度的三相交流绕组(按照一定规律连接的线圈组称为绕组)。 直流电且由原动机带动三相同步发电机的转子旋转时,转子磁场对定子的三相绕组有相对运动,定子的三相绕组就感应三相交流电。
调节转子线圈通入直流电流的大小,可以改变定子的三相绕组电压的大小,改变原动机的转速,可以改变定子的三相绕组电压的频率。 图1 1、结构:如图1所示, 电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开。
0、1/3て、2/3て,(相邻两转子齿轴线间的距离为齿距以て表示),即A与齿1相对齐,B与齿2向右错开1/3て,C与齿3向右错开2/3て,A'与齿5相对齐,(A'就是A,齿5就是齿1)下面是定转子的展开图: 2、旋转: 如A相通电,B,C相不通电时,由于磁场作用,齿1与A对齐,(转子不受任何力以下均同)。 如B相通电,A,C相不通电时,齿2应与B对齐,此时转子向右移过1/3て,此时齿3与C偏移为1/3て,齿4与A偏移(て-1/3て)=2/3て。
如C相通电,A,B相不通电,齿3应与C对齐,此时转子又向右移过1/3て,此时齿4与A偏移为1/3て对齐。 如A相通电,B,C相不通电,齿4与A对齐,转子又向右移过1/3て 这样经过A、B、C、A分别通电状态,齿4(即齿1前一齿)移到A相,电机转子向右转过一个齿距,如果不断地按A,B,C,A……通电,电机就每步(每脉冲)1/3て,向右旋转。
如按A,C,B,A……通电,电机就反转。 由此可见:电机的位置和速度由导电次数(脉冲数)和频率成一一对应关系。
而方向由导电顺序决定。 不过,出于对力矩、平稳、噪音及减少角度等方面考虑。
往往采用A-AB-B-BC-C-CA-A这种导电状态,这样将原来每步1/3て改变为1/6て。甚至于通过二相电流不同的组合,使其1/3て变为1/12て,1/24て,这就是电机细分驱动的基本理论依据。
不难推出:电机定子上有m相励磁绕阻,其轴线分别与转子齿轴线偏移1/m,2/m……(m-1)/m,1。并且导电按一定的相序电机就能正反转被控制——这是步进电机旋转的物理条件。
只要符合这一条件我们理论上可以制造任何相的步进电机,出于成本等多方面考虑,市场上一般以二、三、四、五相为多。 3、力矩: 电机一旦通电,在定转子间将产生磁场(磁通量Ф)当转子与定子错开一定角度产生力F与(dФ/dθ)成正比 其磁通量Ф=Br*S Br为磁密,S为导磁面积 F与L*D*Br成正比 L为铁芯有效长度,D为转子直径 Br=N·I/RN·I为励磁绕阻安匝数(电流乘匝数)R为磁阻。
力矩=力*半径力。
6.基于51单片机步进电机的控制及细分驱动电路
参考:接触单片机快两年了,不过只是非常业余的兴趣,实践却不多,到现在还算是个初学者吧。
这几天给自己的任务就是搞定步进电机的单片机控制。以前曾看过有关步进电机原理和控制的资料,毕竟自己没有做过,对其具体原理还不是很清楚。
今天从淘宝网买了一个EPSON的UMX-1型步进电机,此步进电机为双极性四相,接线共有六根,外形如下图所示:拿到步进电机,根据以前看书对四相步进电机的了解,我对它进行了初步的测试,就是将5伏电源的正端接上最边上两根褐色的线,然后用5伏电源的地线分别和另外四根线(红、兰、白、橙)依次接触,发现每接触一下,步进电机便转动一个角度,来回五次,电机刚好转一圈,说明此步进电机的步进角度为360/(4*5)=18度。地线与四线接触的顺序相反,电机的转向也相反。
如果用单片机来控制此步进电机,则只需分别依次给四线一定时间的脉冲电流,电机便可连续转动起来。通过改变脉冲电流的时间间隔,就可以实现对转速的控制;通过改变给四线脉冲电流的顺序,则可实现对转向的控制。
所以,设计了如下电路图:C51程序代码为:代码一#include 89X51.h> static unsigned int count;static unsigned int endcount;void delay();void main(void) {count = 0;P1_0 = 0;P1_1 = 0;P1_2 = 0;P1_3 = 0;EA = 1; //允许CPU中断 TMOD = 0x11; //设定时器0和1为16位模式1 ET0 = 1; //定时器0中断允许 TH0 = 0xFC; TL0 = 0x18; //设定时每隔1ms中断一次 TR0 = 1; //开始计数startrun:P1_3 = 0;P1_0 = 1;delay();P1_0 = 0;P1_1 = 1;delay();P1_1 = 0;P1_2 = 1;delay();P1_2 = 0;P1_3 = 1;delay();goto startrun;} //定时器0中断处理 void timeint(void) interrupt 1 { TH0=0xFC; TL0=0x18; //设定时每隔1ms中断一次count++;}void delay(){endcount=2;count=0;do{}while(count
但是,在代码二中,步进电机的运转控制是在主函数中,如果程序还需执行其它任务,则有可能使步进电机的运转收到影响,另外还有其它方面的不便,总之不是很完美的控制。所以我又将代码再次改进:代码三#include 89X51.h> static unsigned int count; //计数static int step_index; //步进索引数,值为0-7static bit turn; //步进电机转动方向static bit stop_flag; //步进电机停止标志static int speedlevel; //步进电机转速参数,数值越大速度越慢,最小值为1,速度最快static int spcount; //步进电机转速参数计数void delay(unsigned int endcount); //延时函数,延时为endcount*0.5毫秒void gorun(); //步进电机控制步进函数void main(void) {count = 0;step_index = 0;spcount = 0;stop_flag = 0;P1_0 = 0;P1_1 = 0;P1_2 = 0;P1_3 = 0;EA = 1; //允许CPU中断 TMOD = 0x11; //设定时器0和1为16位模式1 ET0 = 1; //定时器0中断允许 TH0 = 0xFE;TL0 = 0x0C; //设定时每隔0.5ms中断一次TR0 = 1; //开始计数turn = 0;speedlevel = 2;delay(10000);speedlevel = 1;do{ 。
转载请注明出处众文网 » 毕业论文:基于stc89c52单片机的步进电机控制系统设计与实现(基于单片机步进电机控制系统设计)