国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

STM32CubeMX筆記(9)--定時(shí)器生成PWM特定波形,控制舵機(jī)轉(zhuǎn)動(dòng)

darryrzhong / 3652人閱讀

摘要:只能在度到度之間運(yùn)動(dòng),超過范圍,舵機(jī)輕則齒輪打壞,重則燒壞內(nèi)部電路舵機(jī)能度轉(zhuǎn)動(dòng)能控制轉(zhuǎn)速。相關(guān)定時(shí)器的參數(shù)設(shè)置定時(shí)器為例編寫相關(guān)的函數(shù)文件相關(guān)函數(shù)開啟添加定時(shí)器的通道和通道的生成開啟使能函數(shù),放置于到中的用戶代碼區(qū)。


1、舵機(jī)相關(guān)知識(shí)

1.1 相關(guān)舵機(jī)的知識(shí)點(diǎn):

  • 舵機(jī)的分類
    按照旋轉(zhuǎn)角度
    180°舵機(jī):能給定角度、固定轉(zhuǎn)速。 只能在0度到180度之間運(yùn)動(dòng),超過范圍,舵機(jī)輕則齒輪打壞,重則燒壞內(nèi)部電路.
    360°舵機(jī):能360度轉(zhuǎn)動(dòng), 能控制轉(zhuǎn)速。但不能調(diào)節(jié)轉(zhuǎn)動(dòng)的角度
    按照控制信號(hào)
    模擬舵機(jī):要持續(xù)提供PWM信號(hào)才能固定角度。優(yōu)點(diǎn):便宜。
    數(shù)字舵機(jī):只要給一次PWM信號(hào)就能固定角度。優(yōu)點(diǎn):高精度,響就快,抖動(dòng)小,更大的角度固定力。

  • 幾個(gè)重要參數(shù)
    最大扭矩
    如MG996, 最大扭矩: 13KG/cm. 這個(gè)是在舵機(jī)堵轉(zhuǎn)時(shí)測(cè)得的, 其時(shí)距離軸中心1cm處能掛起的重量.
    工作電壓
    如常用的3.0V~7.2V, 接入電壓不同, 所能產(chǎn)生的工作扭矩自然不同. 直接影響角度固定力。

  • 引腳說明
    紅色:供電;電流比較大,除非測(cè)試, 真不建議在開發(fā)板上取電;
    粽色:地線;必須與控制器, 如SMT32芯片共地;
    橙色:PWM信號(hào)線;接芯片的TIMx外設(shè)的CHx腳;

1.2 舵機(jī)的控制:

  • 原理簡介
    舵機(jī)接收的是PWM信號(hào),能使舵機(jī)內(nèi)部電路產(chǎn)生一個(gè)偏置電壓,觸發(fā)電機(jī)通過減速齒輪帶動(dòng)電位器移動(dòng),當(dāng)電壓差為零時(shí),電機(jī)停轉(zhuǎn),從而達(dá)到伺服的效果。
    即,給舵機(jī)提供一個(gè)特定的PWM信號(hào),舵機(jī)就可以旋轉(zhuǎn)到指定的位置。

  • PWM信號(hào)、角度
    舵機(jī)接收的PWM信號(hào)頻率為50HZ,即周期為20ms。當(dāng)高電平的脈寬在0.5ms-2.5ms之間時(shí)舵機(jī)就可以對(duì)應(yīng)旋轉(zhuǎn)到不同的角度。

為了更好地理解其信號(hào),和編寫代碼,把PWM關(guān)鍵點(diǎn)轉(zhuǎn)換如下:

PWM信號(hào)周期: 20000us
0度時(shí),高電平時(shí)長: 500us
180度時(shí), 高電平時(shí)長:2500us
每增加1 °,需增加高電平時(shí)長:(2500-500)÷180 = 11.1us
某角度值A(chǔ),需要的總高電平時(shí)長:(A x11.1 +500)us


故在設(shè)置定時(shí)器參數(shù)時(shí)
預(yù)分頻(PSC):72-1;
計(jì)數(shù)值(Counter):20000-1;(計(jì)數(shù)從0開始,所以要減1)

設(shè)置計(jì)數(shù)值為20000對(duì)應(yīng)PWM信號(hào)周期:20000us;
控制對(duì)應(yīng)的為對(duì)應(yīng)通道的CCR設(shè)置為:500-2500;

