步进电机驱动详解

效果演示

最近在使用步进电机的时候,发现细分驱动器太大了,而且只是会使用细分驱动器的话并不能代表你会用步进电机了,于是就想找个小一点的驱动自己编写代码驱动步进电机,于是l298n模块就符合我的要求了,它不仅小而且还带有两路大功率电机的输出,把他接到步进电机的四相刚刚好!

按照惯例,先上效果图
在这里插入图片描述
可以看出,我能够精确控制步进电机旋转360度以及稳定速度旋转。下面我来给出教程啦

步进电机工作原理

不知道工作原理的话是写不出驱动程序的,在这里我简单说说步进电机通过l298n的工作原理
在这里插入图片描述
如图所示分别代表步进电机的四根线A+ A- B+ B- 。初中物理应该学过,通电导线会产生磁场,所以我们只要改变图中所示电流方向就可以得到不同方向的磁场,图示线圈即为步进电机的定子。
在这里插入图片描述
接下来就是图示所示的运行了,因为我们改变了电流方向,即不断改变定子的磁场,根据异极相吸的道理,转子就会跟随着变化的磁场而转动,这就是步进电机旋转的原理。然后我们怎么控制他的角度呢?
在这里插入图片描述
如图所示,我们只要控制好A+ A- B+ B-的高低电平就可以控制步进电机旋转特定的角并停下,要是无限循环就会一直匀速转动啦。对应的真值表如下
在这里插入图片描述
在这里肯定有很多小伙伴有疑问了,你这里不是8拍转一圈吗?那你的步进值不是360/8=45度吗?为什么说电机的步进值是1.8度那么小呢?
这里我就要科普一下了,上面是步进电机的实现原理,现实的步进电机是比较复杂的,因为转子的周围还有很多小齿,比如1.8步进值的电机的话转子齿为50,所以公式是360/50/8=0.9为半拍步进值。360/50/4=1.8才是步进值

l298n模块工作原理

我们知道,单片机的io口虽然可以输出pwm波,但是他不能带动大功率的东西比如电机,而且电平也只有3.3v。于是乎我们就需要一个功率放大的模块比如l298n。它能够通过单片机的控制而产生方向与大小可变的电流电压输出,可以给步进电机的四相产生相应的脉冲。
在这里插入图片描述
在这里插入图片描述
IN1和IN2分别接入单片机的两个pwm输出脚。通过占空比来控制输出的电压大小,比如说l298n接入12v电源,我IN1输入50%占空比的pwm波,IN0输入电平为0,则输出口A+ A-产生正6v的电压。因为这个模块有两路,于是我们便可以输出步进电机所需的4种电平来驱动,这就是驱动原理

编写程序下载以及接线

在这里插入图片描述
我选用了TIM1的1.2通道和TIM的1.2通道分别接l298n的pwm1.pwm2.pwm3.pwm4
我们就初始化相应的引脚和时钟,因为是占空比控制所以频率无所谓,这里我选用了7.5khz,开发板时钟源是240M
在这里插入图片描述
不会初始化定时器使用io口输出电平的可以去网上搜索学习下

接下来就是重要部分的模拟步进电机的8拍运行了
我们确定好一个占空比之后,引脚输出pwm波视为逻辑1,不输出pwm波视为逻辑0。于是我们就可以这样实现步进电机的逻辑输入了
在这里插入图片描述
在这里插入图片描述
这里的节拍输入间隔我选择了1000us,因为经过实测这样比较平滑,不会出现剧烈抖动或者失步。

然后就是主函数了。我们怎样实现某个角度的控制呢?
在这里插入图片描述
因为输入一个半拍脉冲就会旋转0.9度,根据这个就可以精确计算所需要的角度了,也可以进行死循环使得电机匀速运动。旋转完成之后记得失能电机,不然一直停着不转电能无法被正确释放会产生不好的后果。

  • 63
    点赞
  • 322
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
步进电机是一种将电脉冲信号转换为角位移或线位移的开环控制元件。它由前后端盖、轴承、中心轴、转子铁芯、定子铁芯、定子组件、波纹垫圈、螺钉等部分构成。步进电机利用电磁学原理,将电能转换为机械能,通过控制施加在电机线圈上的电脉冲顺序、频率和数量,实现对步进电机的转向、速度和旋转角度的控制。\[1\] 步进电机的定子绕组每改变一次通电状态,转子转过的角度称为基本步距角。常见的步进电机有基本步距角为1.8°的两相步进电机和基本步距角为1.2°的三相步进电机,还有其他基本步距角的步进电机,如0.72°、0.9°、1.5°、3.6°、3.75°等。\[3\] 步进电机的工作原理是通过不断改变电机线圈的通电状态,使得电机转子按照一定的步距角进行转动。这种转动类似于时钟内的秒针,每次接收到一个电脉冲信号,电机就会转动一个步距角。步进电机可以实现准确的位置控制,而且在不借助闭环反馈控制系统的情况下,使用步进电机与其配套的驱动器可以实现精确的位置和速度控制。\[2\] 总结起来,步进电机是一种将电脉冲信号转换为角位移或线位移的开环控制元件,通过改变电机线圈的通电状态来控制电机的转动,实现精确的位置和速度控制。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [步进电机结构及原理](https://blog.csdn.net/helaisun/article/details/127140764)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值