選擇的是tcrt500l,五路整合在一起,整合度比較高,但是可能不如五個單獨的循跡模組好用
5、l298n電機驅動模組
四驅車為啥用l298n電機驅動模組?
可以把左邊的兩個電機併聯,用輸出a控制。把右邊的兩個電機併聯,用輸出b控制。
12v供電接電源正極,供電gnd接電源負極和核心板gnd,5v供電接核心板5v和循跡模組5v,然後循跡模組gnd接核心板gnd,所有裝置就都可以上電了。(最好設定幾個開關,安全且方便除錯)
另外,接線最好先試觸,避免短路。
通過輸出pwm控制電機轉速
pwm初始化(以a1為例)
void
tim2_ch2_pwm_init
(void
)
初始化完後,輸出pwm控制電機轉速,注意,tim_setcompare2(tim2,n);n越小占空比越大,點假轉速越快,一下**就是a1輸出pwm占空比更大,它所對應的電機轉速就越快。 具體的資料是多少,需要自己根據不同的場地去摸索,不停地除錯。
void
left()
gpiob初始化,同時將b4 b5 b6 b7 b8設定為上拉輸入
void
gpiob_init()
巨集定義,少打字,b4 b5 b6 b7 b8 分別對應l1 l2 m r2 r1
#define l1 gpio_readinputdatabit(gpiob,gpio_pin_4)
#define l2 gpio_readinputdatabit(gpiob,gpio_pin_5)
#define m gpio_readinputdatabit(gpiob,gpio_pin_6)
#define r2 gpio_readinputdatabit(gpiob,gpio_pin_7)
#define r1 gpio_readinputdatabit(gpiob,gpio_pin_8)
// l1 l2 m r2 r1
讀取函式
void
read_date
(void
)
用了乙個比較笨的但是很直接的方法,將所有的情況都羅列出來。
思路:如果l1檢測到,那必須bigright;如果r1檢測到,那必須bigleft;
那中間的那三位,還有8種,將這8種列舉就可。
int
main()
if(l1==
0&&l2==
1&&m==
1&&r2==
1&&r1==0)
if(l1==
0&&l2==
0&&m==
1&&r2==
0&&r1==0)
if(l1==
0&&l2==
1&&m==
0&&r2==
0&&r1==0)
if(l1==
0&&l2==
0&&m==
0&&r2==
1&&r1==0)
if(l1==
0&&l2==
1&&m==
1&&r2==
0&&r1==0)
if(l1==
0&&l2==
1&&m==
0&&r2==
1&&r1==0)
if(l1==
0&&l2==
0&&m==
1&&r2==
1&&r1==0)
if(r1==1)
if(l1==1)
}}
STM32循跡 藍芽小車
在做小車之前,首先應該明確需要的器件,其次劃分功能模組,乙個模組乙個模組的來,在完成乙個模組之後新增另乙個能保證最終小車的穩定功能實現。有兩種思路 一,以實現功能為主,不考慮後期要加什麼東西,實現以後再做優化。二,先將專案整體需要做的東西全部過一遍,再一步步做出成品。我是第一種,在搭建的過程中也遇到...
基於STM32的智慧型小車(一)
基於stm32的智慧型小車 在假期自學了stm32,一直想做乙個智慧型小車,剛好這次有時間就在家自己製作了這個基於stm32的智慧型小車,小車基本功能包括循跡 壁障及手機藍芽控制,本人是第一次製作小車,有不對的,望大牛指教。一 製作產品基本材料清單 1 stm32c8t6核心板 一塊 2 l298n...
stm32 藍芽 智慧型小車
電源問題已經解決,還是18650更給力,兩節就可以達到8v上下。原來是模仿網上下的模板,把模板燒進去發現並沒有成功,所以就把原來寫的 全部推翻,重新開始寫。其實寫乙個工程,最快的方法並不是一口氣把所有東西都給新增上,因為一旦出現錯誤,當然肯定會出現錯誤,根本不知道從 下手改bug,所以還不如乙個乙個...