步进电机,如何实现开关控制转速快慢,程序如何写?硬件怎么连接?
各位大牛,小弟想用单片机最小系统控制4个步进电机,然后有个开关能同时控制四个电机转速,具体的程序怎么写,硬件怎么连接?开关的话,用图中我找的这个行不行?求指教?...
各位大牛,小弟想用单片机最小系统控制4个步进电机,然后有个开关能同时控制四个电机转速,具体的程序怎么写,硬件怎么连接?开关的话,用图中我找的这个行不行?求指教?
展开
1个回答
展开全部
这个控制步进电机速度就是控制相序切换的时间就实现了。比如用P0和P1口控制四个电机,那么可以这样实现:
#include<reg51.h>
#define uchar unsigned char
uchar step[]={0x11,0x33,0x22,0x66,0x44,0xcc,0x88,0x99};
uchar spd=10,num=0;
sbit keyu=P3^0;
sbit keyd=P3^1;
void t0isr() interrupt 1
{
num++;
if(num>=spd)
{
num=0;
motor++;
motor%=8;
P0=step[motor];
P1=step[motor];
}
}
main()
{
TMOD=0x02;
TH0=6;
TL0=6;
ET0=1;
TR0=1;
EA=1;
while(1)
{
if(keyu==0)
{
while(keyu==0);
spd++;
if(spd>40)spd=40;
}
if(keyd==0)
{
while(keyd==0);
spd--;
if(spd<5)spd=5;
}
}
}
#include<reg51.h>
#define uchar unsigned char
uchar step[]={0x11,0x33,0x22,0x66,0x44,0xcc,0x88,0x99};
uchar spd=10,num=0;
sbit keyu=P3^0;
sbit keyd=P3^1;
void t0isr() interrupt 1
{
num++;
if(num>=spd)
{
num=0;
motor++;
motor%=8;
P0=step[motor];
P1=step[motor];
}
}
main()
{
TMOD=0x02;
TH0=6;
TL0=6;
ET0=1;
TR0=1;
EA=1;
while(1)
{
if(keyu==0)
{
while(keyu==0);
spd++;
if(spd>40)spd=40;
}
if(keyd==0)
{
while(keyd==0);
spd--;
if(spd<5)spd=5;
}
}
}
追问
您好,那我调速开关怎么样接呢?
追答
程序是按P3.0和P3.1两个IO口接的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询