舵機原理圖解析

一、舵機的基本原理

舵機是一種能夠通過控制電子信號來控制機器人或其他機械的角度和角速度的電機。舵機電路核心由一個電機、一組位置傳感器和一個控制電路組成。這個組合使得舵機變得非常精確。舵機的控制信號是通過PWM(脈寬調製)來控制的, 即通過改變脈衝寬度的長度。而PWM的周期則由控制電路中的晶振來控制。

當接收到指令後,控制電路會將信號傳送給電機。電機會進行轉動,並且反饋給不斷變化的電壓值。位置傳感器感受到這個變化並且傳遞給控制電路。控制電路會將傳感器的反饋和目標脈衝信號進行比較處理,確保電機轉動到目標角度並且停止。

下面是一個典型的舵機的原理圖:

        -----------------------------
        |     |      MOTOR         |
        |     |         |          |
        |     |         V          |
        |     |       [M1]         |
        |     |         A          |
        |     |         |          |
        |     |         V          |
        |     |    |-[POT1]-|      |
        |     |----|Signal  |      |
        |     |    |-[POT2]-|      |
        |     |         |     +----+-- OUT    <------ Control Signal
        |     |         |         |
        -----------------------------

舵機的電路圖非常簡單。首先,舵機需要一個電源來控制電機和控制電路。電機由M1代表,它以正向電流來轉動或者以反向電流來迴轉。我們並不需要知道電機是如何驅動的,但是我們需要知道電機轉動的時候,我們需要使用位置反饋(POT1和POT2)來檢測位置變化。信號輸出的地方由OUT標識

二、如何控制舵機

控制舵機需要幾個關鍵因素。第一個是PWM頻率。第二個是占空比,也就是脈衝的寬度。最後,還需考慮單個特定舵機的最小響應時間。

對於各種舵機,都有一個標準的PWM頻率。雖然有關5Hz至400Hz的頻率都可以被接受,但是實際上,500Hz被視為最適宜的PWM頻率。實際上,使用PWM頻率太低會降低舵機的響應速度,而使用PWM太高也有些浪費。所以使用500Hz非常合適。

控制舵機的第二個關鍵因素是脈衝的寬度。這通常在0.5ms至2.5ms之間變化,但是這取決於特定的舵機。故而,控制端(PIN)需要發送一個PWM脈衝,其寬度表示一段特定的角度。例如:1.5ms的脈衝寬度對應着舵機的中心位置。如果你要讓舵機轉動至最大寬度,它需要被帶到其最大值。在達到最大值時,要停止發送脈衝來防止毀壞電機。

名義上,這個脈衝可以變化或者縮短至任何值。但是,為了簡單起見,我們通常將舵機控制脈衝的寬度設置在900-2100微秒(μs)之間。

三、如何控制SG90舵機

現在我們已經了解了舵機的原理和如何控制它。讓我們來看看如何控制一種具體的舵機。

SG90是一種非常受歡迎的舵機,因為它具有良好的響應速度和較低的功耗,同時價格便宜。在此處,我們將通過Arduino Uno控制此舵機。

在此之前,你需要無損地連接你的設備,如下圖所示:

             _____________________
            | GND        VCC   |
            |---.        .----| PWM    <---- Arduino Uno board
            |   |        |    |
            |   '-[ Servo ]-'   |
            |                   |
            '-------------------'

接下來,讓我們來看看如何驅動這個舵機。我們需要簡單的代碼進行控制。我們可以使用內置的 Servo 庫來初始化和控制舵機。

#include 

Servo myServo;

void setup() {
  // 初始化舵機對象
  myServo.attach(9);
}

void loop() {
  // 轉動舵機至角度0
  myServo.write(0);
  delay(1000);
  
  // 轉動舵機至角度90
  myServo.write(90);
  delay(1000);

  // 轉動舵機至角度180
  myServo.write(180);
  delay(1000);
}

在這個示例程序中,我們在頻道9上初始化了 myServo 對象。然後,我們在自定義函數中使用 write() 函數來轉動舵機。在每個轉動過程中,我們會停留1秒鐘,然後再繼續。

四、如何控制MG996R舵機

與SG90類似,MG996R也是一種廣泛使用的舵機。在此之前,你還需連接你的設備,如下圖所示:

             _____________________
            | GND        VCC   |
            |---.        .----| PWM    <---- Arduino Uno board
            |   |        |    |
            |   '-[ Servo ]-'   |
            |                   |
            '-------------------'

