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

畢設(shè)常用模塊之舵機介紹以及使用方法

這篇具有很好參考價值的文章主要介紹了畢設(shè)常用模塊之舵機介紹以及使用方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

舵機

舵機是一種位置伺服的驅(qū)動器,主要是由外殼、電路板、無核心馬達、齒輪與位置檢測器所構(gòu)成。其工作原理是由接收機或者單片機發(fā)出信號給舵機,其內(nèi)部有一個基準(zhǔn)電路,產(chǎn)生周期為 20ms,寬度為 1.5ms 的基準(zhǔn)信號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。經(jīng)由電路板上的 IC 判斷轉(zhuǎn)動方向,再驅(qū)動無核心馬達開始轉(zhuǎn)動,透過減速齒輪將動力傳至擺臂,同時由位置檢測器送回信號,判斷是否已經(jīng)到達定位。適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。當(dāng)電機轉(zhuǎn)速一定時,通過級聯(lián)減速齒輪帶動電位器旋轉(zhuǎn),使得電壓差為 0,電機停止轉(zhuǎn)動。一般舵機旋轉(zhuǎn)的角度范圍是 0 度到 180 度
畢設(shè)常用模塊之舵機介紹以及使用方法

控制原理

通過向舵機的信號信號線發(fā)送PWM信號來控制舵機的輸出量;

一般來說,PWM的周期以及占空比,我們是可控的,所以PWM脈沖的占空比直接決定了輸出軸的位置。

下面舉個例子;

當(dāng)我們向舵機發(fā)送脈沖寬度為1.5毫秒(ms)的信號時,舵機的輸出軸將移至中間位置(90度);

脈沖寬度為1ms時,舵機的輸出軸將移至最小的位置(0度);

脈沖寬度為2ms時,舵機的輸出軸將移至最小的位置(180度);

注意:不同類型和品牌的伺服電機之間最大位置和最小位置的角度可能會不同。許多伺服器僅旋轉(zhuǎn)約170度(或者只有90度),但寬度為1.5 ms的伺服脈沖通常會將伺服設(shè)置為中間位置(通常是指定全范圍的一半);
這里有張形象的說明
畢設(shè)常用模塊之舵機介紹以及使用方法

PWM介紹

PWM,英文名Pulse Width Modulation,是脈沖寬度調(diào)制縮寫,它是通過對一系列脈沖的寬度進行調(diào)制,等效出所需要的波形(包含形狀以及幅值),對模擬信號電平進行數(shù)字編碼,也就是說通過調(diào)節(jié)占空比的變化來調(diào)節(jié)信號、能量等的變化,占空比就是指在一個周期內(nèi),信號處于高電平的時間占據(jù)整個信號周期的百分比,例如方波的占空比就是50%.STM32 的定時器除了 TIM6 和 7。其他的定時器都可以用來產(chǎn)生 PWM 輸出。其中高級定時器 TIM1 和 TIM8 可以同時產(chǎn)生多達 7 路的 PWM 輸出。而通用定時器也能同時產(chǎn)生多達 4路的 PWM 輸出,這樣, STM32 最多可以同時產(chǎn)生 30 路 PWM 輸出!其實我們僅僅需要一個定時器的一個通道即可完成1路 PWM 輸出。

占空比說明

占空比:
是一個脈沖周期內(nèi),高電平的時間與整個周期時間的比例
單位: % (0%-100%)
表示方式:20%

周期: 一個脈沖信號的時間 1s內(nèi)測周期次數(shù)等于頻率
脈寬時間: 高電平時間
畢設(shè)常用模塊之舵機介紹以及使用方法

上圖中 脈寬時間占總周期時間的比例,就是占空比

比方說周期的時間是10ms,脈寬時間是8ms 那么低電平時間就是2ms 總的占空比 8/(8+2)= 80%

這就是占空比為80%的脈沖信號

舉例說明

畢設(shè)常用模塊之舵機介紹以及使用方法

控制總結(jié)

通過MCU輸出一個占空比可以調(diào)節(jié)的PWM波信號,這個信號的頻率是50Hz也就是說一個周期內(nèi)的時間是20ms
在這一個周期內(nèi),有0.5ms的高電平時間 舵機就是-90°,有1ms的高電平時間就是-45°,本質(zhì)上是在調(diào)節(jié)方波的占空比,占空比越大角度也越大,占空比最大是2.5/20*100%

舵機的控制就是通過一個固定的頻率,給其不同的占空比的,來控制舵機不同的轉(zhuǎn)角
舵機的頻率一般為頻率為50HZ,也就是一個20ms左右的時基脈沖,而脈沖的高電平部分一般為0.5ms-2.5ms范圍。來控制舵機不同的轉(zhuǎn)角
?
500-2500us的PWM高電平部分對應(yīng)控制180度舵機的0-180度
以180度角度伺服為例,那么對應(yīng)的控制關(guān)系是這樣的:
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;

