基于STM32F103C8T6和L298N电机驱动模块调速实验NO.1
你们好啊,小伙伴们! 最近我有个困扰,想用STM32和L298N从新温习一下寻线小车车实验。 但是没想到12V电源带动小黄电机跑的实在是太快太快了(带吓唬~),快到寻线灯等都反应不过来就冲了赛道……我们得想办法把电机速度调下来才行! 功夫不负有心人。经过我半天的调试终于把他驯服了!(掌声!~) 方法:PWM控制+物理控制 这里肯定会有人问了:“阿婆~阿婆~你用的L298N不是用IN1、IN2(IN3、IN4相同)数字电平逻辑控制的吗?怎么输出PWM控制电机转速呢?”
实物图&引脚图
电机转动控制逻辑 注意事项:
接线 Tips:其实左右电机不用太认真的去接,因为可以写程序的时候反过来就行了,重接线多累啊。 谁说我要用IN口了?嗯?我要用EN1、EN2使能口控制!没想到吧!(这就是我的逃跑路线哒!)
如图中的两个跳线帽 A、B两个使能端口的四个小排针口(跳线帽拔下来之后)靠近板子外边的是PWM输入控制口,靠近里面的是5V供电口,平时接5V就是全力输出的意思(怪不得跑得飞快…)。 然后我们只需要拔下A、B两个跳线帽和STM32板子的有PWM波复用功能口连接(TIM1到TIM4都能用,用你喜欢的那两个),我说便给大家说一下:
中文参考手册里查阅 我用的是定时器TIM4的PB8、PB9(我的是两轮车所以用两个够了),使用的是CH3、CH4通道。我说这些是为了写程序的时候不范错,知道吗!(划重点!) Tips:要学会自己查STM32中文参考手册,才是一名合格的嵌入式玩家哦! 然后就是程序了:
所用到的文件和初始化函数
短小精悍得延时小函数
主函数Part1
主函数Part2
主函数Part3 我相信细心的小伙伴已经发现了。我的前进、左转、右转里用了物理开关机延时发和发送使能端口PWM控制法来减速,这样的减速效果非常好。 Tips:如果单一的使用一种方法会使速度不能降到能使用的速度因为会有死区(PWM占空比太小电机就不工作了)和程序运行减速(电机会一抖一抖的很沙雕)。
IN数字控制电机IO初始化
寻线小灯IO初始化
TIM4始终初始化Part1 注意:这里我留下了重映射函数但不使能,如果你用其他IO复用重映射功能的话就可以直接修改参数了,很方便。 还有就是这里不分频,频率可以根据需要自己修改太高太低都不好(高了L298N会发烫低了控制效果差)。
TIM4初始化Part2 还有就是OC通道设置和OC预装值的设置一定要有每个通道都设置到否者到时候自闭了就难过了(我就是受害人)。 这里的Value就是可以调节占空比的值我的测试结果是Value=100有0.3V左右小黄电机的阈值电压是1V(PWM输出电压低于1V电机就不转了)大概在Value=550左右是最低输出电压1.1V(我用电压表测的)最大Value=2399也就是5V啦(你自己算算看嘛,(550/2399)*5=1.146V和实际数值相同)。
巡线功能实现🚓 这篇文章要说的事差不多就说完了,但是我们前进的步伐是不会停止的。 ————沃·兹吉朔·德 细心、恒心、信心黎明就在眼前! 希望对你有所帮助!
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/58603.html