1.2.3.6.4.5 STEPMOTOR(步进电机)

优质
小牛编辑
130浏览
2023-12-01

更新时间:2018-09-17 13:52:29

功能说明

步进电机驱动程序。步进电机是将电脉冲信号转变成角位移或线位移,在该实例中,我们会驱动一个5线4相的步进电机,驱动新派你用的是 ULN2003。

硬件资源

1.ESP32 开发板
2.步进电机模块
3.ULN2003 驱动模块

1.png | center | 599x312

3.接线

  • ULN2003 驱动模块 IN1引脚接 ESP32 16 引脚

  • ULN2003 驱动模块 IN2引脚接 ESP32 17 引脚

  • ULN2003 驱动模块 IN3引脚接 ESP32 18 引脚

  • ULN2003 驱动模块 IN4引脚接 ESP32 19 引脚

  • ULN2003 驱动模块 VCC引脚接 ESP32 5V 引脚

  • ULN2003 驱动模块 GND引脚接 ESP32 GND 引脚

软件设计

在电机的控制上,我们使用AB->BC->CD->DA来控制正转,用DA->CD->BC->AB来控制反转。

驱动配置

开发板板级管脚配置(board.json) 示范:</span>

  "stepmotor.d":{
    "type":"GPIO",
    "port":16,
    "dir":0,
    "pull":0
  },
  "stepmotor.c":{
    "type":"GPIO",
    "port":17,
    "dir":0,
    "pull":0
  },
  "stepmotor.b":{
    "type":"GPIO",
    "port":18,
    "dir":0,
    "pull":0
  },
  "stepmotor.a":{
    "type":"GPIO",
    "port":19,
    "dir":0,
    "pull":0
  }

应用示例

  1. 在嵌入式 JS 开发工作台上,创建测试工程并导入驱动模块 stepmotor。
  2. 编写测试 index.js 文件。
var stepmotor = require('stepmotor');
var handle = new stepmotor('stepmotor.a','stepmotor.b','stepmotor.c','stepmotor.d');
var index = 0;
setInterval(function(){
  handle.reversRun(index);
    index = index + 1;
    if(4 == index){
        index = 0;    
    }
}, 1);

运行验证

更新代码后,能看到电机在反转。