步进电机之前用过一个小的SG90,今天来学习一下57步进电机。(57是一个型号类似还有42等)
学习资料【STM32驱动步进电机--IO口翻转方式】 https://www.bilibili.com/video/BV12T411b7PA/?share_source=copy_web&vd_source=046491acdcff4b39fed20406b36a93e2。视频讲的很清楚大家可以多看看。
入门到入魂:单片机如何利用TB6600高精度控制步进电机(42/57)_千歌叹尽执夏的博客-CSDN博客
这篇也很不错。
首先是要对硬件有一定的了解。接线的时候要注意将TB6600和57BYG250B的A+A-B+B-对应连接。这是一款两相的步进电机。A+A-是一相。B+B-是另一相。在电机外壳上标注了
黑:A+ 绿:A- 红:B+ 蓝:B-。
接线的时候就是 黑→A+ 绿→A- 红→B+ 蓝→B-。
注: 绿→A+ 黑→A- 蓝→B+ 红→B-。也可以。
VCC→9~40V 直流电 gnd→gnd
注:单片机和电源共地。
信号输入:
使能控制端PA5→EN- 方向控制端PA4→DIR- 脉冲PA3→PUL-.
采取共阳极连接。高电平接单片机3.3V。
TB6600的机身上号的表格指示细分表和电流表。下图内容有助于理解细分。
此次选择1600细分0.5A.
关于硬件的介绍到此为止,接下来讲一下如何驱动57步进电机。
基本原理就是通过发送脉冲来控制
建议脉冲的周期250us~100ms之间。脉冲的周期越小发送脉冲的时间越快。点击转动也越快。
占空比不影响。电机转动。
利用STM32F103C8T6发出一定数量的脉冲到TB6600控制器。控制器就可以控制电机转动一定的角度。这是基本思想。
产生脉冲有三种放大。
1、定时翻转gpio口的电平。建议脉冲的周期250us~100ms就是利用这种方法得到的。可以试一试有助于理解原理。
2、利用定时器定时中断产生脉冲。
3、利用定时器的pwm模式。发出脉冲。
这几种方法都有尝试但推荐第三种。实现的功能更为全面。可以控制点击转动的角度、转动方向、转动速度。
通过下面的函数实现不同转速转动不同角度。
源码
链接:https://pan.baidu.com/s/1_QGuaODi4j2Ml-kE3KREFg
提取码:3232
有疑问可以多看两遍上面的视频和另一位博主的博客。
多看看多思考能解决大多数问题。
也可以留言,私信看到会回复。
有时间会更新源代码的讲解。