當前位置:首頁 » 自動清洗 » 怎樣讓舵機自動擺
擴展閱讀
怎樣快速看到視頻的時長 2025-05-23 00:17:48
怎樣快速結識高端人脈 2025-05-23 00:17:44

怎樣讓舵機自動擺

發布時間: 2022-12-14 22:27:07

A. 舵機是如何實現隨動控制的

隨動舵機是駕駛台左舵,舵就一直向左知道駕駛台隨舵,自動跟隨駕駛台的信號,自動舵機是舵機根據自動導航系統自動做出偏轉動作。這2種在中大型船舶都裝備的,在駕駛台可以轉換的。隨動舵機是要手動操作,自動舵機一般是在海洋上自動航行用的。這在《船舶輔機》里應該有相關說明。

B. 求舵機自動正反轉的c程序

後面少個延時吧,看程序 左---延時----右-----左------左---延時----右-----左---延時----右----- 好像是差個延時

C. 如何控制舵機啊

船上的舵機有多種控制方法「
小船直接由舵手轉動舵輪帶動鏈輪通過鏈條來操縱舵機。
較大的船舶就有電氣或液壓操舵儀:1)手動操舵---手動接通開關,使舵轉動,舵的轉動角度由舵角指示儀反饋到操舵手面前,當舵轉到需要的角度時,操舵手斷開電源,舵停止;
2)隨動舵---操舵手將舵輪轉動一個角度,舵就在隨動系統的控制下轉到所需要的角度才停下來;
3)自動舵---舵自動轉動,使船舶在預定的方向直線前進,不管風浪和潮流;

D. 怎樣才能控制舵機旋轉

控制舵機旋轉方法:
1、控制信號(如圖H)是一種脈寬調制(PWM)信號,凡是微控制器能輕松的產生這種信號。在此文中,我用的是常用的Arino開發環境下的微控制器。
2、 脈沖的高電平持續1到2毫秒(ms),也就是1000到2000微秒(µs)。在1000µs時,舵機左滿舵。在2000µs時,右滿舵。不過你可以通過調整脈寬來實現更大或者更小范圍內的運動。
3、控制脈沖的低電平持續20毫秒。每經過20毫秒(50次每秒),就要再次跳變為高電平,否則舵機就可能罷工,難以保持穩定。不過你要是想讓它一瘸一拐的跳舞,倒可以採取這種方法。

E. 怎麼讓舵機定時轉

清單
STM32F103C8T6 1個,Jlink下載線 1根
MG90S舵機 1個
12V電源 1個,12V轉5V降壓模塊(給舵機供電) 1個
杜邦線數根
MG90S舵機
如圖所示,舵機有三根線,紅色接5V正極,黑色接地;黃色為信號線,接收PWM信號

實物圖

輸出PWM控制舵機
STM32控制舵機,總的來說是向舵機信號線發送周期為20ms的PWM(Pulse Width Molation 脈沖寬度調制)信號來控制舵機轉角,PWM脈沖的占空比決定了舵機的轉角位置,對應關系如下圖;

STM32靠定時器TIM實現PWM信號的輸出,STM32有多個定時器,分為通用定時器和高級定時器,每個通用定時器都可以輸出4路PWM,本文採用TM2_CH4,及定時器2的第4路PWM;對應STM32F103C8T6上的PB11引腳;

創建工程輸出PWM
本文使用STM32CubeMX創建工程,更加簡單高效,即便對單片機不熟悉也可操作成功;

一、打開STM32CubeMX,新建一個工程,搜索並選擇STM32F103C8,然後start project;
二、進行基本設置,配置RCC、SYS、HCLK

RCC -> 設置高速外部時鍾HSE 選擇外部時鍾源
SYS -> 選擇Debug方式 serial wire
HCLK -> 設置為72MHZ

三、設置定時器

選擇TIM2
選擇內部時鍾源
設置Channel4為PWM模式
右側對應管腳自動設置為復用模式
設置定時器參數
控制舵機我們需要設置PWM輸出一個周期時間為20ms的信號,定時器時鍾為72Mhz

預分頻Prescaler設置為720-1,則單周期為72M/(Prescaler + 1) = 100Khz(0.01ms)
以20ms為周期,則Counter Period為20ms/0.01ms - 1 = 1999
此處可設定默認脈沖寬度為0.5ms,及0.5/20*2000 = 50
四、接下來設置輸出格式

添加工程名PWM
修改IDE為MDK-ARM V5
在Code Genetator中設置包含庫與工程格式

至此STM32CubeMX已設置完成,接下來GENERATE CODE,並打開文件;
在main函數中啟動定時器,並輸出一定的脈沖的PWM信號即可驅動舵機;

五、修改代碼

在main.c文件相應位置處添加如下代碼

啟動PWM輸出
輸出PWM信號
/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */

/* USER CODE BEGIN 2 */
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_4); //啟動定時器
int compareValue = 150; //將compareValue設置為50、150、250分別對應0°、90°、180°
/* USER CODE END 2 */

/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */
__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, compareValue); //輸出PWM信號
HAL_Delay(10);
}
/* USER CODE END 3 */
}
登錄後復制

添加完以上代碼之後,編譯,然後通過JLink將程序LOAD到STM32F103C8T6,將舵機信號線連接PB11(TIM2_CHANNEL4)口,並接上電源,舵機即可轉動到指定角度;由以上定時器設定可知,compareValue值50、150、250 對應 0.5ms、1.5ms、2.5ms 對應 0°、90°、180°;若想讓舵機連續轉動,在50~250內循環改變compareValue值即可;

六、接線

開始時用單片機的5V輸出給舵機供電,舵機噠噠噠響,但是不轉,懷疑是供電不給力,單獨供電後驅動成功;

JIink連接電腦和單片機,下載程序到單片機並給單片機供電
舵機黃色信號線接STM32F103C8T6引腳PB11,接收PWM信號
舵機紅色電源線接穩壓板5V輸出正極,舵機黑色地線需與單片機地相連
調試
實操中可能會出現各種各樣的問題,以下有幾種調試方法

一、舵機測試

調試模塊一端接電,一段接舵機,手動模式下,舵機會跟著旋鈕同步旋轉,可以用來測試舵機是否健康;
二、串口調試助手

可下載串口調試助手,用ttl轉USB模塊連接電腦,在特定位置進行列印輸出,檢查程序是否按預設運行
stm32