用 Arduino 控制步进电机实验

1、实验原理

步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。本实验就是通过控制脉冲个数来控制角位移量,从而达到准确定位的目的。
所需元器件:步进电机、驱动板、电位器、面包板、跳线若干、Arduino控制板。

实验原理图如图所示:

减速步进电机直径:28mm电压:5V步进角度:5.625 x 1/64减速比:1/64;5线4相 可以用普通uln2003芯片驱动,也可以接成2相使用。
该步进电机空载耗电在50mA以下,带64倍减速器,输出力矩比较大,可以驱动重负载,极适合开发板使用。注意:此款步进电机带有64倍减速器,与不带减速器的步进电机相比,转速显得较慢,为方便观察,可在输出轴处粘上一片小纸板。

2、硬件电路接线

3、程序设计

/****************************************************
  步进电机实验程序
  步进电机随着电位器转动而摆动
  http://www.landzo.com/
  This example code is in the public domain.
****************************************************/

  //使用arduino IDE自带的Stepper.h库文件
  #include <Stepper.h>
   
  // 这里设置步进电机旋转一圈是多少步
  #define STEPS 100
   
  // attached to设置步进电机的步数和引脚
  Stepper stepper(STEPS, 8, 9, 10, 11);
   
  // 定义变量用来存储历史读数
  int previous = 0;
  
/****************************************************
            初始化部分_setup()函数
****************************************************/
  void setup()
  {
    // 设置电机每分钟的转速为90步
    stepper.setSpeed(90);
  }
/****************************************************
            执行部分_loop()函数
****************************************************/ 
  void loop()
  {
    // 获取读数使用0号模拟口输入
    int val = analogRead(0);
   
    // 移动步数为当前读数减去历史读数
    stepper.step(val - previous);
   
    // 保存历史读数
    previous = val;
  }

程序读入后,试着旋转电位器,看电机转动角度有什么变化,如果电机来回转动就说明实验成功了。

4、实验操作

1) 按照图4-18-4将电路连接到Arduino开发板上。
2) 插上编程线,把程序下载到Arduino控制板。步进电机控制板的输入分别是Arduino PIN8到11,电位计的输入是A0。
3) 观察运行情况。

5、实验结果

通过本实验,可以实现步进电机转动随着电位器的变化而变化。在做实验前要留意的就是你用的步进电机是四相还是二相的,注意接口的对应。本实验的关键还在于调节脉冲的变化控制电机的转动角度的变化。

坐沙发

发表评论