Arduino 5V步进电机极慢地运转

时间:2015-10-27 01:57:50

标签: arduino arduino-uno motordriver

我有一个步进电机5V 4相5线和一个驱动板。

不幸的是,我没有原理图,也无法在互联网上的任何地方找到驱动板。无论如何,我连接了一切,因为它应该是和代码打孔(见下文),它工作正常,但它旋转速度约为20转,速度非常慢。

我不能再减少delayMicroseconds()的时间了,因为如果我这样做,电机会停止旋转,并开始大声振动。请帮忙,我被困住了:

  

(端口8连接到驱动器上的IN1,端口9连接到IN2,端口10连接到   在IN3中,端口11在IN4中)

int Pin0 = 8;
int Pin1 = 9;
int Pin2 = 10;
int Pin3 = 11;
int _step = 0;
boolean dir = true;// gre
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;
}
   delayMicroseconds(800);
}

0 个答案:

没有答案