<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32基礎知識:PWM控制舵機

CHANBAEK ? 來源:上下求索電子er ? 作者:上下求索電子er ? 2023-10-24 15:36 ? 次閱讀

PWM控制舵機

1 舵機簡介

伺服電機通常被稱為舵機,它是一種帶有輸出軸的小裝置。當我們向伺服器發送一個控制信號時,輸出軸就可以轉到特定的位置。只要控制信號持續不變,伺服機構就會保持軸的角度位置不改變。如果控制信號發生變化,輸出軸的位置也會相應發生變化。日常生活中,舵機常被用于遙控飛機、遙控汽車、機器人等領域。

舵機在機器人領域非常有用。因為舵機有內置的控制電路,它們的尺寸雖然很小,但輸出力夠大。像Futaba S-148這樣的標準舵機能提供 0.3牛/米的扭矩,相對于它的外形大小來說這已經足夠強大了。同時,舵機消耗的能量與機械負荷成正比。因此,一個輕載的舵機系統不會消耗太多的能量。

2 舵機結構

舵機主要由以下幾個部分組成:外殼、舵盤、直流電機、減速齒輪組、角度傳感器、控制驅動電路接口線纜等。常見的舵機內部結構如下圖所示。

圖片

圖片

舵機的輸入有三根線,一般的中間的紅色線為電源正極,咖啡色線的為電源負極,黃色色線為控制線號線。

3 舵機控制

圖片

控制線用于傳輸角度控制信號。這個角度是由控制信號脈沖的持續時間決定的,這叫做脈沖編碼調制(PCM)。舵機的控制一般需要一個20ms左右的時基脈沖,該脈沖的高電平部分一般為0.5ms-2.5ms范圍,總間隔為2ms。脈沖的寬度將決定馬達轉動的距離。

例如:1.5毫秒的脈沖,電機將轉向90度的位置(通常稱為中立位置,對于180°舵機來說,就是90°位置)。如果脈沖寬度小于1.5毫秒,那么電機軸向朝向0度方向。如果脈沖寬度大于1.5毫秒,軸向就朝向180度方向。以180度舵機為例,對應的控制關系是這樣的:

0.5ms0度
1.0ms45度
1.5ms90度
2.0ms135度
2.5ms180度

4 任務實踐

通過按鍵控制舵機角度,當KEY1按下后, 減少占空比,當KEY2按下后,增加占空比,并在串口輸出此時的角度。

  1. PWM參數計算
    PWM信號周期Period=20ms,采用STM32內部8MHz的時鐘,計算可得(ARR+1)*(PSC+1)=160000,故可取ARR=199,PSC=799。舵機為0度時,高電平持續時間為0.5ms,即占空比Duty=0.025,則CCR初始值可以設為5.

PWM參數計算在STM32基礎:定時器的PWM輸出功能中有詳細講解。

  1. 在CubeMX中配置PWM(采用定時器3通道1)、串口以及按鍵1和按鍵2對應GPIO為中斷模式并使能.
    圖片
    圖片

在CubeMX中配置串口,在Keil中使用“Use MicroLIB”并在代碼中重定向printf函數的方法在STM32基礎:定時器的定時計數功能有詳細講解。

在CubeMX中配置GPIO中斷并使能的方法已經按鍵的相關操作在STM32基礎:中斷系統中有詳細講解。

  1. 編寫代碼
/* USER CODE BEGIN PD */
#define CCR_MAX 25  // CCR最大值
/* USER CODE END PD */

/* USER CODE BEGIN PV */
uint16_t CCR = 5;   // CCR初始值
uint16_t Step = 5;  // CCR步進值
/* USER CODE END PV */

/* USER CODE BEGIN 4 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
  if(GPIO_Pin == KEY1_Pin)
  {
    (CCR >= CCR_MAX) ? (CCR = 5) : (CCR += Step);
    __HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_1, CCR);
    printf("Sigle = %d", (CCR/5 - 1)*45);
    HAL_Delay(200);
  }
  else if (GPIO_Pin == KEY2_Pin)
  {
    (CCR <= 5) ? (CCR = CCR_MAX) : (CCR -= Step);
    __HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_1, CCR);
    printf("Sigle = %d", (CCR/5 - 1)*45);
    HAL_Delay(200);
  }
}

/* USER CODE END 4 */
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 直流電機
    +關注

    關注

    35

    文章

    1641

    瀏覽量

    69632
  • PWM
    PWM
    +關注

    關注

    114

    文章

    4935

    瀏覽量

    210514
  • STM32
    +關注

    關注

    2245

    文章

    10688

    瀏覽量

    349677
  • 伺服電機
    +關注

    關注

    83

    文章

    1878

    瀏覽量

    56670
  • 舵機
    +關注

    關注

    17

    文章

    243

    瀏覽量

    40539
