步进电机因其定位精度高、造价较低、控制简单而在生产生活中被广泛应用
闭环步进电机相较于开环步进电机具有一定的过载能力不会丢步,可以根据负载调节电流从而降低电机发热
由于芯片价格飞涨,闭环步进电机控制器造价水涨船高,本设计提出了一种以国产芯片ESP32为主控的闭环步进电机控制器方案
本设计以杨工的闭环步进电机驱动器为基础,硬件方面做了修改和重新设计,软件方面对代码进行了移植以及重构,并抽取出Grbl_ESP32的部分代码作为核心算法的运行框架
特性:
1、EN/DIR/STEP接口控制,兼容3D打印机主板
2、串口/蓝牙/Telnet在线调参
3、3.3A峰值电流
4、位置闭环/位置开环模式可切换
5、过热保护
6、电压监测
7、实时数据反馈
典型应用:
1、3D打印机、激光雕刻机、平面绘图仪
2、机器人
3、电动滑台
4、智能窗帘
5、电动转盘
图1 arduiino风格引脚图
项目为首次公开;
项目为原创;
项目未曾在其他比赛中获奖;
项目未曾在学校参加过答辩;
开源协议: CC-BY-NC-SA 3.0
引用:#第四届立创大赛#HyperStepper一体化低成本高速高精度全闭环步进电机 (开源协议:BSD)
引用:Grbl_Esp32(开源协议:GPL-3.0)
自我引用:【航顺训练营】闭环步进电机控制器
自我引用:ESP32闭环步进电机控制器
(1)驱动电路:
本设计以两片A4950芯片作为驱动芯片,该芯片为全桥式DMOS PWM电机驱动,并且具有电流限制功能,依据此功能可实现恒流控制
图2 A4950结构框图
通过调节Verf引脚电压即可改变恒输出电流的大小,Imax = Verf/(10*Rsense),本设计中,将两只A4950的Verf引脚分别连接至ESP32的DAC输出引脚,使用0.1Ω的电流采样电阻,故最大输出3.3A电流
图3 A4950电路图
(2)BUCK降压电路&LDO降压电路:
本设计中,控制系统电源由电机电源经BUCK电路降压至5V并通过LDO降压电路二次降压后得到
本设计采用的BUCK芯片型号为JW5026,其耐压值高达40V,最大输出1A电流,其需要的外围元件数量少、滤波感感量要求低,故非常节约PCB空间
图4 BUCK降压电路
本设计使用的LDO型号为其最大输出电流可达900mA,非常适合为ESP32供电
图5 LDO降压电路
(3)外部信号输入电路:
本设计将外部输入信号用光耦进行隔离,其中EN为低低速信号,故使用低速光耦,DIR/CLK信号为高速信号,故使用高速光耦
图6 外部输入信号电路
(4)MCU最小系统:
本设计使用ESP32-PICO-D4作为主控,其集成了晶振/SPI FLASH/RF滤波电路/退耦电容等,所需外围元器件非常少
本设计预留了一个GH1.25 6pin接口作为程序烧录接口以及串口通信接口
图7 MCU最小系统
(5)编码器电路:
本设计使用国产14bit高精度绝对值磁编码器MT6816,可以选择使用其SPI接口或ABI接口(暂未支持),其安装在PCB背面,通过安装在电机尾部的径向充磁磁铁获取电机转子角度
图8 编码器电路
(6)电机电源电压采样电路&驱动IC温度采样电路:
图9 电机电源电压采样电路&驱动IC温度采样电路
(7)电机电源滤波电路:
本设计在电机电源上使用了一枚SS54防止步进电机处于发电状态时产生的电能导致系统错误启动,并使用了一枚SMBJ30CA用于防止步进电机处于回馈制动状态或者发电状态时产生的电压烧毁A4950,还使用了大容量的MLCC进行行储能以将其其运行时电机电源的电压纹波
图10 电机电源滤波电路
代码:https://gitee.com/STM32G474RET6/xbdrive(尚不完善)
图11 代码截图
图12 系统框架
图13 BOM表截图(包含转接模块以及串口模块元件)
图14 背面图片
!注意:请使用浏览器自带下载,迅雷等下载软件可能无法下载到有效资源。
欢迎加入EEWorld参考设计群,也许能碰到搞同一个设计的小伙伴,群聊设计经验和难点。 入群方式:微信搜索“helloeeworld”或者扫描二维码,备注:参考设计,即可被拉入群。 另外,如您在下载此设计遇到问题,也可以微信添加“helloeeworld”及时沟通。
EEWorld Datasheet 技术支持