重點(diǎn)解釋一下:PSC, ARR, CCR, CNT
PSC:TIM時(shí)鐘的分頻系數(shù):72;內(nèi)部時(shí)鐘經(jīng)PSC值分頻后, 傳給CNT計(jì)數(shù)器使用;
CNT:計(jì)數(shù)器,CNT每計(jì)數(shù)一次的脈沖時(shí)長為:1÷(CLK÷PSC) = 1÷(72000000÷72) = 0.000001s/次 = 1us/次;
ARR:自動(dòng)重裝載值:20000,AutoReload Register也稱為Counter Period,CNT計(jì)數(shù)器經(jīng)過多少次脈沖就重新開始計(jì)數(shù)。用這個(gè)值可控制需要的PWM信號(hào)周期:1us x 20 000次 = 20 000us = 20ms
CCR:用于控制周期內(nèi)高電平時(shí)長, 當(dāng)CNT

特別地說明: 把所有ms值, 轉(zhuǎn)換為us值, 是為了方便代碼的編寫和理解


2、STM32CubeMX引腳設(shè)置和代碼生成

2.1 相關(guān)STM32CubeMX生成代碼配置如下:

相關(guān)外部晶振的設(shè)置參考:STM32CubeMX筆記(5)–定時(shí)器中斷

1、在STM32CubeMX軟件右側(cè):
選擇Times定時(shí)器設(shè)置項(xiàng),根據(jù)下圖進(jìn)行配置相對(duì)應(yīng)的定時(shí)器相關(guān)參數(shù)的設(shè)置。
(選擇內(nèi)部時(shí)鐘源、設(shè)置通道的模式、設(shè)置預(yù)分頻、計(jì)數(shù)值)

定時(shí)器頻率=時(shí)鐘頻率/(預(yù)分頻*計(jì)數(shù)值)

T i m e s ( H z ) = I n t e r n e l C l o c k ( M H z ) P S C ? C o u n t e r . Times(Hz) = /frac{InternelClock(MHz)}{PSC*Counter}. Times(Hz)=PSC?CounterInternelClock(MHz)?.

下面圖中設(shè)置的舵機(jī)的頻率為50Hz,使用定時(shí)器8生成PWM波

其中內(nèi)部時(shí)鐘頻率為APB1(InternelClock)頻率為72MHz(根據(jù)時(shí)鐘樹看出)

預(yù)分頻(PSC):72-1; 計(jì)數(shù)值(Counter):20000-1;(計(jì)數(shù)從0開始,所以要減1)
設(shè)置計(jì)數(shù)值為20000對(duì)應(yīng)PWM信號(hào)周期:20000us;
控制對(duì)應(yīng)的為對(duì)應(yīng)通道的CCR設(shè)置為:500-2500;

設(shè) 置 生 成 的 頻 率 = 72000000 72 ? 20000 = 50 H z 設(shè)置生成的頻率= /frac{72000000}{72*20000}=50Hz 設(shè)=72?2000072000000?=50Hz

2、在STM32CubeMX軟件右上角,點(diǎn)擊GEBERATE CODE項(xiàng),生成代碼。


相關(guān)定時(shí)器的參數(shù)設(shè)置:(定時(shí)器8為例)


3、編寫相關(guān)的C函數(shù)文件

3.1、相關(guān)PWM函數(shù)開啟:

1)添加定時(shí)器8的通道1和通道2的PWM生成開啟使能函數(shù),放置于到main.c中的用戶代碼區(qū)

/* USER CODE BEGIN 2 */   HAL_TIM_PWM_Start(&htim8,TIM_CHANNEL_1);   HAL_TIM_PWM_Start(&htim8,TIM_CHANNEL_2);/* USER CODE END 2 */

3.2、相關(guān)PWM占空比設(shè)置:

2)通過類似如下的設(shè)置,即可設(shè)置定時(shí)器8的通道1和通道2的相關(guān)占空比寄存器,直接控制PWM的占空比輸出

   TIM8->CCR1 = 800;    TIM8->CCR2 = 1800; 

3.3、相關(guān)PWM占空比設(shè)置函數(shù)改進(jìn):

3)將上述寄存器進(jìn)行改進(jìn),整合出相關(guān)的函數(shù)文件

/**************************************************************************函數(shù)功能:定時(shí)器TIMx的PWM輸出占空比CCRx設(shè)置函數(shù)入口參數(shù):[TIMx]:TIM1~8、[CHx]:TIM_CHANNEL_1~4、[CCR]:0~65535(舵機(jī)控制時(shí):0~2500)返回  值:無說    明:通過設(shè)置TIMx寄存器CCRx的值設(shè)置輸出通道的占空比**************************************************************************/void TIM_SetCCR(TIM_TypeDef *TIMx, uint32_t CHx, uint16_t CCR) {      	if(CHx==TIM_CHANNEL_1)    TIMx->CCR1 = CCR;  	if(CHx==TIM_CHANNEL_2)    TIMx->CCR2 = CCR;  	if(CHx==TIM_CHANNEL_3)    TIMx->CCR3 = CCR;  	if(CHx==TIM_CHANNEL_4)    TIMx->CCR4 = CCR;} 

