国学芯用 发表于 2023-4-28 09:48:59

STC32G系列-高级PWM-两相步进电机-细分驱动

本帖最后由 国学芯用 于 2023-4-28 09:50 编辑

两相步进电机,STC32G系列
===用高级PWM实现SPWM细分驱动
/*************      功能说明      **************
用B组高级PWM细分驱动2相4线小型步进电机, 支持1、2、4、8、16、32、64细分, 比如1.8度的电机4细分到0.45度.
本程序用于演示SPWM多细分直接驱动2相4线小型步进电机的原理, 电压驱动.
实际的专用驱动器是用电流来驱动的, 这样比较通用, 但MCU的PWM做成电流驱动则会很复杂.
电压驱动的不足是, 由于电机反电动势的影响, 转速越高, 电流越小, 力矩越小, 而慢速或静止时电流很大.
为了简单, 利于初学者, 本例使用线性加减速, 如要使用别的加减速算法, 用户自行设计.
使用外设:
Timer0: 工作于1ms中断, 提供1ms时隙标志和串口超时处理.
Timer1: 处理电机驱动.
Timer2: 串口1波特率.
串口1:命令控制, 串口设置115200,8,1,n.
PWM:    B组4路PWM5~PWM8分别从P2.0 P2.1 P2.2 P2.3输出驱动步进电机.

串口命令设置:
L1,500,1000   --> 马达1以500Hz正转1000个脉冲, 脉冲数为0则连续转动.
R1,500,1000   --> 马达1以500Hz反转1000个脉冲, 脉冲数为0则连续转动
s             --> 停止所有电机
使用42电机验证。
程序源码:https://www.stcaimcu.com/forum.php?mod=viewthread&tid=2004

sweet_136 发表于 2023-4-28 13:55:54

可以实现256细分控制吗?

小李非刀 发表于 2023-4-28 17:52:03

sweet_136 发表于 2023-4-28 13:55
可以实现256细分控制吗?
(引用自2楼)

可以,但是没什么意义,因为大部分的步进电机的机械精度都到不了那么高,64细分已经是0.02815度了。

akey3000 发表于 2023-4-28 18:08:59

科普,不错

jiezi 发表于 2023-4-29 10:07:38

有的用stm32的步进电机驱动器细分太到几万,是怎么做到的
页: [1]
查看完整版本: STC32G系列-高级PWM-两相步进电机-细分驱动