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

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

這篇具有很好參考價值的文章主要介紹了小白入門STM32(2)---控制SG90舵機---基礎(chǔ)工作原理詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

序言

本人一枚軟件編程人員,有一定C語言基礎(chǔ),目前自學(xué)STM32單片機,寫下此篇一鞏固所學(xué)二交流分享。

按照慣例,先介紹理論再實戰(zhàn)上手,穿插習(xí)題,最后給出我的愚見。

SG90屬于一種舵機,最適合小白入門,可直接由單片機驅(qū)動。另外,單片機中給我們封裝了很多東西,所以有些地方,讀者只要記住就好,不理解的地方,不要尋根究底,你就默認(rèn)單片機底層給你實現(xiàn)了某項功能就好,不用在意其實現(xiàn)基礎(chǔ)細(xì)節(jié)原理。

這篇理論講的很淺顯,是為了讓大家容易看懂。

一、基礎(chǔ)理論

1.1 舵機控制原理–PWM

舵機一般可以再0-180度或0-360度轉(zhuǎn)動任意角度,經(jīng)常用于小車小船轉(zhuǎn)向控制和機械臂的關(guān)節(jié)等。舵機的轉(zhuǎn)動角度范圍不是固定的,請購買時問問商家,到底是哪個范圍的。實際使用中,我們對舵機有兩個基本需求:

  1. 舵機轉(zhuǎn)動一定角度。
  2. 舵機轉(zhuǎn)動時,控制者要求舵機轉(zhuǎn)到一個新的角度。

機器如何給舵機發(fā)送其轉(zhuǎn)動角度呢?首先,要低成本,信號線要少。其次,要滿足任意角度和中途打斷。設(shè)計者推出了一個簡單的方法:用一個時長為20ms的信號去控制舵機,信號的前一段為高電平,持續(xù)時間0.5ms到2.5ms,代表轉(zhuǎn)動角度0-180或者360度,后半段為低電平,這就是PWM信號,具體如下圖:
小白入門STM32(2)---控制SG90舵機---基礎(chǔ)工作原理詳解
容易看出來,PWM信號利用前段為高電平持續(xù)時間控制旋轉(zhuǎn)角度,本質(zhì)用占空比控制了旋轉(zhuǎn)角度。
運轉(zhuǎn)時,舵機轉(zhuǎn)到你指定的角度需要一定的時間,轉(zhuǎn)動的角度越大,需要的時間越久,所以你可能需要等待一定的時間。如果你剛剛給舵機發(fā)送指令轉(zhuǎn)到180度,緊接著又發(fā)送指令轉(zhuǎn)到90度,舵機會不轉(zhuǎn)到180度再轉(zhuǎn)到90度,而是在接受到信號時直接在當(dāng)前的角度直接轉(zhuǎn)到90度去。

習(xí)題

習(xí)題110. 如果2.5ms為90度,那么36度的PWM信號是高電平時間長度是?
習(xí)題111. 為什么是PWM控制舵機,有沒有其他的方法?
習(xí)題112. PWM信號屬于串行還是并行通信?全工還是單工?為什么要這么設(shè)計?
習(xí)題113. PWM信號長度為20ms,為什么一般只用前2.5ms?

1.2 定時器

為什么要講解定時器,要用它去產(chǎn)生PWM信號。

1.2.1 基礎(chǔ)定時器

定時器,顧名思義,按照定下鬧鐘到了某個時刻做某件事情。比如,你定下鬧鐘早上6點起床跑步,或者每隔半個小時喝一次水。你也可以給機器制作一個鬧鐘,每隔半秒二極管發(fā)光或者熄滅,或者每隔4秒燈亮起來再過4秒燈熄滅。
為了達(dá)成“每隔4秒二極管亮起來再過4秒二極管熄滅”,咱們構(gòu)造一套定時器系統(tǒng),它也許很奇怪,設(shè)計的有些復(fù)雜,但是還請你壓制疑問,跟我一起把它造出來。

  1. 咱們構(gòu)造一個時鐘裝置,每過20ms,它響一次,也就是它將1秒切成50份,每份長20ms。(為什么要造這么一個時鐘呢,這是因為單片機的時鐘就是這種時鐘,將1秒切成n份)
  2. 為了能夠?qū)崿F(xiàn)間隔4秒,咱們再做一個循環(huán)計數(shù)裝置:每當(dāng)時鐘響1次,它的數(shù)值加一,但是智商有限,只知道0-199,到了199后再加一,數(shù)值歸為0。
  3. 最后做一個開關(guān)裝置,當(dāng)計數(shù)裝置數(shù)字為199時開關(guān)就反轉(zhuǎn)一次,燈亮或者熄滅。
    動畫效果如下:
    小白入門STM32(2)---控制SG90舵機---基礎(chǔ)工作原理詳解

