STM32萌新学习笔记-L298N电机控制 这次的笔记是利用L298N模块控制直流电机,通过PWM控制电机转速,内容比较简单。 关于L298N模块的说明,b站上有详细的视频说明,我看的是这个视频:BV1XtX。 此次程序涉及到通用定时器的PWM输出,在学习日记-DAY17有详细说明,这里我就直接拿来用了。 L298N外观图片:
产品参数:
使用说明:
注意,逻辑输入一定要与供电共地,否则即使给了高电平也不会转。控制电机转速可以用PWM输出控制使能端,IN1、IN2只控制转动方向,但也可以直接用PWM控制IN1或IN2实现转速和方向控制,我这里用的第二种。 电机实物图:
程序思路: 以左侧电机为例,IN1、IN2选择其中一个作为PWM输出,则另一端只需控制电平高低就可控制电机转向。比如以IN1为PWM输出,则IN2为1时,PWM的低电平期间正转,高电平期间制动;IN2为0时,PWM的高电平期间反转,低电平期间制动。二者的区别仅在于正转时,速度与PWM低电平的占空比成正比,反转时,速度与PWM高电平的占空比成正比,所以此控制方式在改变方向时,速度也会改变。 程序代码: 1.电机控制初始化函数
IN1、IN2、IN3、IN4对应PB7、PB8、PB9、PA4,以PB7、PB9作为PWM输出,上述的正转反转是我自己依照实际使用定的,不是按使用说明来的。定时器的详细说明参考日记-DAY17,此处只展示代码。 定时器初始化函数:
TIM4_CH2的PWM设置:
TIM4_CH4的配置是一样的,只是将OC2改为了OC4,Compare2改为了Compare4。 上述Init函数调用后的效果为:定时器向上计数,当计数值小于比较值时为高电平。 2.电机控制相关函数
3.主程序
该程序是将最大计数个数0x10000(最大计数值0xFFFF)分为了16份,每按一次按键速度就会改变,左右电机速度的增减相反,当一个电机速度达到最大时,另一个电机便会停止。 实际效果(动态图):
注:本次实验只是用来简单测试一下L298N控制电机的效果,仅供参考
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/62903.html