步进电机驱动详解

您所在的位置:网站首页 步进电机驱动器可以编程吗 步进电机驱动详解

步进电机驱动详解

2024-07-16 02:43| 来源: 网络整理| 查看: 265

使用l298n模块驱动步进电机 效果演示步进电机工作原理l298n模块工作原理编写程序下载以及接线

效果演示

最近在使用步进电机的时候,发现细分驱动器太大了,而且只是会使用细分驱动器的话并不能代表你会用步进电机了,于是就想找个小一点的驱动自己编写代码驱动步进电机,于是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度,根据这个就可以精确计算所需要的角度了,也可以进行死循环使得电机匀速运动。旋转完成之后记得失能电机,不然一直停着不转电能无法被正确释放会产生不好的后果。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3