在上述的過程中,我們就利用制作了一個套裝置,其中時鐘是現(xiàn)實世界的時間源,循環(huán)計數(shù)裝置提供實際需要的循環(huán)固定間隔,它們兩個組成一個完整的簡陋定時器,與單片機的基礎(chǔ)定時器基本功能一致,下面正式介紹他們。

時鐘裝置

時鐘裝置:一般是STM32單片機的系統(tǒng)時鐘,用變量sys_tck表示,頻率72MHz,即將1秒分為7200萬份,顯然太細(xì),頻率太高了,需要降低頻率,將原來的頻率切分為原來的n分之一,即 72 , 000 , 000 n \frac{72,000,000}{n} n72,000,000?,術(shù)語叫做分頻。如果采用720分頻,即將原來72M頻率除以720,即0.1MHz,每份約0.01ms。STM32單片機允許的最大分頻數(shù)為65536,其為uint16類型數(shù)字,這個分頻數(shù)其實是一個寄存器。

循環(huán)計數(shù)器

循環(huán)計數(shù)器:由一些寄存器構(gòu)成。最重要的兩個:

  1. 計數(shù)寄存器CK_CNT,可以存儲一個uint16數(shù)字,時鐘前進(jìn)一下,其數(shù)值自動加一或減一。
  2. 自動重載寄存器ARR,當(dāng)CK_CNT大于ARR時,CK_CNT會自動變化,重新循環(huán)計數(shù)。如果你會設(shè)置中斷的話,當(dāng)CK_CNT>ARR時,會觸發(fā)一個中斷。

循環(huán)計數(shù)器有三種模式:

模式名 解釋 圖像表示
向上計數(shù) 計數(shù)是自動加一,CK_CNT從0增長到ARR 小白入門STM32(2)---控制SG90舵機---基礎(chǔ)工作原理詳解
向下計數(shù) 計數(shù)是自動減一,CK_CNT從ARR減小到0 小白入門STM32(2)---控制SG90舵機---基礎(chǔ)工作原理詳解
中心對齊 計數(shù)是先自動加一,再自動減一,CK_CNT先從0加到ARR然后再減到0 小白入門STM32(2)---控制SG90舵機---基礎(chǔ)工作原理詳解

1.2.2 比較定時器

只有基礎(chǔ)時鐘是無法產(chǎn)生PWM信號的,因為它只能提供循環(huán)固定間隔,不能將間隔分為前半段和后半段,進(jìn)而產(chǎn)生PWM。為了做到這點,需要給循環(huán)計數(shù)器加一個比較數(shù)字CCR,當(dāng)計數(shù)器的值更新時,與CCR比較,并對外輸出比較的結(jié)果,以方便做其他動作。

接上面燈泡明亮的例子,我們改成燈泡在一秒亮三秒滅的模式。我們只需要在上述提到的理想裝置中再加一個比較數(shù)字就好:
小白入門STM32(2)---控制SG90舵機---基礎(chǔ)工作原理詳解
CCR在STM32中是叫做比較寄存器,是循環(huán)計數(shù)器的第三個重要的寄存器。是STM32高級定時器才有的功能。

習(xí)題

習(xí)題121. 定時器的時鐘裝置,循環(huán)計數(shù)器各發(fā)揮了什么作用,請談?wù)勀睦斫猓?br> 習(xí)題122. 循環(huán)計數(shù)器有哪些重要參數(shù)要設(shè)置?
習(xí)題123. STM32時鐘頻率為72MHz,分頻數(shù)為uint16,CK_CNT為uint16,則最大循環(huán)時間間隔為多久時間?最小呢?
習(xí)題124. 如果要產(chǎn)生一個旋轉(zhuǎn)360度的PWM信號,請設(shè)置時鐘裝置和循環(huán)計數(shù)器的寄存器值?

二、實戰(zhàn)上手