參考代碼【基于STM32F1】

void TIM3_PWM_Init(u32 arr,u16 psc)
{  
    GPIO_InitTypeDef GPIO_InitStructure;
    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
    TIM_OCInitTypeDef  TIM_OCInitStructure;
    
 
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);    //使能定時器3時鐘
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB  | RCC_APB2Periph_AFIO, ENABLE);  //使能GPIO外設(shè)和AFIO復(fù)用功能模塊時鐘
    
    GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); //Timer3部分重映射  TIM3_CH2->PB5    
 
   //設(shè)置該引腳為復(fù)用輸出功能,輸出TIM3 CH2的PWM脈沖波形    GPIOB.5
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //TIM_CH2
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //復(fù)用推挽輸出
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIO
 
   //初始化TIM3
    TIM_TimeBaseStructure.TIM_Period = arr; //設(shè)置在下一個更新事件裝入活動的自動重裝載寄存器周期的值
    TIM_TimeBaseStructure.TIM_Prescaler =psc; //設(shè)置用來作為TIMx時鐘頻率除數(shù)的預(yù)分頻值 
    TIM_TimeBaseStructure.TIM_ClockDivision = 0; //設(shè)置時鐘分割:TDTS = Tck_tim
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上計數(shù)模式
    TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根據(jù)TIM_TimeBaseInitStruct中指定的參數(shù)初始化TIMx的時間基數(shù)單位
    
    //初始化TIM3 Channel2 PWM模式     
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //選擇定時器模式:TIM脈沖寬度調(diào)制模式2
     TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //輸出極性:TIM輸出比較極性高
    TIM_OC2Init(TIM3, &TIM_OCInitStructure);  //根據(jù)T指定的參數(shù)初始化外設(shè)TIM3 OC2
 
    TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);  //使能TIM3在CCR2上的預(yù)裝載寄存器
 
    TIM_Cmd(TIM3, ENABLE);  //使能TIM3
    
}

代碼說明

頻率: Fpwm = 72M / ((arr+1)*(psc+1))(單位:Hz)
占空比: duty circle = TIM3->CCR1 / arr(單位:%)
文章來源地址http://www.zghlxwxcb.cn/news/detail-462084.html

到了這里,關(guān)于畢設(shè)常用模塊之舵機介紹以及使用方法的文章就介紹完了。如果您還想了解更多內(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īng)查實,立即刪除!

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

