Arduino驱动四相五线步进电机
(2013-10-11 21:19:28)
标签:
it |
分类: Arduino |
28BYJ48
四相五线步进电机,电压为DC5V—DC12V,这个电机通过减速齿轮1:64减速输出,实际步距角度是5.625度
八拍方式驱动:0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09
八拍方式驱动:0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09
int Pin0 = 10;
int Pin1 = 11;
int Pin2 = 12;
int Pin3 = 13;
int _step = 0;
boolean dir =
true
;
//正反转
int stepperSpeed = 5;
//电机转速,5ms一步
void setup()
{
pinMode(Pin0,
OUTPUT);
pinMode(Pin1,
OUTPUT);
pinMode(Pin2,
OUTPUT);
pinMode(Pin3,
OUTPUT);
}
void loop()
{
switch
(_step){
case
0:
digitalWrite(Pin0,
LOW);
digitalWrite(Pin1,
LOW);
digitalWrite(Pin2,
LOW);
digitalWrite(Pin3,
HIGH);
break
;
case
1:
digitalWrite(Pin0,
LOW);
digitalWrite(Pin1,
LOW);
digitalWrite(Pin2,
HIGH);
digitalWrite(Pin3,
HIGH);
break
;
case
2:
digitalWrite(Pin0,
LOW);
digitalWrite(Pin1,
LOW);
digitalWrite(Pin2,
HIGH);
digitalWrite(Pin3,
LOW);
break
;
case
3:
digitalWrite(Pin0,
LOW);
digitalWrite(Pin1,
HIGH);
digitalWrite(Pin2,
HIGH);
digitalWrite(Pin3,
LOW);
break
;
case
4:
digitalWrite(Pin0,
LOW);
digitalWrite(Pin1,
HIGH);
digitalWrite(Pin2,
LOW);
digitalWrite(Pin3,
LOW);
break
;
case
5:
digitalWrite(Pin0,
HIGH);
digitalWrite(Pin1,
HIGH);
digitalWrite(Pin2,
LOW);
digitalWrite(Pin3,
LOW);
break
;
case
6:
digitalWrite(Pin0,
HIGH);
digitalWrite(Pin1,
LOW);
digitalWrite(Pin2,
LOW);
digitalWrite(Pin3,
LOW);
break
;
case
7:
digitalWrite(Pin0,
HIGH);
digitalWrite(Pin1,
LOW);
digitalWrite(Pin2,
LOW);
digitalWrite(Pin3,
HIGH);
break
;
default
:
digitalWrite(Pin0,
LOW);
digitalWrite(Pin1,
LOW);
digitalWrite(Pin2,
LOW);
digitalWrite(Pin3,
LOW);
break
;
}
if
(dir){
_step++;
}
else
{
_step--;
}
if
(_step>7){
_step=0;
}
if
(_step<0){
_step=7;
}
delay(stepperSpeed);
}