一、簡介
接觸STM32開發(fā)一段時間了,想用STM32做一個有意思的項目,經(jīng)歷了無數(shù)的調(diào)參調(diào)參再調(diào)參,終于讓它站穩(wěn)了,接一下就一步步的跟大家介紹一下,項目的整體實現(xiàn)過程—
二、項目介紹
STM32平衡小車是一種基于STM32芯片的智能小車,它可以通過自動控制來保持平衡,使其可以在不同的地形上穩(wěn)定行駛。其使用范圍非常廣泛。需要用到一些基本的硬件組件,例如電機、輪子、陀螺儀、加速度計、電池等。通過設(shè)計的電路板進行連接,組成一個完整的系統(tǒng)。
三、硬件設(shè)計
根據(jù)上述需求,我進行了電路圖設(shè)計
四、軟件設(shè)計
4.1電機驅(qū)動編寫
4.1.1電機引腳說明
編碼電機
引腳說明:
M1電機電源線(12V) |
GND編碼器地線 |
C1電機編碼器A相 |
C2電機編碼器B相 |
VCC編碼器電源3.3V |
M2電機電源線(12V) |
4.1.2電機驅(qū)動模塊說明
TB6612FNG電機驅(qū)動模塊
VCC:電源正極,一般接5V或3.3V電源。 |
GND:電源負極,接地。 |
AIN1:H橋A口輸入1,接控制信號。 |
AIN2:H橋A口輸入2,接控制信號。 |
PWMA:A口PWM輸入,控制A口輸出占空比。 |
STBY:H橋使能信號,高電平使能,低電平關(guān)閉。 |
AO1:H橋A口輸出1,接電機正極。 |
AO2:H橋A口輸出2,接電機負極。 |
BIN1:H橋B口輸入1,接控制信號。 |
BIN2:H橋B口輸入2,接控制信號。 |
PWMB:B口PWM輸入,控制B口輸出占空比。 |
BO1:H橋B口輸出1,接電機正極。 |
BO2:H橋B口輸出2,接電機負極。 |
根據(jù)原理圖將對應硬件連接,接下來我們開始測試
4.1.3電機驅(qū)動實戰(zhàn)
我們給PWMA、PWMB引腳輸出PWM信號,控制電機轉(zhuǎn)速,AO1、AO2、BO1、BO2設(shè)置位正轉(zhuǎn)
真值表
AO1 | AO2 | BO1 | BO2 |
1 | 0 | 1 | 0 |
以上主要通過引腳控制電機轉(zhuǎn)動方向,下面講一下STM32輸出PWM原理
4.1.3.1 PWM原理
STM32通過初始化PA8、PA11這兩個引腳,復用為TIM脈沖寬度調(diào)制模式1,通過修改TIM1通道1、4的寄存器存放數(shù)值,來控制PWM的輸出脈寬。
#define PWMA TIM1->CCR1 //PA8
#define PWMB TIM1->CCR4 //PA11
通過以上設(shè)置,實現(xiàn)對電機轉(zhuǎn)速、方向的控制
五、效果演示
審核編輯黃宇
-
STM32
+關(guān)注
關(guān)注
2264文章
10858瀏覽量
354395 -
平衡車
+關(guān)注
關(guān)注
7文章
79瀏覽量
26908
發(fā)布評論請先 登錄
相關(guān)推薦
評論