相關(guān)文章

  • Python random模塊(獲取隨機數(shù))常用方法和使用例子

    Python random模塊(獲取隨機數(shù))常用方法和使用例子

    嗨嘍,大家好呀~這里是愛看美女的茜茜吶 random.random random.random()用于生成一個0到1的隨機符點數(shù): 0 = n 1.0 random.uniform random.uniform(a, b),用于生成一個指定范圍內(nèi)的隨機符點數(shù),兩個參數(shù)其中一個是上限,一個是下限。 如果a b,則生成的隨機數(shù)n: a = n = b。如果 a b, 則 b = n = a

    2024年01月24日
    瀏覽(53)
  • git的常用命令以及在可視化工具中的使用方法

    git的常用命令以及在可視化工具中的使用方法

    想當(dāng)初在剛進公司的時候,對于git的使用非常不熟悉,特別是分支的概念,導(dǎo)致開發(fā)效率變低,故通過此文章,總結(jié)git的使用經(jīng)驗 2.1 git clone [url]: 克隆遠(yuǎn)程倉庫到本地 剛開始時,都需要將遠(yuǎn)程的代碼拉到本地,這里一般是去對應(yīng)的代碼托管平臺復(fù)制項目的鏈接,鏈接有ssh和

    2024年01月16日
    瀏覽(94)
  • String類的學(xué)習(xí)筆記(上):介紹String類及其常用方法的使用

    String類的學(xué)習(xí)筆記(上):介紹String類及其常用方法的使用

    本文介紹了Java中用來描述操作字符串的String類,和其一些常用的基本操作方法,字符串的創(chuàng)建輸出,字符串對象的比較,字符串查找,字符串的轉(zhuǎn)化,字符串的替換,字符串拆分,字符串截取,和大小寫轉(zhuǎn)換,去除左右空格,子字符串包含,學(xué)會使用這些方法,能更方便的使用操作字符串~ 前言

    2023年04月23日
    瀏覽(35)
  • SOC系統(tǒng)經(jīng)典IP介紹以及使用方法說明之dw_i2c

    SOC系統(tǒng)經(jīng)典IP介紹以及使用方法說明之dw_i2c

    第三章 DW_i2c功能及使用流程介紹 文章目錄 前言 一、功能介紹 1.1 i2c寫操作: 1.1.1 詳細(xì)flow介紹 1.2 i2c讀操作: 1.2.1 詳細(xì)flow介紹 二、軟件流程介紹 2.1 定義WDT中斷服務(wù)子程序 2.2 定義main函數(shù) 三、總結(jié) ? ? ?按照i2c的協(xié)議,i2c的時鐘由master方提供,master可以向slave發(fā)送數(shù)據(jù),也

    2024年02月03日
    瀏覽(26)
  • 【APP滲透測試】Android APK常用測試工具(Drozer)安裝及使用方法介紹

    【APP滲透測試】Android APK常用測試工具(Drozer)安裝及使用方法介紹

    本篇文章主要介紹 Drozer Android測試工具的安裝以及簡單使用,后續(xù)會持續(xù)更新更多使用方法。 Drozer 是 MWR Labs 開發(fā)的一款A(yù)ndroid安全測試框架。是目前最好的Android安全測試工具之一。其官方文檔說道: Drozer允許你一個普通Android應(yīng)用的身份與其他應(yīng)用和操作系統(tǒng)交互。 在Web世界

    2024年02月16日
    瀏覽(30)
  • USB轉(zhuǎn)串口芯片CH340系列及CH340模塊使用方法(CH340驅(qū)動,接線,串口下載詳細(xì)介紹)

    USB轉(zhuǎn)串口芯片CH340系列及CH340模塊使用方法(CH340驅(qū)動,接線,串口下載詳細(xì)介紹)

    我們?yōu)槭裁匆玫紺H340驅(qū)動呢?CH340驅(qū)動就是USB轉(zhuǎn)串口的驅(qū)動的一種,因為我們現(xiàn)在的電腦上,已經(jīng)不存在串口,所以我們一般使用USB轉(zhuǎn)串口芯片,目的只有一個,把電腦的USB口映射為串口用。常用的USB轉(zhuǎn)串口芯片有CH340、CP2102、PL2303、FT232等。芯片是CH340的均可以使用。安裝

    2023年04月08日
    瀏覽(95)
  • Java中TreeSet的基本介紹,細(xì)節(jié)討論,使用注意事項,常用方法,底層源碼分析

    TreeSet 是 Java 中的一個有序集合實現(xiàn),它基于紅黑樹數(shù)據(jù)結(jié)構(gòu)來存儲元素, 可以保持元素的自然順序(默認(rèn)情況下升序)或者根據(jù)自定義比較器來進行排序 。下面是關(guān)于 TreeSet 的基本介紹、細(xì)節(jié)討論、使用注意事項、常用方法以及一些底層實現(xiàn)細(xì)節(jié)。 基本介紹: TreeSet 是

    2024年02月11日
    瀏覽(35)
  • 一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——26. 舵機的使用方法

    一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——26. 舵機的使用方法

    摘要:本文介紹舵機的使用方法 在前面介紹TT馬達的時候,提到過舵機。舵機是一種精密控制類電動機,也是電動機的一種,它的主要作用是旋轉(zhuǎn)到某一指定位置,在機器人領(lǐng)域使用得相當(dāng)?shù)膹V泛,用來實現(xiàn)各種機械臂和機器人關(guān)節(jié)的運動。 下面就來了解一下舵機的工作原理

    2024年02月21日
    瀏覽(20)
  • Optional常用方法實例, 源碼挺簡單的,重要的是option 與 stream 以及l(fā)ambda 的連貫使用

    ?empty(): ?of() // 非null 就繼續(xù)執(zhí)行 否則拋異常 ? ofNullable () ?get() //非null就get 否則異常 ?//lambada // 根據(jù)是否為NULL進行操作 ?// filter進行以上對下進行輸入 如果opt是一集合的話 , 無法進行篩選 , 只能使用集合本身進行filter 取到map orElseThrow() //是空就拋出自定義異常

    2024年02月05日
    瀏覽(18)
  • python中的os.mkdir和os.makedirs的使用區(qū)別,以及如何查看某個模塊中的某些字母開頭的屬性方法

    os.mkdir(dir_name) :用于 新建文件夾 ,當(dāng)要新建的文件夾已經(jīng)存在的時候,就會報錯: FileExistsError: [Errno 17] File exists: 因此,我們一般在新建一個文件夾的時候,會和 os.path.exists() 集合使用,如下: 1、判斷一個 文件夾是否存在 ,如果不存在就新建它,如果已經(jīng)存在就跳過:

    2023年04月08日
    瀏覽(40)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包