實驗環境
Matlab版本: 2021b
操作系統 :Win10專業版
硬件平臺 :YF-STM32-ALPHA 1R4
實驗內容 :硬件在環修改參數控制舵機轉動
模型與原理圖
STM32 simulink驅動舵機效果如圖5.1所示,本次實驗用到的Simulink簡易模型如圖5.2所示,電路圖接法如圖5.3所示,YF-STM32-ALPHA開發板舵機接口位置如圖5.4所示,通過改變“Constant”的值實現舵機不同角度轉動,數值2.5~12.5對應0°~180°(或-90°~90°)。
圖5.1 硬件在環舵機轉動效果
圖5.2 PWM 驅動simulink模型
圖5.3 STM32舵機驅動電路圖
圖5.4 舵機接口位置
基礎模型介紹與分析
PWM簡介
PWM的全稱是脈沖寬度調制(Pulse-width modulation),是通過將有效的電信號分散成離散形式從而來降低電信號所傳遞的平均功率的一種方式;所以根據面積等效法則,可以通過對改變脈沖的時間寬度,來等效的獲得所需要合成的相應幅值和頻率的波形;
PWM實現不是單片機的專屬,使用信號發生器產生的鋸齒波結合LM393比較器,然后用一個可調電阻輸出的電壓作為參考電壓,可以得到一個脈沖寬度可以調節的電路,如圖5.5所示。
圖5.5 信號發生器與比較器組成PWM電路
但是實際使用過程中,讀者朋友不可能帶著信號發生器走,所以實際電路中一般使用555定時器來產生脈沖寬度可調電路,如圖5.6所示。
圖5.6 555定時器PWM可調電路
專用名詞解釋
頻率: 是指每秒鐘信號從高電平到低電平再回到高電平的次數,為一個PWM波周期的倒數。如圖5.7和圖5.8所示,頻率=1/(高電平時間+低電平時間)。
圖5.7 單個脈沖周期
圖5.8 1S內相同脈沖的個數代表頻率
占空比 :是指高電平持續時間占比一個周期持續的時間。如圖5.9所示,占空比=高電平時間/(高電平時間+低電平時間),可以通過控制占空比,來控制輸出的等效電壓。
圖5.9 同頻率下不同占空比波形等效電壓
SG90舵機外觀實物與引腳定義如圖5.10所示,其本質是一個脈寬控制的伺服電機,通過接收不同占空比脈沖從而實現不同角度轉動,其固有驅動頻率為50Hz(周期20ms),脈沖占空比與角度對應關系為5ms(2.5%)->-90°,1ms(5%)->-45°,1.5ms(7.5%)->0°,2ms(10%)->45°,2.5ms(12.5%)->90°,括號里面內容對應實際“Constant”變量值,百分百表示高電平占空比,對應的角度如圖5.11所示。
圖5.10 SG90舵機實物與引腳定義
圖5.11 SG90舵機脈沖寬度對應的角度
注 意 :實際使用中建議使用時電壓不低于5V,并確保電流是否可以滿足舵機驅動,≥500mA為宜,使用多個舵機同時工作時,確保足額的電流供給。
表5.1 SG90舵機參數表
產品型號 | 使用電壓 | 工作扭矩 | 反應轉速 | 使用溫度 | 轉動角度 |
---|---|---|---|---|---|
SG90 | 3~7.2V | 1.6kg/cm | 0.12-0.13秒/60° | -30℃~60℃ | 180° |
“PWM Output”STM32專用模塊與參數設置如圖5.12所示,“Pin”參數欄用于配置PWM引腳,示例中使用"PA_7"對應到STM32的PA7引腳,“Initial frequency”用于設置初始頻率,“Initial duty cycle”用于設置初始占空比。
圖5.12 “PWM Output”模塊
STM32F103RBT6在simulink模型中有多個引腳支持PWM脈沖輸出,可以采用圖5.13所示方式同時測試或使用多個PWM脈沖控制舵機或其他脈沖設備,表5.2為該芯片的PWM脈沖具體對應的引腳和通道,內容來參考自“Pinmap_NUCLEO_F103RB”圖,表中已標示的證明已經測試過,其他的由于本開發板限制,請讀者朋友自行測試。
圖5.13 同時多個PWM工作簡易模型
注 意:此表主要針對型號為STM32F103RBT6整理,其它芯片請參考此表自行測試或參考Pinmap圖
表5.2 PWM對照表(F103RBT6)
STM32引腳編號 | 通道 |
---|---|
PA1 | PWM2/2 |
PB0 | PWM3/3 |
PA15 | PWM2/1 |
PC9 | PWM3/4 |
PC8 | PWM3/3 |
PC6 | PWM3/1 |
PA11 | PWM1/4 |
PB11 | PWM2/4 |
PA6 | PWM3/1 |
PA7 | PWM3/2 |
PC7 | PWM3/1 |
PA9 | PWM1/2 |
PA8 | PWM1/1 |
PB10 | PWM2/3 |
PB4 | PWM3/1 |
PB5 | PWM3/2 |
PB3 | PWM2/2 |
PA10 | PWM1/3 |
PA2 | PWM2/3 |
PA3 | PWM2/4 |
PB1 | PWM3/4 |
PB15 | PWM1/3N |
PB14 | PWM1/2N |
PB13 | PWM1/1N |
圖5.14~圖5.16是作者輸入不同值通過示波器測量到的實際脈沖占空比,供讀者朋友參考。
圖5.14 50Hz-5%占空比PWM模型與示波器實際顯示波形
圖5.15 50Hz-10%占空比PWM模型與示波器實際顯示波形
圖5.16 50Hz-15%占空比模型與示波器實際顯示波形
總結
本節實驗通過一個簡單的PWM模型驅動舵機旋轉,并驗證多通道情況下PWM脈沖輸出控制的可行性,為讀者朋友下一步使用舵機驅動提供參考價值,大家可以思考下通過多個舵機的組合可以實現哪些好玩的東西?為使用舵機驅動的場合,其中好幾個制作純使用舵機完成,大家結合已有設備自行去實現下。
拓展延申
本節其實只使用到簡單的PWM脈寬調制方式,其實在生活中還有一種用的非常廣泛的脈沖電機也是使用PWM來控制的,那就是步進電機,只不過該電機接收的不是脈寬控制而是脈沖控制,即每接收一個脈沖,步進電機轉動固定的角度,圖5.21為工業常用步進電機參考測試電路,有條件的讀者朋友可以結合本節內容實現下如何控制步進電機轉動固定步數。另外讀者朋友還可以結合前面小節學到的A/D采集知識或I/O輸入知識制作一些好玩的東西,例如“追光向日葵”,“數字可調電源”等。
圖5.21 步進電機驅動測試電路
-
原理圖
+關注
關注
1300文章
6358瀏覽量
235165 -
STM32
+關注
關注
2272文章
10923瀏覽量
357571 -
Simulink
+關注
關注
22文章
536瀏覽量
62672 -
開發板
+關注
關注
25文章
5121瀏覽量
98195 -
舵機
+關注
關注
17文章
280瀏覽量
41193
發布評論請先 登錄
相關推薦
評論