|
之前想用单片机控制L298N控制小车走,弄了好久都没有弄成功,网上自己也不太找得到例程,或者说找到了也不太明白..可能自己太傻了..
就想着上传一下自己的程序给像之前的我一样的人..希望自己能写的清楚,让有需要的小白们明白。
L298N原理网上都有,直接网上搜一下就行。
STM32F407可以是开发板,也可以是mini板~
直接12V电池供电给L298N,12V接稳压模块稳到5V供电给单片机。
D0,D1,D2,D3(这是自己在程序里面的定义,实际上分别连接的是OUT1,OUT2,OUT3,OUT4)是可以控制马达从而控制轮子正反转。
控制两边轮子正反转,比如说D0=1,D1=0使得左边轮子正转,那么D0=0,D1=1使得左边轮子反转,如果同时为0或同时为1,轮子就不会动。这是根据大家接线方式来的,你可以左边轮子接上OUT1,OUT2或者接上OUT3,OUT4.
我就是给轮子正反转,然后用PWM输出占空比有一个电压,不同电压对应不同的速度,如果输出小了的话,轮子可能会发出那种卡住的声音然后动不了,大家可以往上调调,基本轮子就可以动了。单片机PWM输出分别连接L298N的ENA和ENB,STM32是B6,D13输出PWM占空比连接ENA,ENB,51单片机是自己定义两个管脚接出连接ENA,ENB。
接线时候一定要记得将单片机的GND和L298N的GND接一起,就是共地,不然可能会不转动。
我的想法就是单片机输出4个高低电平给IN1,IN2,IN3,IN4,然后OUT1,OUT2,OUT3,OUT4输出和前边一样高低电平控制两边轮子正反转,然后通过单片机两个管脚输出PWM的大小接到ENA,ENB控制速度,有正反转,有速度,就可以动起来了。
所有的接线就是电源+12V,GND, 单片机输入IN1,IN2,IN3,IN4, L298N输出OUT1,OUT2,OUT3,OUT4给轮子, 单片机机输出两路PWM给L298N的ENA,ENB(不懂PWM的话可以直接修改程序里面的speed1和speed2的大小就可以修改输出(电压大小)小车速度大小).
如果所有接线正确,轮子却没有反应,可以拿一步步检查。1,检查L298N与单片机是否共地 2,用万用表测量OUT1,OUT2两端(或者OUT3,OUT4两端,总之就是接同一个马达的两个端口)是否有电压,显示有电压的话,可以把PWM输出调高点,如果没有电压的话就去检查IN1,IN2之间是否有电压,没有的话就去检查用万用表测量ENA与GND之间是否有电压,一步步找原因。
大家接线完不知道轮子正反转,可以在main函数里面写D0=1,D1=0,D2=1,D3=0(我自己定义的,其实就是IN1,IN2,IN3,IN4),再给一个速度,看轮子的转向就行了~
第一次发帖,就是把自己的经验啥的写一写,并不是很专业,大佬就不用来看了,写给刚学的小白们看的,如果有问题的话欢迎大家指正啊~我们一起进步鸭
|
-
-
-
-
-
小车.7z
300.22 KB, 下载次数: 183, 下载积分: 黑币 -5
评分
-
查看全部评分
|