树莓派入门(八)之树莓派与A4988 驱动42步进电机

  在树莓派入门(三)里面我介绍了如何驱动步进电机,当时驱动的步进电机是那种比较简单精度不是那么高的电机,今天我们驱动的是比较复杂的步进电机。当然,这里我还是以arduino为例,但是会给出树莓派的代码。

树莓派入门(八)之树莓派与A4988 驱动42步进电机_第1张图片

 

 ​这个画图软件叫(fritzing)只能进行绘图,不能进行仿真。

其中MS1 , MS2 , MS3 跳线说明:(例子里是低电平,悬空或接地线,使用全步进模式)分别是全步进,1/2步进,1/4步进,1/8步进,1/16步进模式。

步进电机走一步是1.8度,一圈就是200步。例如使用1/16步进,则需要走3200步才等于一圈。

上图中的那三根悬空的就是MS1,MS2,MS3。

树莓派入门(八)之树莓派与A4988 驱动42步进电机_第2张图片

下图是A4988的图,有的可能是绿色的,但是都无所谓。 

树莓派入门(八)之树莓派与A4988 驱动42步进电机_第3张图片

下面我给出arduino的代码,看起来还是挺简单的,感兴趣的同学可以再去网上查查更多的资料。

int x;
 
 
void setup()
{
  pinMode(6,OUTPUT); // Enable
  pinMode(5,OUTPUT); // Step
  pinMode(4,OUTPUT); // Dir
  digitalWrite(6,LOW); // Set Enable low
}
 
 
void loop()
{
  
  digitalWrite(4,HIGH); // Set Dir high
  
  for(x = 0; x < 200; x++) // Loop 200 times
  {
      digitalWrite(5,HIGH); // Output high
      delayMicroseconds(800); // Wait 1/2 a ms
      digitalWrite(5,LOW); // Output low
      delayMicroseconds(800); // Wait 1/2 a ms
    }
  delay(1000); // pause one second
  
  digitalWrite(4,LOW); // Set Dir low
  
  for(x = 0; x < 200; x++) // Loop 2000 times
  {
      digitalWrite(5,HIGH); // Output high
      delayMicroseconds(800); // Wait 1/2 a ms
      digitalWrite(5,LOW); // Output low
      delayMicroseconds(800); // Wait 1/2 a ms
    }
    delay(1000); // pause one second
}

 接下来给出树莓派的代码

#include 
#include 
​
void init();
void loop();
int main()
{
  init();
  loop();
  
  return 0;
}
 
void init()
{
  wiringPiSetup();
  pinMode(6,OUTPUT); // Enable
  pinMode(5,OUTPUT); // Step
  pinMode(4,OUTPUT); // Dir
  digitalWrite(6,LOW); // Set Enable low
}
 
 
void loop()
{
  
  digitalWrite(4,HIGH); // Set Dir high
  
  for(x = 0; x < 200; x++) // Loop 200 times
  {
      digitalWrite(5,HIGH); // Output high
      delayMicroseconds(800); // Wait 1/2 a ms
      digitalWrite(5,LOW); // Output low
      delayMicroseconds(800); // Wait 1/2 a ms
   }
  delay(1000); // pause one second
  
  digitalWrite(4,LOW); // Set Dir low
  
  for(x = 0; x < 200; x++) // Loop 2000 times
  {
      digitalWrite(5,HIGH); // Output high
      delayMicroseconds(800); // Wait 1/2 a ms
      digitalWrite(5,LOW); // Output low
      delayMicroseconds(800); // Wait 1/2 a ms
   }
    delay(1000); // pause one second
}

 

树莓派的代码和arduino的代码很像吧,确实如此,值得注意的就是,树莓派的那几个引脚是我随便写的,你们实验的时候要注意看看你们用的是几号引脚,不要一股脑跟着我写了。

 

欢迎关注我们的公众号,本人知识能力有限,如果文章中有错误的地方欢迎向我反馈或者留言,十分感谢!

 

树莓派入门(八)之树莓派与A4988 驱动42步进电机_第4张图片

 

你可能感兴趣的:(树莓派)