国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【STM32單片機(jī)】STM32控制SG90舵機(jī)的PWM部分參數(shù)的設(shè)置解答

這篇具有很好參考價值的文章主要介紹了【STM32單片機(jī)】STM32控制SG90舵機(jī)的PWM部分參數(shù)的設(shè)置解答。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

一、(180度)舵機(jī)控制要知道的知識

【STM32單片機(jī)】STM32控制SG90舵機(jī)的PWM部分參數(shù)的設(shè)置解答,STM32單片機(jī),單片機(jī),stm32,嵌入式硬件

我們要知道,SG90舵機(jī)接收的PWM信號的參數(shù):f=50Hz,T=1/f,所以周期為20ms。
當(dāng)高電平的脈寬在0.5ms-2.5ms之間時舵機(jī)就可以對應(yīng)旋轉(zhuǎn)到不同的角度。

  • 換句話說,我們要用單片機(jī)產(chǎn)生一個周期(20ms)的PWM波,然后獲得對應(yīng)這些時長(分別是0.5ms1ms、1.5ms2ms、2.5ms)的高電平。
  • 或者說:它們是以20ms為周期的方波,分別為 2.5%5%,7.5%10%,12.5%占空比
    【STM32單片機(jī)】STM32控制SG90舵機(jī)的PWM部分參數(shù)的設(shè)置解答,STM32單片機(jī),單片機(jī),stm32,嵌入式硬件

二、PWM的參數(shù)要怎么計算

公式:f = SYSCLK/((TIM_Period+1)*(TIM_Prescaler+1))

  1. 我們已知的有:
  • f=1/50Hz(舵機(jī)需要的頻率)
  • sys_clk=72MHz(根據(jù)板子的系統(tǒng)時鐘頻率來取值)
  1. 我們要求的是分頻值重裝載值
  • TIM_Prescaler:計時器的預(yù)分頻器值,它決定了 PWM 信號的頻率,也就是每秒鐘有多少個脈沖。預(yù)分頻值越大,每秒鐘產(chǎn)生的脈沖數(shù)就越少,頻率就越低
  • TIM_Period:計時器的自動重裝載寄存器(Auto-Reload Register,ARR)的值,用于確定計時器的計數(shù)周期。它決定了每個 PWM 周期的長度。重裝載值越大,每個周期的長度就越長,脈沖也會持續(xù)更久。

總之,預(yù)分頻值和重裝載值的選擇會直接影響到 PWM 信號的頻率和占空比。通過適當(dāng)?shù)卣{(diào)整這兩個值,你可以實(shí)現(xiàn)所需的 PWM 輸出效果。需要根據(jù)具體的應(yīng)用需求和硬件規(guī)格來確定適合的預(yù)分頻值和重裝載值。

用大白話說,比如倒著數(shù)數(shù),預(yù)分頻值就是你一次數(shù)幾個數(shù),裝載值是你從哪個數(shù)開始倒數(shù)。

  • 1次1個就是 100、99、98…
  • 1次2個就是100、98、96… 以此類推。
    【STM32單片機(jī)】STM32控制SG90舵機(jī)的PWM部分參數(shù)的設(shè)置解答,STM32單片機(jī),單片機(jī),stm32,嵌入式硬件
    然后再理解一下這個Compare:
    【STM32單片機(jī)】STM32控制SG90舵機(jī)的PWM部分參數(shù)的設(shè)置解答,STM32單片機(jī),單片機(jī),stm32,嵌入式硬件
    你把數(shù)的這串?dāng)?shù)字看作是一整個波形。
    波形嘛,是有高、低電平的。而Compare值就是用來指出高電平在其中所占的個數(shù)的。
    那么把高電平所占的個數(shù)除以數(shù)字總個數(shù),就是占空比啦?。?!

1、為什么要分頻呢?