收藏 人收藏

    評論

    相關推薦

    電機控制基礎知識1—定時器基礎知識PWM輸出原理

    轉速等。 本篇先介紹 定時器的基礎知識 ,然后對照這些知識介紹一下 定時器輸出PWM的基本原理 ,以及 編程實現與代碼分析 。 首先來看一下定時器的基礎介紹。 1 定時器基礎知識 1.
    的頭像 發表于 06-17 00:11 ?1.1w次閱讀
    電機<b class='flag-5'>控制</b><b class='flag-5'>基礎知識</b>1—定時器<b class='flag-5'>基礎知識</b>與<b class='flag-5'>PWM</b>輸出原理

    STM32PWM控制舵機

    摘自:STM32 PWM控制舵機作者:三速何時sub20發布時間: 2021-02-27 14:54:01網址:https://blog.csdn.net/weixin_4423429
    發表于 06-30 07:02

    STM32控制舵機

    STM32控制舵機文章目錄STM32控制舵機前言一、PWMPWM是什么?如何實現
    發表于 08-04 06:26

    如何利用PWM信號去控制舵機

    【K210+micropython】PWM信號控制舵機文章目錄【K210+micropython】PWM信號控制
    發表于 01-14 09:19

    定時器基礎知識PWM輸出原理是什么

    轉速等。本篇先介紹定時器的基礎知識,然后對照這些知識介紹一下定時器輸出PWM的基本原理,以及編程實現與代碼分析。首先來看一下定時器的基礎介紹。1 定時器基礎知識1.1 定時器種類以
    發表于 01-25 08:16

    STM32F1-pwm波-控制舵機相關資料下載

    STM32F1控制舵機 驗證可用
    發表于 05-02 10:12 ?22次下載
    <b class='flag-5'>STM32F1-pwm</b>波-<b class='flag-5'>控制</b><b class='flag-5'>舵機</b>相關資料下載

    STM32 CubeMX學習:5. 其他PWM設備

    :5. 其他PWM設備0 前言1 基礎知識1.1 蜂鳴器1.2 舵機控制2 程序學習2.1 蜂鳴器的CubeMX配置2.1.1 有源蜂鳴器2.1.2 無源蜂鳴器2.2
    發表于 11-23 17:51 ?1次下載
    <b class='flag-5'>STM32</b> CubeMX學習:5. 其他<b class='flag-5'>PWM</b>設備

    STM32—TIM3輸出PWM信號驅動MG996R舵機(按鍵控制

    MG996R舵機,按鍵控制。相關知識:TIM定時器基本原理,TIM輸出PWM信號、MG996R舵機驅動原理二、MG996R
    發表于 11-23 18:21 ?57次下載
    <b class='flag-5'>STM32</b>—TIM3輸出<b class='flag-5'>PWM</b>信號驅動MG996R<b class='flag-5'>舵機</b>(按鍵<b class='flag-5'>控制</b>)

    電機控制基礎——定時器基礎知識PWM輸出原理

    轉速等。本篇先介紹定時器的基礎知識,然后對照這些知識介紹一下定時器輸出PWM的基本原理,以及編程實現與代碼分析。首先來看一下定時器的基礎介紹。1 定時器基礎知識1.1 定時器種類以
    發表于 11-30 14:21 ?38次下載
    電機<b class='flag-5'>控制</b>基礎——定時器<b class='flag-5'>基礎知識</b>與<b class='flag-5'>PWM</b>輸出原理

    STM32控制舵機講解,從入門到放棄。

    STM32控制舵機文章目錄STM32控制舵機前言一、PWMPWM是什么?如何實現
    發表于 12-24 19:26 ?24次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>控制</b><b class='flag-5'>舵機</b>講解,從入門到放棄。

    STM32控制舵機的方法及實例

    STM32控制SG90舵機 在這篇博客中,我講解的是SG90的180°型號的舵機。其它型號的舵機也可以參考。首先,
    發表于 12-24 19:30 ?127次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>控制</b><b class='flag-5'>舵機</b>的方法及實例

    stm32控制舵機——以stm32F103C8T6為例

    stm32F103C8T6為例,從分析舵機的原理出發,到介紹使用stm的TIM功能輸出PWM波,掌握理論后進行實戰,先控制一個舵機上手,然后
    發表于 12-24 19:35 ?107次下載
    用<b class='flag-5'>stm32</b><b class='flag-5'>控制</b><b class='flag-5'>舵機</b>——以<b class='flag-5'>stm32</b>F103C8T6為例

    【K210+micropython】PWM信號控制舵機

    【K210+micropython】PWM信號控制舵機文章目錄【K210+micropython】PWM信號控制
    發表于 01-14 12:28 ?12次下載
    【K210+micropython】<b class='flag-5'>PWM</b>信號<b class='flag-5'>控制</b><b class='flag-5'>舵機</b>

    德晟舵機PWM信號控制原理

    現在常用的舵機控制信號主要有 PWM 信號和串口總線信號兩種:其中?PWM?信號控制比較簡單,但是功能只有一個即
    的頭像 發表于 10-16 15:51 ?833次閱讀
    德晟<b class='flag-5'>舵機</b><b class='flag-5'>PWM</b>信號<b class='flag-5'>控制</b>原理

    PWM信號控制舵機原理

    PWM信號控制舵機原理
    發表于 09-21 09:32 ?4次下載
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>