SimpleFOC之ESP32(八)—— ABZ编码器电机



SimpleFOC教程目录:

一、增量式编码器介绍

    ABZ或者ABI,叫法不同但都是指 增量式编码器; ABZ编码器最初是光电式的,近几年随着磁编码器的兴起,磁编码器上也增加了ABZ信号的输出; A、B两相相差90度,可通过比较A相在前还是B相在前,以判断编码器的正转与反转,通过零位脉冲,可获得编码器的零位参考位。 一般采用四倍频技术,比如500线的编码器,转一圈可以获得2000个脉冲信号,

二、ESP32drive控制霍尔电机

2.1、原理图

2.2、读编码器获取角度

2.2.1、硬件准备

序号 名称 数量 1 USB转串口 1 2 ESP32drive 1 3 带增量编码器电机 1 4 12V电源 1 5 杜邦线 若干

带编码器电机 购买链接: ESP32drive 购买链接:  

2.2.2、硬件连接

2.2.3、代码演示

    2.2.3.1、打开示例 2.2.3.2、修改代码

2.2.4、观察角度输出

    如果编码器的CPR设置正确,转动电机一圈,角度输出刚好是6.28 rad,  

2.3、控制电机

2.3.1、硬件连接

带编码器电机 购买链接: ESP32drive 购买链接:  

2.3.2、代码演示

    打开示例 修改代码

2.3.3、观察电机运行

    性能和SPI接口差不多, AS5047P和TLE5012B都经过了测试,TLE5012B的最大转速没有AS5047P的高,大概是因为TLE5012B的CPR比AS5047P大,导致进入中断的频率高,影响了单片机的处理速度。  

三、ESP32drive-D控制电机

3.1、原理图

3.2、硬件连接

序号 名称 数量 1 USB转串口 1 2 ESP32drive-D 1 3 带编码器电机 2 4 12V电源 1 5 杜邦线 若干

带编码器电机 购买链接: ESP32drive-D 购买链接:  

3.3、控制单个电机

    代码在上面的ESP32drive的基础上修改,只需改动驱动引脚配置,  

3.4、控制双电机

3.4.1、打开示例

3.4.2、修改代码

3.4.3、观察电机运行

3.4.4、双电机控制出现的问题

    电机初始化一切正常,发送指令,电机转动也正常,但会逐渐失控,表现为转速越来越快。

问题总结分析

经验分享 程序员 微信小程序 职场和发展