使用Arduino与A4988 驱动步进电机

 

 

初识Arduino,有什么错漏的地方请指正.

学会使用A4988驱动电机对于DIY3D打印机,雕刻机很有帮助。


实验目的:Arduino与A4988驱动42步进电机


材料如下:

Arduino uno *1
A4988            *1
42步进电机    *1
面包板            *1
9V外接电源    *1
导线               若干

step 1:接线

关于接线更详细的相关资料:http://fritzing.org/projects/a4988-single-stepper-test/

 

 

 

MS1 , MS2 , MS3 跳线说明:(例子里是低电平,悬空或接地线,使用全步进模式)

分别是全步进,1/2步进,1/4步进,1/8步进,1/16步进模式。

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

 

 

step 2:测试程序程序

 

网盘下载程序

 

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
}

 

ps后记学习:

 

*脚6(-en) 低电平为启动电机(enable),貌似也可以不接,试过一样能运行.但如果要控制电机的启动关闭还是要用上

*脚4(-dir) 用高低电平控制方向.

*脚5(-step) 用高低电平驱动电机转动.注意中间间隔等待的微秒值,如果太快会导致电机有声响不转动.

 

欢迎关注「凌顺实验室」公众号:

  • 29
    点赞
  • 188
    收藏
    觉得还不错? 一键收藏
  • 35
    评论
步进电机通常需要使用驱动器来控制。A4988是一种常用的步进电机驱动器,它可以通过Arduino来控制。以下是控制步进电机的一些基本步骤: 1. 连接电路:将A4988驱动器步进电机连接,然后将Arduino连接到驱动器。 2. 设置引脚:将Arduino的引脚设置为输出模式。 3. 设定速度和方向:使用Arduino的代码来确定步进电机的速度和方向。 以下是一个示例代码,可以控制步进电机向前旋转1000个步长,然后向后旋转1000个步长: ``` #include <Stepper.h> // 定义步进电机的引脚 #define motorSteps 200 // 步进电机的步数 #define motorPin1 8 // IN1 #define motorPin2 9 // IN2 #define motorPin3 10 // IN3 #define motorPin4 11 // IN4 // 初始化步进电机对象 Stepper myStepper(motorSteps, motorPin1, motorPin2, motorPin3, motorPin4); void setup() { // 设定步进电机转速为60转/分钟 myStepper.setSpeed(60); } void loop() { // 向前旋转1000个步长 myStepper.step(1000); delay(500); // 向后旋转1000个步长 myStepper.step(-1000); delay(500); } ``` 这个示例代码中,使用了Stepper库来控制步进电机。该库可以使步进电机以指定的速度和方向旋转指定的步数。在setup()函数中,设置了步进电机的转速为60转/分钟。在loop()函数中,首先向前旋转1000个步长,然后等待500毫秒;然后向后旋转1000个步长,再等待500毫秒。这个过程将一直重复,使步进电机不断地旋转。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值