STC89C52RC通过TB6600步进驱动板控制步进电机的接线方法
PUL+,DIR+和ENA+连一起接到单片机VCC口,PUL-,DIR-和ENA-接到P10,P11和P12口,电源和步进电机接线同上;
PUL是脉冲,DIR是方向,ENA是使能,每个标签带 + 符号的是隔离端光耦的正极,带 - 符号的是负极。把这三个标签 带 - 号的都和单片机的地线连接,带 + 号的和单片机端口连接。
简单测试程序如下:
#include <reg52.h>
void main()
{
while(1)
{
P1=0x00
delay(1000)//delay函数略去
P1=0xff
delay(1000)
}
}
电机的形式很多,但其工作原理都基于电磁感应定律和电磁力定律。因此,其构造的一般原则是:用适当的导磁和导电材料构成互相进行电磁感应的磁路和电路,以产生电磁功率,达到能量转换的目的。 根据电动机按起动与运行方式不同,可分为电容起动式单相异步电动机、电容运转式单相异步电动机、电容起动运转式单相异步电动机和分相式单相异步电动机,三相电动机。根据电动机按转子的结构不同,可分为笼型感应电动机,你在用的就是这一种(旧标准称为鼠笼型异步电动机)和绕线转子感应电动机(旧标准称为绕线型异步电动机)。鼠笼就是一个闭合的线圈。
(1)当三相异步电机接入三相交流电源(各相差120度电角度)时,三相定子绕组流过三相对称电流产生的三相磁动势(定子旋转磁动势)并产生旋转磁场,该磁场以同步转速沿定子和转子内圆空间作顺时针方向旋转。
(2)该旋转磁场与转子导体有相对切割运动,根据电磁感应原理,转子导体(转子绕组是闭合通路)产生感应电动势并产生感应电流(感应电动势的方向用右手定则判定)。
(3)根据电磁力定律,在感应电动势的作用下,转子导体中将产生与感应电动势方向基本一致的感生电流。载流的转子导体在定子产生的磁场磁场中受到电磁力作用(力的方向用左手定则判定),电磁力对电机转子轴形成电磁转矩,驱动电机转子沿着旋转磁场方向旋转,当电动机轴上带机械负载时,便向外输出机械能。由于没有短路环部分的磁通比有短路环部分的磁通领先,电机转动方向与旋转磁场方向相同。
如果我的回答对你有帮助请帮我采纳!
实际运用的程序,图纸.
/*****************************************/
/* 广州一丁自动化设备有限公司010-28969088*/
/*****************************************/
#include<reg52.H> //加载头文件
#include <stdio.h>
sbit MC=P1^0//脉冲
sbit FX=P1^1//方向
sbit BL=P3^2//半流
sbit JD=P1^2//夹电池
sbit YD=P1^3//发验电信号
sbit YW=P2^0//原点
sbit YX=P2^1//运行
sbit ZL=P2^2//走轮信号
sbit JDW=P2^3//夹到位
sbit FDW=P2^4//放到位
void delay_1(unsigned int j0 ) //1毫秒延时程序
{
unsigned int j1
unsigned int j2
for(j1=0j1<4*j0j1++)
for(j2=0j2<50j2++)
}
void delay_01(unsigned int j0 ) //0.01毫秒延时程序.J0等于50时两细分为200转/分钟
{
unsigned int j1
for(j1=0j1<j0j1++)
}
void main(void)
{
unsigned int n,k
delay_1(120)//起机延时
BL=0//半流
k=3
for(YX==1)
BL=1//半流
FX=1//方向
delay_1(20)
for(YW==0)//原位
{
MC=0//脉冲
if(YX==1)
BL=0
else
BL=1
for(YX==1)
delay_01(k+50)
MC=1//脉冲
delay_01(k+50)
}
delay_1(10)
FX=0//方向
for(YW!=0)//原
{
MC=0
if(YX==1)
BL=0
else
BL=1
for(YX==1)
delay_01(k+50)
MC=1
delay_01(k+50)
}
FX=1
BL=0
while(1)
{
YD=1
JD=1
for(FDW!=0)
for(YX!=0)
// BL=1
for(FDW!=0)
BL=1
delay_1(1)
for(n=50n>0n--)
{
MC=0
delay_01(k+n)
MC=1
delay_01(k+n)
}
for(n=1890n>0n--)
{
MC=0
delay_01(k)
MC=1
delay_01(k)
}
for(n=0n<50n++)
{
MC=0
delay_01(k+n)
MC=1
delay_01(k+n)
}
for(YW==0)//首次对位
{
MC=0
if(YX==1)
BL=0
else
BL=1
for(YX==1)
delay_01(k+50)
MC=1
delay_01(k+50)
}
JD=0//夹电
delay_1(10)
FX=0
for(YW!=0)//回位
{
MC=0
if(YX==1)
BL=0
else
BL=1
for(YX==1)
delay_01(k+50)
MC=1
delay_01(k+50)
}
delay_1(5)
FX=1
for(YW==0)//再次对位
{
MC=0
if(YX==1)
BL=0
else
BL=1
for(YX==1)
delay_01(k+50)
MC=1
delay_01(k+50)
}
delay_1(5)
FX=0
for(YW!=0)//再次回位
{
MC=0
if(YX==1)
BL=0
else
BL=1
for(YX==1)
delay_01(k+50)
MC=1
delay_01(k+50)
}
FX=1
BL=0
for(JDW!=0)
YD=0
delay_1(10)
for(ZL==1)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)