定時器的計數(shù)有限。因?yàn)榘遄拥南到y(tǒng)時鐘頻率是72MHz,意味著1秒可以計數(shù)72M次。

  • 對于16位的定時器,計數(shù)范圍是0~65536,2的16次方嘛。
  • 對于32位的定時器,則為0到4294967295。但是雖然可以滿足,但是計數(shù)太快了,利用率就不行。所以通過給系統(tǒng)時鐘分頻,可以根據(jù)具體應(yīng)用需求靈活地調(diào)整定時器的計數(shù)速度。對于需要高精度和高頻率的應(yīng)用,可以選擇較高的系統(tǒng)時鐘頻率和相應(yīng)的預(yù)分頻系數(shù);對于需要較低頻率的應(yīng)用,可以選擇較低的系統(tǒng)時鐘頻率和相應(yīng)的預(yù)分頻系數(shù)。

我對它的理解是,我們通過一個生活中的數(shù)數(shù)例子來理解上面這段話。

假設(shè)你和朋友一起數(shù)數(shù),計數(shù)范圍是0到9。你們每秒鐘能夠數(shù)一次,并且使用一個計數(shù)器來記錄當(dāng)前的數(shù)字。
現(xiàn)在,假設(shè)你們使用的時鐘是系統(tǒng)時鐘,頻率為100次/秒,即每秒鐘系統(tǒng)時鐘發(fā)生100個時鐘脈沖。
如果你們直接將系統(tǒng)時鐘作為計數(shù)器的輸入時鐘,計數(shù)器每接收到一個時鐘脈沖就會加1,那么在1秒鐘內(nèi),計數(shù)器將會累加100次。由于計數(shù)范圍只有0到9,計數(shù)器的值會很快達(dá)到最大值9,并溢出回到0,無法完成較長的計數(shù)周期。
為了實(shí)現(xiàn)更長的計數(shù)周期和較低的頻率,你們決定將系統(tǒng)時鐘頻率分頻,比如分頻為10。這意味著計數(shù)器每接收到10個時鐘脈沖才會加1,也就是每秒鐘計數(shù)器只會加1次。這樣,計數(shù)器的值在1秒鐘內(nèi)只會從0增加到1,而不會溢出,可以實(shí)現(xiàn)更長的計數(shù)周期和較低的頻率。
---------------------------------------例如----------------------------------------------
stm32F103C8T6的系統(tǒng)時鐘是72MHz,

  • 我給它進(jìn)行72分頻(TIM_Prescaler=72),也就是 72MHz / 72 = 1MHz (1秒1M個數(shù)),我們分頻以后計一個數(shù)就是1us

  • 一個數(shù)1us,那我們需要20ms,也是20ms = 20 000us / 1us = 20000個(TIM_Period=20000),也就是我們需要計20000數(shù),這很好理解吧。

  • cubeMX里是這么設(shè)置的
    【STM32單片機(jī)】STM32控制SG90舵機(jī)的PWM部分參數(shù)的設(shè)置解答,STM32單片機(jī),單片機(jī),stm32,嵌入式硬件

  • 然后我們要知道下面這張圖,意思就是在這個20ms的一個周期內(nèi),如果高電平占20ms中的0.5ms(占空比嘛,高電平在一個周期內(nèi)的占比),則可以讓舵機(jī)轉(zhuǎn)到0°,后面的以此例推。

  • 然后,問題來了,我們要記多少個數(shù)才可以達(dá)到0.5ms呢?
    :因?yàn)?us計數(shù)1個,0.5ms則是500us,所以對應(yīng)500個嘛。
    【STM32單片機(jī)】STM32控制SG90舵機(jī)的PWM部分參數(shù)的設(shè)置解答,STM32單片機(jī),單片機(jī),stm32,嵌入式硬件

  • 然后要怎么讓單片機(jī)知道,我們這500個數(shù),計的是高電平呢?(你要是沒有設(shè)置,它肯定不知道的)
    在CubeMX里
    【STM32單片機(jī)】STM32控制SG90舵機(jī)的PWM部分參數(shù)的設(shè)置解答,STM32單片機(jī),單片機(jī),stm32,嵌入式硬件
    在代碼里
    【STM32單片機(jī)】STM32控制SG90舵機(jī)的PWM部分參數(shù)的設(shè)置解答,STM32單片機(jī),單片機(jī),stm32,嵌入式硬件

2、為什么選擇PWM模式1(TIM_OCMode_PWM1)呢?

