STM32控制舵机转动_从0到1
清單
MG90S舵機
如圖所示,舵機有三根線,紅色接5V正極,黑色接地;黃色為信號線,接收PWM信號
實物圖
輸出PWM控制舵機
STM32控制舵機,總的來說是向舵機信號線發送周期為20ms的PWM(Pulse Width Modulation 脈沖寬度調制)信號來控制舵機轉角,PWM脈沖的占空比決定了舵機的轉角位置,對應關系如下圖;
STM32靠定時器TIM實現PWM信號的輸出,STM32有多個定時器,分為通用定時器和高級定時器,每個通用定時器都可以輸出4路PWM,本文采用TM2_CH4,及定時器2的第4路PWM;對應STM32F103C8T6上的PB11引腳;
創建工程輸出PWM
本文使用STM32CubeMX創建工程,更加簡單高效,即便對單片機不熟悉也可操作成功;
一、打開STM32CubeMX,新建一個工程,搜索并選擇STM32F103C8,然后start project;
二、進行基本設置,配置RCC、SYS、HCLK
三、設置定時器
設置定時器參數
控制舵機我們需要設置PWM輸出一個周期時間為20ms的信號,定時器時鐘為72Mhz
四、接下來設置輸出格式
至此STM32CubeMX已設置完成,接下來GENERATE CODE,并打開文件;
在main函數中啟動定時器,并輸出一定的脈沖的PWM信號即可驅動舵機;
五、修改代碼
在main.c文件相應位置處添加如下代碼
添加完以上代碼之后,編譯,然后通過JLink將程序LOAD到STM32F103C8T6,將舵機信號線連接PB11(TIM2_CHANNEL4)口,并接上電源,舵機即可轉動到指定角度;由以上定時器設定可知,compareValue值50、150、250 對應 0.5ms、1.5ms、2.5ms 對應 0°、90°、180°;若想讓舵機連續轉動,在50~250內循環改變compareValue值即可;
六、接線
開始時用單片機的5V輸出給舵機供電,舵機噠噠噠響,但是不轉,懷疑是供電不給力,單獨供電后驅動成功;
調試
實操中可能會出現各種各樣的問題,以下有幾種調試方法
一、舵機測試
調試模塊一端接電,一段接舵機,手動模式下,舵機會跟著旋鈕同步旋轉,可以用來測試舵機是否健康;
二、串口調試助手
可下載串口調試助手,用ttl轉USB模塊連接電腦,在特定位置進行打印輸出,檢查程序是否按預設運行
總結
以上是生活随笔為你收集整理的STM32控制舵机转动_从0到1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于仙童八叛徒(转)
- 下一篇: mybatis框架实现一对多、多对多关系