STM32已經(jīng)為我們在硬件上封裝好了上述的提到的:時鐘裝置、循環(huán)計數(shù)器和對外輸出裝置,以及計數(shù)器的自動比較等功能,你我現(xiàn)階段無需關(guān)心其細(xì)節(jié)。我們只需要對這些東西進(jìn)行相關(guān)設(shè)置和接線就好。

2.1 設(shè)置定時器和單片機接線

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

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

習(xí)題

習(xí)題211: 為什么Counter Period是這里為1999,而不是2000?

2.2 代碼

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

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

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
	TIM1->CCR1=50;
	HAL_Delay(1000);

	TIM1->CCR1=150;
	HAL_Delay(1000);
  }
  /* USER CODE END 3 */
}

三、習(xí)題答案

習(xí)題110. 如果2.5ms為90度,那么36度的PWM信號是高電平時間長度是?

  • PWM信號最短0.5ms(對應(yīng)0度),最長2.5ms(對應(yīng)90度),所以:(2.5 - 0.5) / 90 * 36 + 0.5 = 1.3ms。

習(xí)題111. 為什么是PWM控制舵機,有沒有其他的方法?

  • PWM將用時間長度表示轉(zhuǎn)動角度,在硬件支持的情況下,該協(xié)議能夠滿足不同精度的細(xì)分轉(zhuǎn)動角度。只用了一根導(dǎo)線來傳輸信號,相對價格便宜,好用。
  • 可能有。

習(xí)題112. PWM信號屬于串行還是并行通信?全工還是單工?為什么要這么設(shè)計?

  • 一根導(dǎo)線,所以是串行。舵機是信息接收端,不會發(fā)信息給另一端,所以是單工。
  • 很顯然,一根導(dǎo)線很便宜,PWM機制很可靠,執(zhí)行端不用發(fā)信息給信號源端。

習(xí)題113. PWM信號長度為20ms,為什么一般只用前2.5ms?

  • 2.5ms為20ms的八分之一,利用率確實不高,我不知道確切原因。我的猜想是:空余出來的17.5ms,足夠讓執(zhí)行端區(qū)分出線路上的雜音信號,并準(zhǔn)備好接收下一次的pwm信號。

習(xí)題121. 定時器的時鐘裝置,循環(huán)計數(shù)器各發(fā)揮了什么作用,請談?wù)勀睦斫猓?/p>

  • 定時器一般會循環(huán)執(zhí)行某一操作。時鐘裝置提供了現(xiàn)實世界中的時間粒度,循環(huán)計數(shù)器記錄一次循環(huán)中已經(jīng)流失的時間以方便在特定的時刻,執(zhí)行特定的操作。

習(xí)題122. 循環(huán)計數(shù)器有哪些重要參數(shù)要設(shè)置?

  • 循環(huán)周期長度,即一個輪回的長度。

習(xí)題123. STM32時鐘頻率為72MHz,分頻數(shù)為uint16,CK_CNT為uint16,則最大循環(huán)時間間隔為多久時間?最小呢?

  • uint16的值為0~65536,則分頻后的時鐘頻率為 72 65536 \frac{72}{65536} 6553672? ~ 72 MHZ,即時鐘間隔范圍為1.38e-07~0.00910秒。
  • CK_CNT為uint16,則ARR為1~65536。
  • 最小循環(huán)時間間隔為1.38e-07s x 1 = 1.38e-07s。最小循環(huán)時間間隔為65536s*0.00910 = 596.3776s。

習(xí)題124. 如果要產(chǎn)生一個旋轉(zhuǎn)360度的PWM信號,請設(shè)置時鐘裝置和循環(huán)計數(shù)器的寄存器值?文章來源地址http://www.zghlxwxcb.cn/news/detail-409206.html

  • 360度對應(yīng)時間為2.5ms,

