|
之前想用單片機(jī)控制L298N控制小車走,弄了好久都沒(méi)有弄成功,網(wǎng)上自己也不太找得到例程,或者說(shuō)找到了也不太明白..可能自己太傻了..
就想著上傳一下自己的程序給像之前的我一樣的人..希望自己能寫的清楚,讓有需要的小白們明白。
L298N原理網(wǎng)上都有,直接網(wǎng)上搜一下就行。
STM32F407可以是開(kāi)發(fā)板,也可以是mini板~
直接12V電池供電給L298N,12V接穩(wěn)壓模塊穩(wěn)到5V供電給單片機(jī)。
D0,D1,D2,D3(這是自己在程序里面的定義,實(shí)際上分別連接的是OUT1,OUT2,OUT3,OUT4)是可以控制馬達(dá)從而控制輪子正反轉(zhuǎn)。
控制兩邊輪子正反轉(zhuǎn),比如說(shuō)D0=1,D1=0使得左邊輪子正轉(zhuǎn),那么D0=0,D1=1使得左邊輪子反轉(zhuǎn),如果同時(shí)為0或同時(shí)為1,輪子就不會(huì)動(dòng)。這是根據(jù)大家接線方式來(lái)的,你可以左邊輪子接上OUT1,OUT2或者接上OUT3,OUT4.
我就是給輪子正反轉(zhuǎn),然后用PWM輸出占空比有一個(gè)電壓,不同電壓對(duì)應(yīng)不同的速度,如果輸出小了的話,輪子可能會(huì)發(fā)出那種卡住的聲音然后動(dòng)不了,大家可以往上調(diào)調(diào),基本輪子就可以動(dòng)了。單片機(jī)PWM輸出分別連接L298N的ENA和ENB,STM32是B6,D13輸出PWM占空比連接ENA,ENB,51單片機(jī)是自己定義兩個(gè)管腳接出連接ENA,ENB。
接線時(shí)候一定要記得將單片機(jī)的GND和L298N的GND接一起,就是共地,不然可能會(huì)不轉(zhuǎn)動(dòng)。
我的想法就是單片機(jī)輸出4個(gè)高低電平給IN1,IN2,IN3,IN4,然后OUT1,OUT2,OUT3,OUT4輸出和前邊一樣高低電平控制兩邊輪子正反轉(zhuǎn),然后通過(guò)單片機(jī)兩個(gè)管腳輸出PWM的大小接到ENA,ENB控制速度,有正反轉(zhuǎn),有速度,就可以動(dòng)起來(lái)了。
所有的接線就是電源+12V,GND, 單片機(jī)輸入IN1,IN2,IN3,IN4, L298N輸出OUT1,OUT2,OUT3,OUT4給輪子, 單片機(jī)機(jī)輸出兩路PWM給L298N的ENA,ENB(不懂PWM的話可以直接修改程序里面的speed1和speed2的大小就可以修改輸出(電壓大小)小車速度大小).
如果所有接線正確,輪子卻沒(méi)有反應(yīng),可以拿一步步檢查。1,檢查L(zhǎng)298N與單片機(jī)是否共地 2,用萬(wàn)用表測(cè)量OUT1,OUT2兩端(或者OUT3,OUT4兩端,總之就是接同一個(gè)馬達(dá)的兩個(gè)端口)是否有電壓,顯示有電壓的話,可以把PWM輸出調(diào)高點(diǎn),如果沒(méi)有電壓的話就去檢查IN1,IN2之間是否有電壓,沒(méi)有的話就去檢查用萬(wàn)用表測(cè)量ENA與GND之間是否有電壓,一步步找原因。
大家接線完不知道輪子正反轉(zhuǎn),可以在main函數(shù)里面寫D0=1,D1=0,D2=1,D3=0(我自己定義的,其實(shí)就是IN1,IN2,IN3,IN4),再給一個(gè)速度,看輪子的轉(zhuǎn)向就行了~
第一次發(fā)帖,就是把自己的經(jīng)驗(yàn)啥的寫一寫,并不是很專業(yè),大佬就不用來(lái)看了,寫給剛學(xué)的小白們看的,如果有問(wèn)題的話歡迎大家指正啊~我們一起進(jìn)步鴨
|
-
IMG_2065.JPG
(186.75 KB, 下載次數(shù): 218)
下載附件
2019-12-8 15:21 上傳
-
IMG_2067.JPG
(1.37 MB, 下載次數(shù): 207)
下載附件
2019-12-8 16:00 上傳
-
IMG_2070.JPG
(591.07 KB, 下載次數(shù): 222)
下載附件
2019-12-8 16:00 上傳
-
-
小車.7z
2019-12-9 01:26 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
300.22 KB, 下載次數(shù): 185, 下載積分: 黑幣 -5
評(píng)分
-
查看全部評(píng)分
|