按我的理解來說,pwm1的就是先輸出有效電平(高電平)再輸出無效電平(低電平)。而pwm2就是反過來,先輸出無效電平再輸出有效電平。

Hal庫__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,500);或者是庫函數(shù)的 TIM_SetCompare3(TIM3,500);
當(dāng)配置的是pwm1模式,那這句話的意思都是,輸出計500個數(shù)的時間的有效電平(高電平),500*1us=0.5ms,剩余的(20-0.5)ms則是低電平。
若是配置pwm2模式,也是輸出的500個數(shù)的時間是低電平?!疽话愣加胮wm1】

如果還是不太懂的話,可以去看看江科大講的stm32入門教程。
【STM32單片機(jī)】STM32控制SG90舵機(jī)的PWM部分參數(shù)的設(shè)置解答,STM32單片機(jī),單片機(jī),stm32,嵌入式硬件文章來源地址http://www.zghlxwxcb.cn/news/detail-544108.html

每天進(jìn)步一點(diǎn)點(diǎn) 筆記僅供自學(xué),用來回看復(fù)習(xí),不一定適合你,如有錯誤請指出。

到了這里,關(guān)于【STM32單片機(jī)】STM32控制SG90舵機(jī)的PWM部分參數(shù)的設(shè)置解答的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 51單片機(jī)實(shí)現(xiàn)SG90舵機(jī)任意角度轉(zhuǎn)動

    51單片機(jī)實(shí)現(xiàn)SG90舵機(jī)任意角度轉(zhuǎn)動

    參考單片機(jī)——SG90舵機(jī)工作原理_掏一淘哆啦A夢的奇妙口袋的博客-CSDN博客?????? 這位博主做的代碼,在此基礎(chǔ)上進(jìn)行簡單修改成可以用51單片機(jī)的定時器和中斷實(shí)現(xiàn)SG90舵機(jī)任意角度轉(zhuǎn)動 完整代碼如下: ?這里對主要的內(nèi)容進(jìn)行解釋。 根據(jù)51單片機(jī)定時器計數(shù)初值的計

    2024年02月16日
    瀏覽(26)
  • 51單片機(jī)驅(qū)動SG90舵機(jī)抖動或者無反應(yīng)問題解決方案

    51單片機(jī)驅(qū)動SG90舵機(jī)抖動或者無反應(yīng)問題解決方案

    1、自制的51單片機(jī)最小系統(tǒng)板。 ? ?2、加入了一個7805CV穩(wěn)壓模塊,使用12V直流供電,隨便找了個電源適配器。輸出12V,1A 3、問題:確保程序無誤,接線無誤,上電之后舵機(jī)有輕微咔咔聲,無法正確運(yùn)行?;蛘哂袝r候反復(fù)重新執(zhí)行。根據(jù)觀察判斷是單片機(jī)運(yùn)行幾條指令之后就

    2024年02月14日
    瀏覽(31)
  • 基于STM32 SG90 9g舵機(jī)控制

    基于STM32 SG90 9g舵機(jī)控制

    產(chǎn)品參數(shù) 名稱:9克舵機(jī)180度 尺寸:23mm X 12.2mm X 29mm 重量:9克 扭矩:1.5kg/cm 工作電壓:4.2 - 6V 溫度范圍:0 - 55℃ 運(yùn)行速度:0.3s/60℃ 死帶寬:10ms 舵機(jī)有三條線定義: 暗灰:GND 紅色:VCC 4.8V - 7.2V 橙黃線:脈沖輸入 在機(jī)器人機(jī)電控制系統(tǒng)中,舵機(jī)控制效果是性能的重要影響

    2024年02月14日
    瀏覽(21)
  • STM32---SG90舵機(jī)控制(HAL庫,含源碼)

    STM32---SG90舵機(jī)控制(HAL庫,含源碼)

    寫在前面: 在嵌入式的項(xiàng)目中,舵機(jī)是一個十分常見的元器件模塊,其主要的功能是實(shí)現(xiàn)機(jī)械轉(zhuǎn)動,實(shí)質(zhì)上舵機(jī)是一個伺服的驅(qū)動器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。例如在機(jī)器人的電控制器系統(tǒng)中,飛行器設(shè)計,遙控機(jī)器人等。舵機(jī)的使用需要PWM信號

    2024年04月13日
    瀏覽(18)
  • 小白入門STM32(2)---控制SG90舵機(jī)---基礎(chǔ)工作原理詳解

    小白入門STM32(2)---控制SG90舵機(jī)---基礎(chǔ)工作原理詳解

    本人一枚軟件編程人員,有一定C語言基礎(chǔ),目前自學(xué)STM32單片機(jī),寫下此篇一鞏固所學(xué)二交流分享。 按照慣例,先介紹理論再實(shí)戰(zhàn)上手,穿插習(xí)題,最后給出我的愚見。 SG90屬于一種舵機(jī),最適合小白入門,可直接由單片機(jī)驅(qū)動。另外,單片機(jī)中給我們封裝了很多東西,所以

    2023年04月10日
    瀏覽(19)
  • 單片機(jī)PWM舵機(jī)控制

    單片機(jī)PWM舵機(jī)控制

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 ? 文章目錄 一、PWM是什么? 二、如何控制舵機(jī)? ? ? PWM,英文名Pulse Width Modulation,是脈沖寬度調(diào)制縮寫,它是通過對一系列脈沖的寬度進(jìn) 行調(diào)制,等效出所需要的波形(包含形狀以及幅值),對模擬

    2023年04月25日
    瀏覽(24)
  • 關(guān)于四足行走機(jī)器人步態(tài)分析STM32+SG90舵機(jī)控制

    關(guān)于四足行走機(jī)器人步態(tài)分析STM32+SG90舵機(jī)控制

    最近逛某站看了很多國賽大佬的賽車,下面評論區(qū)一堆大佬在感嘆“老師看到賽車都搖頭?!弊鳛橐粋€初入STM32坑的萌新,我在某些站上查閱了相關(guān)資料后,確定給我自己的機(jī)器人搞成四足行走(ps,其實(shí)是L298N燒了)。 目前手上的板子是C8T6,學(xué)習(xí)的視頻是江科協(xié),主要代碼

    2024年01月21日
    瀏覽(24)
  • Arduino ESP8266控制SG90舵機(jī)輸出PWM信號

    Arduino ESP8266控制SG90舵機(jī)輸出PWM信號

    舵機(jī)是一種位置(角度)伺服的驅(qū)動器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。目前在高檔遙控玩具,如航模,包括飛機(jī)模型,潛艇模型;遙控機(jī)器人中已經(jīng)使用得比較普遍。舵機(jī)是一種俗稱,其實(shí)是一種伺服馬達(dá)。 控制信號由接收機(jī)的通道進(jìn)入信號調(diào)制芯片

    2023年04月26日
    瀏覽(20)
  • 基于51單片機(jī)的舵機(jī)控制(PWM)

    基于51單片機(jī)的舵機(jī)控制(PWM)

    舵機(jī)是一種位置伺服的驅(qū)動器,常被用于遙控汽車、機(jī)器人等領(lǐng)域,結(jié)構(gòu)主要包括小型直流電機(jī)、變速齒輪組、可調(diào)電位器和控制電路板四個部分,如下圖,舵機(jī)的外部一般接有三根線,分別是黑(接地線)、紅(電源線)、棕(白或者黃,信號線)三種顏色進(jìn)行區(qū)分。 2.

    2024年02月16日
    瀏覽(21)
  • STM32F103RCT6驅(qū)動SG90舵機(jī)-完成正反轉(zhuǎn)角度控制

    STM32F103RCT6驅(qū)動SG90舵機(jī)-完成正反轉(zhuǎn)角度控制

    SG90是一種微型舵機(jī),也被稱為伺服電機(jī)。它是一種小型、低成本的直流電機(jī),通常用于模型和機(jī)器人控制等應(yīng)用中。SG90舵機(jī)可以通過電子信號來控制其精確的位置和速度。它具有體積小、重量輕、響應(yīng)快等特點(diǎn),因此在各種小型機(jī)械設(shè)備上得到了廣泛應(yīng)用。 SG90舵機(jī)通常用于

    2024年02月03日
    瀏覽(106)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包