到了這里,關(guān)于小白入門STM32(2)---控制SG90舵機---基礎(chǔ)工作原理詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

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

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

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

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

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

    2024年02月03日
    瀏覽(106)
  • 【STM32】 SG90舵機

    【STM32】 SG90舵機

    目錄 一:介紹 二:傳感器參數(shù) 三:接口說明 四:SG90舵機模塊接口原理圖 五:SG90舵機模塊實物圖 舵機是一種位置(角度)伺服的驅(qū)動器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。 目前,在高檔遙控玩具,如飛機、潛艇模型,遙控機器人中已經(jīng)得到了普遍應(yīng)用

    2024年02月06日
    瀏覽(17)
  • STM32驅(qū)動SG90舵機

    STM32驅(qū)動SG90舵機

    SG90是一種小型伺服電機,通常用于模型制作和小型機械應(yīng)用中: 問題 答案 SG90的工作電壓是多少 SG90的工作電壓通常為3V至7.2V SG90最大扭矩是多少 SG90的最大扭矩約為1.5kg/cm SG90的工作溫度范圍是多少 SG90的工作溫度范圍通常為0°C至55°C SG90的控制方式是什么 SG90的控制方式通常為

    2024年02月12日
    瀏覽(20)
  • STM32外設(shè)系列—sg90(舵機)

    STM32外設(shè)系列—sg90(舵機)

    ?? 文章作者:二土電子 ?? 關(guān)注文末公眾號獲取其他資料和工程文件! ?? 期待大家一起學(xué)習(xí)交流! 首先介紹說一下什么是舵機。舵機是一種位置(角度)伺服的驅(qū)動器。適用于一些需要角度不斷變化的,可以保持的控制系統(tǒng)。sg90就是舵機的一種。 舵機的工作原理比較簡

    2024年02月15日
    瀏覽(15)
  • STM32+SG90舵機詳解(詳細(xì))

    STM32+SG90舵機詳解(詳細(xì))

    上一次使用舵機只是草草了解,只大概知道是pwm控制的,這次又使用到了舵機,本以為復(fù)制上次代碼就可以調(diào)試成功,沒想到卻弄了很久。 我使用的是STM32f103c8t6,用的是定時器4。這個f1板子的定時器各個通道io口如下圖所示: 在開始之前我們要了解控制舵機需要的一個周期

    2024年02月08日
    瀏覽(17)
  • SG90舵機的使用--STM32F103C8T6

    SG90舵機的使用--STM32F103C8T6

    SG90帶有一個3P的接頭 根據(jù)顏色分為 黃線(信號線) 紅線(電源線) 棕色 (地線) 舵機的 工作電壓 在 4.8V-6V ,接在STM32系統(tǒng)板上驅(qū)動不了,所以需要接電源模塊單獨的5V供電,我使用的是如圖所示的電源模塊 注: 如果STM32系統(tǒng)板供電和舵機供電不為同一模塊,則需要共地,

    2024年02月03日
    瀏覽(21)
  • 搖桿按鍵+SG90 實現(xiàn)舵機云臺(STM32F103C8T6)

    搖桿按鍵+SG90 實現(xiàn)舵機云臺(STM32F103C8T6)

    STM32F103C8T6最小系統(tǒng)板*1 SG90舵機(180°)*2 搖桿按鍵*1 舵機支架*1 面包板*1(非必須) 杜邦線若干 類似這種的支架,不過需要自己裁切嵌入的部分 代碼很簡單,主要使用ADC雙通道讀取兩個電位器的值(實際上就是電壓),通過獲取到的值的范圍來確定上下左右,從而來改變兩

    2024年02月14日
    瀏覽(21)
  • 單片機——SG90舵機工作原理

    單片機——SG90舵機工作原理

    前言: 舵機控制的另一個專業(yè)名字叫伺服控制。 經(jīng)過百度,伺服”—詞源于希臘語“奴隸”的意思。人們想把“伺服機構(gòu)”當(dāng)個得心應(yīng)手的馴服工具,服從控制信號的要求而動作。在訊號來到之前,轉(zhuǎn)子靜止不動;訊號來到之后,轉(zhuǎn)子立即轉(zhuǎn)動;當(dāng)訊號消失,轉(zhuǎn)子能即時自

    2023年04月08日
    瀏覽(22)
  • SG90舵機的原理和控制方式

    SG90舵機的原理和控制方式

    前言 做過機器人、智能車或者玩航模的朋友應(yīng)該對舵機不會陌生,這種舵機也是很常用的。 舵機只是我們通俗的叫法,它的本質(zhì)是一個 伺服電機 ,也可以叫做位置(角度)伺服驅(qū)動器。一般被應(yīng)用在那些需要控制角度變化的系統(tǒng)中,可以方便的實現(xiàn)轉(zhuǎn)動任意的角度,實現(xiàn)控制

    2023年04月17日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包