1.2.3.6.4.2 CODEDMOTOR(编码电机)
优质
小牛编辑
124浏览
2023-12-01
更新时间:2018-09-17 13:51:52
功能说明
编码电机驱动程序。编码电机自带高精度编码器,马力和性能上都比较优秀,我们会通过esp32来控制电机的正转和反转,注意,驱动电机需要加上电机驱动模块,单纯的依靠esp32的IO能力是无法进行驱动的。
硬件资源
1.ESP32 开发板
2.编码电机模块
3.电机驱动模块
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
}
应用示例
- 在嵌入式 JS 开发工作台上,创建测试工程并导入驱动模块 codemotor。
- 编写测试 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);
运行验证
更新代码后,能看到电机在正转和反转之间切换。