1.2.3.6.4.2 CODEDMOTOR(编码电机)

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

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

功能说明

编码电机驱动程序。编码电机自带高精度编码器,马力和性能上都比较优秀,我们会通过esp32来控制电机的正转和反转,注意,驱动电机需要加上电机驱动模块,单纯的依靠esp32的IO能力是无法进行驱动的。

硬件资源

1.ESP32 开发板
2.编码电机模块
3.电机驱动模块

6.png | center | 747x274

3.接线

  • 电机驱动模块 GND 引脚接 ESP32 GND 引脚;

  • 电机驱动模块 5V引脚接 ESP32 5V 引脚;

  • 电机驱动模块 AIN0引脚接 ESP32 0 引脚;

  • 电机驱动模块 AIN1引脚接 ESP32 4 引脚;

  • 电机驱动模块 PWMA引脚接 ESP32 17 引脚;

  • 电机模块 M-引脚接电机驱动模块的 AIN0 引脚;

  • 电机模块 M+引脚接电机驱动模块的 AIN1 引脚;

软件设计

实际上,我们是通过控制电机驱动模块来控制电机的正转和反转,加速和减速的,AIN0 和 AIN1 是用来控制正转和反转,PWM 是用来控制加速和减速。

驱动配置

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

 "codedmotor.ain0":{
    "type":"GPIO",
    "port":0,
    "dir":0,
    "pull":1
  },
  "codedmotor.ain1":{
    "type":"GPIO",
    "port":4,
    "dir":0,
    "pull":1
  },
  "codedmotor.pwma":{
    "type":"PWM",
    "port":17,
    "freq":1000,
    "duty":50
  }

应用示例

  1. 在嵌入式 JS 开发工作台上,创建测试工程并导入驱动模块 codemotor。
  2. 编写测试 index.js 文件。
var codedmotor = require('codemotor');
var handle = new codedmotor('codedmotor.ain0','codedmotor.ain1','codedmotor.pwma');
var duty_val = 0;
var cw_val = 0;
setInterval(function(){
    handle.set(cw_val,duty_val);
    duty_val = duty_val + 10;
    if(duty_val >= 100){
        duty_val = 0;
        cw_val = 1 - cw_val;
    }
    console.log('duty_val:'+duty_val);
}, 1000);

运行验证

更新代码后,能看到电机在正转和反转之间切换。