函數(shù)的引用效果如下:

以下兩個(gè)代碼片段的使用效果相同,如下。
設(shè)置通道1占空比為50hz,高電平時(shí)間800us
設(shè)置通道2占空比為50hz,高電平時(shí)間1800us

   TIM_SetCCR(TIM8,TIM_CHANNEL_1,800);   TIM_SetCCR(TIM8,TIM_CHANNEL_2,1800);
   TIM8->CCR1 = 800;    TIM8->CCR2 = 1800; 

進(jìn)一步測(cè)試,將以下代碼復(fù)制到主函數(shù)的循環(huán)中:

 /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) {   	TIM_SetCCR(TIM8,TIM_CHANNEL_1,800);   	TIM_SetCCR(TIM8,TIM_CHANNEL_2,1800);   	HAL_Delay(1000);   	   	TIM_SetCCR(TIM8,TIM_CHANNEL_1,1800);   	TIM_SetCCR(TIM8,TIM_CHANNEL_2,800);   	HAL_Delay(1000);   /* USER CODE END WHILE */   /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */

4、編譯工程文件,使用ST-Link燒錄,測(cè)試定時(shí)器中斷

將對(duì)應(yīng)的通道輸出接口連接上舵機(jī)的PWM控制線,進(jìn)行相關(guān)轉(zhuǎn)角的測(cè)試。
對(duì)應(yīng)舵機(jī)來回旋轉(zhuǎn)。


文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/122110.html

相關(guān)文章

  • 10. STM32——PWM 控制舵機(jī)(超聲波感應(yīng)開蓋垃圾桶)

    摘要:中央對(duì)齊模式向上計(jì)數(shù)時(shí)當(dāng)時(shí)通道為無效電平,否則為有效電平向下計(jì)數(shù)時(shí)一旦通道為有效電平,否則為無效電平。一般來說,舵機(jī)接收的信號(hào)頻率為,即周期為。 STM32——P...

    jasperyang 評(píng)論0 收藏0
  • 項(xiàng)目六:時(shí)器一產(chǎn)生PWM控制舵機(jī)

    摘要:本次實(shí)驗(yàn)的采用的舵機(jī)是度伺服,控制關(guān)系如下二舵機(jī)電路圖三高級(jí)定時(shí)器產(chǎn)生波相比普通定時(shí)器初始化中需要多加兩句重復(fù)計(jì)數(shù)器的值主輸出使能四代碼電機(jī)初始化延遲初始化電機(jī)管腳初始化尋跡管腳初始化。 一、舵機(jī)工作原理 ? ? 控制信號(hào)由接收機(jī)的通道進(jìn)入信號(hào)調(diào)制芯片,獲得直流的偏置電壓。它內(nèi)部有一個(gè)基準(zhǔn)電...

    kelvinlee 評(píng)論0 收藏0
  • 使用STM32CubeMX初始化STM32F031F6Px系列

    摘要:利用可視化界面來進(jìn)行的相關(guān)配置,所以時(shí)鐘滴答定時(shí)器串口等就不用根據(jù)數(shù)據(jù)手冊(cè)去操作標(biāo)準(zhǔn)庫甚至是寄存器了,可以通過軟件直接生成。 使用STM32CubeMX初始化ST...

    Zhuxy 評(píng)論0 收藏0
  • 項(xiàng)目三:利用PWM波和GPIO控制電機(jī)

    摘要:較高時(shí),電機(jī)運(yùn)行連續(xù)平穩(wěn)噪音小,但器件功耗會(huì)隨頻率升高而增大較低時(shí),利于降低功耗,并能提高調(diào)速線性度,但過低的頻率可能導(dǎo)致電機(jī)轉(zhuǎn)動(dòng)連貫性的降低。通常時(shí),器件能夠穩(wěn)定的控制電機(jī)。 一、驅(qū)動(dòng)芯片介紹 TB6612?的的用法: ? ? ?TB6612?是雙驅(qū)動(dòng),也就是可以驅(qū)動(dòng)兩個(gè)電機(jī)下面分別是控制...

    taowen 評(píng)論0 收藏0
  • 單片機(jī)入門指南

    摘要:單片機(jī)入門指南本文基于常神文章基礎(chǔ)上將單片機(jī)入門部分進(jìn)行細(xì)化盡可能細(xì)節(jié)做到可實(shí)施性先引用一下常神的文章首先假設(shè)大家已經(jīng)對(duì)高中物理的電路部分有所了解。單片機(jī),如,是一種根據(jù)程序控制引腳高低電平的可編程器件,有些場(chǎng)合又將這種行為稱作嵌入式。 ...

    nevermind 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<