我們還是要使用 Servo 庫來初始化和控制舵機。不同之處在於其頻率是50 Hz,輸入電壓為6V-7.2V,並且它需要更長的占空比,通常在1000us至2000us之間變化。下面是該舵機的 Arduino 代碼:

#include 

Servo myServo;

void setup() {
  // 初始化舵機對象
  myServo.attach(9);
}

void loop() {
  // 轉動舵機至角度0
  myServo.writeMicroseconds(1000);
  delay(1000);
  
  // 轉動舵機至角度90
  myServo.writeMicroseconds(1500);
  delay(1000);

  // 轉動舵機至角度180
  myServo.writeMicroseconds(2000);
  delay(1000);
}

在這個示例程序中,我們使用了 writeMicroseconds() 函數,因為 MG996R 舵機的占空比在1000us至2000us之間變化。使用此函數,我們可以精確地控制占空比和舵機轉動的位置。

五、小結

通過以上分析,我們可以了解舵機的原理和如何控制它,包括SG90和 MG996R。使用 Servo 庫,我們可以方便地初始化和控制舵機。如有更複雜的任務和應用,請根據需要進行進一步定製和優化。

原創文章,作者:JLKU,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/136038.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
JLKU的頭像JLKU
上一篇 2024-10-04 00:15
下一篇 2024-10-04 00:15

相關推薦

  • l9110風扇傳感器模塊原理圖解析

    本文將從原理圖概述、硬件特性、軟件實現等多個方面對l9110風扇傳感器模塊進行詳細解析,並給出對應代碼實例。 一、原理圖概述 l9110風扇傳感器模塊主要由驅動芯片l9110、電位…

    編程 2025-04-28
  • Qubes OS原理圖解析

    Qubes OS是一種安全的操作系統,旨在提供強大的安全、隔離和輕鬆管理多個虛擬機的能力。這篇文章將討論Qubes OS的原理圖,並從多個方面進行詳細闡述。 一、架構綜述 Qube…

    編程 2025-04-27
  • OpenMV原理圖詳解

    一、引言 OpenMV是一個基於ARM Cortex-M7的低成本、高性能、易用的開源機器視覺平台,該平台旨在使得物聯網及機器人等硬件設備“看得更遠、更清楚、更深遠”。本文將從硬件…

    編程 2025-04-25
  • 使用STM32控制舵機

    一、了解舵機 舵機是一種可以精確控制角度的電機,常用於機器人、模型、自動門和遙控車等領域。舵機通常有三個線纜:電源、地線和信號線。通過改變信號線上的脈衝寬度,可以改變舵機轉動的角度…

    編程 2025-04-13
  • MG90S舵機參數詳解

    一、物理參數 MG90S舵機是一款微型舵機,其體積小,重量輕,方便安裝,適合各種小型機器人、模型等領域的應用。 下面是MG90S舵機的一些物理參數: – 重量:9g – 尺寸:22…

    編程 2025-01-16
  • AD原理圖怎麼生成PDF

    一、AD原理圖怎麼生成圖片 AD是一款廣泛應用於電路設計的軟件,使用AD可以方便快捷地生成原理圖並進行仿真,同時也能夠很方便地將原理圖導出為圖片,具體步驟如下: 1、首先打開需要導…

    編程 2024-12-27
  • c語言單片機數據傳送,單片機數據傳送原理圖

    本文目錄一覽: 1、單片機串口發送數據用c語言編寫,放在主函數里就沒問題,單提出來寫成子函數,發送數據就不完整? 2、單片機程序:外部RAM與內部RAM數據傳送程序(彙編、和C語言…

    編程 2024-12-24
  • 詳解STM32最小開發板原理圖

    一、STM32最小開發板原理圖介紹 STM32最小開發板是一款小巧、便捷的開發板,它使用STM32系列單片機作為主控制器,並提供了一些通用的外設器件,如晶振、LED燈、按鍵等,用於…

    編程 2024-12-24
  • PADS原理圖:從入門到精通

    一、Pads原理圖是什麼 Pads原理圖軟件是一種電子繪圖軟件,用於設計PCB(Printed Circuit Board)印刷電路板,由美國PADS Software Inc.公…

    編程 2024-12-12
  • 安寧無閥濾池原理,無閥濾池原理圖

    本文目錄一覽: 1、無閥濾池的工作原理? 2、重力無閥過濾器的工作原理是什麼啊? 3、火力發電廠中無筏濾池、灰水池、除灰水泵房的功能是什麼?安裝什麼設備??工作原理是怎樣的?? 4…

    編程 2024-12-02

發表回復

登錄後才能評論