STM32F103系列驅動舵機

2021-10-11 09:06:52 字數 1218 閱讀 1400

舵機的控制一般需要乙個20ms左右的時基脈衝,該脈衝的高電平部分一般為0.5ms~2.5ms範圍內的角度控制脈衝部分。以180度角度伺服為例,那麼對應的控制關係是這樣的:

0.5ms--------------0度;

1.0ms------------45度;

1.5ms------------90度;

2.0ms-----------135度;

2.5ms-----------180度;

由公式:

定時器溢位時間(s)=( (自動重裝載值-1)*(預分頻值-1) )/定時器輸入時鐘頻率(hz)

自動重裝載值:arr

可程式設計預分頻器: psc

以定時器3為例要配置乙個20ms為週期的時鐘脈衝:

20ms=0.02s

根據公式定時器3在apb1時鐘匯流排下頻率為:36mhz(1mhz=1000000hz)

(arr-1) * (psc-1) = 36mhz * 0.02s

(arr-1) * (psc-1) =720000

只要保證(arr-1) 和(psc-1)的積等於720000那麼這倆的值可以隨意,但是不建議將重裝載值分的太多不方便後面計算。下面是以arr=200 psc是7200

注:如果使用的是正點原子的庫函式版本則需要用72mhz來計算定時器,而如果直接使用stm32cubemx則定時器輸入時鐘頻率為36mhz

當定時器設定是向上計數模式

要讓舵機轉動45°那麼就需要:

1ms/20ms=0.05

200*0.05=10

設定pdcx裝入的新的占空比是:200-10=190

定時器3初始化

void

tim3_pwm_init

(u16 arr,u16 psc)

//main函式下

tim3_pwm_init

(199

,7199);

//定時器使能

tim_setcompare2

(tim3,

190)

;//舵機轉動45°

舵機原理與STM32f103 控制

舵機是通過高電平的占空比來調節輸出軸的角度,舵機的驅動訊號是50hz的方波訊號,每個週期為20ms,其中高電平的佔比在0.5ms 2.5ms之間,對應關係如下 0.5ms 0度 1.0ms 45度 1.5ms 90度 2.0ms 135度 2.5ms 180度 所以我們可以通過控制控制訊號的高電平長...

stm32f103外部中斷

void extix init void 外部中斷0服務程式 void exti9 5 irqhandler void 這是簡單的外部中斷的配置,pc7作為中斷輸入 上面補充io口的初始化 gpio initstructure.gpio mode gpio mode ipu pc6配置為快充指示 1...

STM32F103啟動檔案

目錄 一 概述 二 彙編指令 2.1 equ 2.2 area 2.3 space 2.4 preserve8 2.5 thumb 2.6 export 2.7 dcd 2.8 proc 2.9 ldr 2.10 blx 2.11 bx 2.12 temport 2.13 b 2.14 if,els...