求步进电机接线方法与51单片机程序
电机型号:42BYGH4417两相混合式步进电机马达2相4线1.7A电机参数:相数:2相步距角:1.8°相电流:1.7A相电阻:2Ω相电感:3mH静力矩:3.4kg.cm...
电机型号: 42BYGH4417两相混合式步进电机 马达 2相4线 1.7A
电机参数:
相数: 2相
步距角:1.8°
相电流:1.7A
相电阻:2Ω
相电感:3mH
静力矩:3.4kg.cm
机身长:40mm
重 量:0.24kg
问题:
1. 电机线怎么接?
2. VCC 电压是多少?
3. C语言的程序, 51单片机控制(最好有注解),
- 程序要求:按下KEY1 正转,按下KEY2 反转,按下KEY3 停止。
谢谢
电机驱动电路: 展开
电机参数:
相数: 2相
步距角:1.8°
相电流:1.7A
相电阻:2Ω
相电感:3mH
静力矩:3.4kg.cm
机身长:40mm
重 量:0.24kg
问题:
1. 电机线怎么接?
2. VCC 电压是多少?
3. C语言的程序, 51单片机控制(最好有注解),
- 程序要求:按下KEY1 正转,按下KEY2 反转,按下KEY3 停止。
谢谢
电机驱动电路: 展开
1个回答
展开全部
接线不对吧,控制一个电机就需要四根控制线也就是说outa,outb,outc,outd只能控制一个电机,不可能控制两个电机。
假设用P0.0~P0.3控制步进电机
#include<reg51.h>
#define uchar unsigned char
uchar step[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
void delay(uchar a)
{
uchar i,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
uchar keyscan(void)
{
if(key1==0)
{
delay(10);
if(key1==0){while(key1==0);return(1);}
}
if(key2==0)
{
delay(10);
if(key2==0){while(key2==0);return(2);}
}
if(key3==0)
{
delay(10);
if(key3==0){while(key3==0);return(3);}
}
return(0);
}
main()
{
uchar key,num=0;
while(1)
{
key=scankey();
switch(key)
{
case 0:break;
case 1:P0=step[num];num++;num%=8;break;
case 2:P0=step[7-num];num++;num%=8;break;
case 3:P0=step[0];break;
}
}
}
假设用P0.0~P0.3控制步进电机
#include<reg51.h>
#define uchar unsigned char
uchar step[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
void delay(uchar a)
{
uchar i,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
uchar keyscan(void)
{
if(key1==0)
{
delay(10);
if(key1==0){while(key1==0);return(1);}
}
if(key2==0)
{
delay(10);
if(key2==0){while(key2==0);return(2);}
}
if(key3==0)
{
delay(10);
if(key3==0){while(key3==0);return(3);}
}
return(0);
}
main()
{
uchar key,num=0;
while(1)
{
key=scankey();
switch(key)
{
case 0:break;
case 1:P0=step[num];num++;num%=8;break;
case 2:P0=step[7-num];num++;num%=8;break;
case 3:P0=step[0];break;
}
}
}
追问
你好,就是控制一个电机,问一下
1. 电机线怎么接?
2. VCC 电压用多少伏的?
谢谢
追答
电机一般是24V,线序一般是A,/A,B,/B
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询