當前位置:
首頁 > 最新 > 如何使用Arduino開發板控制無刷直流電機

如何使用Arduino開發板控制無刷直流電機

製作一些小物件,並且讓它們按照自己想要的方式,這一直是一項非常有趣的事情。在達成一致意見的同時,製作飛行器會讓業餘愛好者顯得不是那麼很自信。這裡,我所說的是滑翔機、直升機、飛機和多功能運輸機。今天,由於在線提供社區的支持,很容易自己製作一個類似的產品。在這些飛行器中,它們都使用BLDC電機,那麼什麼是BLDC電機?為什麼我們需要它來飛行?有什麼特別之處呢?如何購買合適的電機並與控制器連接?什麼是ESC,我們為什麼要使用它?如果您有這些問題,那麼本篇文章可以解決您所有的疑惑。

因此,在本篇文章中,我們將使用Arduino開發板和20A電子速度控制器(ESC)控制A2212 / 1T無感BLDC外轉子電機(通常用於製作無人機)的速度。

所需的材料

● A2212 / 13T BLDC電機

● ESC控制器(20A)

● 電源(12V 20A)

● Arduino開發板

● 電位器

了解BLDC電機

BLDC電機表示無刷直流電機,由於其平穩運行,常用於吊扇和電動汽車。與其他電機不同,BLDC電機引出來三根導線,每根導線形成自己的相位,因此對於我們來說,它是一個三相電機。

是的,雖然BLDC電機被認為是直流電機,它們工作在脈衝波模式下。電子速度控制器(ESC)將來自電池的直流電壓轉換為脈衝,並將其提供給電機的3根電線。在任何給定時間,只有兩相電動機將被供電,因此電流通過一相進入並通過另一相。在此過程中,電動機內的線圈通電,因此轉子上的磁鐵自身與通電線圈對齊。接下來的兩根導線由ESC通電,繼續該過程使電機旋轉。電動機的速度取決於線圈通電的速度,電動機的方向取決於線圈通電的順序。我們將在本文後面詳細了解ESC。

有許多類型的BLDC電機可供選擇,讓我們來看看最常見的分類。

● 內轉子和外轉子BLDC電機:內轉子BLDC電機的工作方式與其他電機相同。也就是說,電機內部的軸旋轉,而外殼保持固定。外轉子BLDC電機正好相反,電機的外殼隨著軸一起旋轉,而線圈內部保持固定。外轉子電機在電動自行車中是非常有優勢的,因為外殼(旋轉的外殼)本身被製成輪胎的輪輞,因此避免了聯接機構。此外,外轉子電機往往比內轉子電機提供更大的扭矩,因此它成為EV和無人機的理想選擇。我們在這裡使用的電機也是外轉子電機。

注意:還有另一種電機,稱為無芯BLDC電機,也用於袖珍無人機,它們的工作原理不同,本篇文章不對其進行介紹。

● 有感測器和無感測器BLDC電機:對於無需任何加速度即可旋轉的BLDC電機,需要一個反饋信號。也就是說,ESC必須知道轉子中磁鐵的位置和極點,以便據此激勵定子。這些信息可以通過兩種方式獲得:一種是將霍爾感測器放在電機內。霍爾感測器將檢測磁鐵並將信息發送到ESC,這種類型的電機稱為Sensord BLDC電機,用於電動車輛。第二種方法是通過使用線圈在磁鐵交叉時產生的反電動勢,這不需要額外的硬體或電線,相線本身用作反饋來檢查反電動勢。我們的電機使用的是這種方法,常用於無人機和其他飛行項目。

為什麼無人機和其他多功能直升機使用BLDC電機?

從四輪直升機到直升機以及滑翔機,有很多類型的無人機,所有這些飛行器都有一個共同的硬體。那就是BLDC電機,但為什麼呢?為什麼他們使用比直流電機貴一些的BLDC電機?

這有很多正當理由,其中一個主要原因是這些電機提供的扭矩非常高,這對於快速獲得/鬆動推力來起飛或降落無人機非常重要。這些電動機也可用作外圈,再次增加了電動機的推力。選擇BLDC電機的另一個原因是它的平穩振動操作較少,這對我們的無人機在半空中穩定非常理想。

BLDC電機的功率重量比非常高。這一點非常重要,因為無人機上使用的電機應具有高功率(高速和高扭矩),但重量也應較小。可以提供與BLDC電機相同的轉矩和速度的直流電動機將是BLDC電動機的兩倍重量。

為什麼我們需要一個ESC,它的作用是什麼?

我們知道每個BLDC電機都需要某種控制器來將電池的直流電壓轉換成脈衝,為電機的相線供電。該控制器稱為ESC,表示電子速度控制器。控制器的主要職責是按順序激勵BLDC電機的相線,以便電機旋轉。這是通過檢測每根導線的反電動勢來完成的,並在磁鐵穿過線圈時準確地激勵線圈。所以ESC內部有很多硬體亮點,我們這裡不打算詳細介紹。但是要提一下它有速度控制器和電池消除器電路。

● 基於PWM的速度控制:ESC可以通過讀取橙色線上提供的PWM信號來控制BLDC電機的速度。它的工作原理與伺服電機非常相似,所提供的PWM信號應具有20ms的周期,並且可以改變占空比以改變BLDC電機的速度。由於同樣的邏輯也適用於伺服電機來控制位置,我們可以在Arduino程序中使用相同的伺服庫。

● 電池消除電路(BEC):幾乎所有ESC都配有電池消除電路。顧名思義,這個電路不需要為微控制器提供單獨的電池,在這種情況下,我們不需要單獨的電源為Arduino供電; ESC本身將提供一個+ 5V的穩壓電源,可以用來為我們的Arduino供電。有許多類型的電路可以調節這個電壓,通常它會對廉價的ESC進行線性調節,但你也可以找到帶開關電路的電路。

● 固件:每個ESC都有一個由製造商寫入的固件程序。該固件極大地決定了您的ESC如何響應;一些流行的固件是Traditional、Simon-K和BL-Heli。該固件也是用戶可編程的,但我們在本教程中不會涉及到大部分內容。

Arduino開發板控制BLDC電機的連接原理圖

BLDC電機與Arduino開發板的連接非常簡單。 ESC需要一個最小12V/5A的電源。 在本篇文章中,我使用的是RPS作為電源,但您也可以使用Li-Po電池為ESC供電。 ESC的三相線應連接到電機的三相線,這些線的連接沒有順序,您可以按任意順序連接它們。

注意:某些ESC控制器上沒有連接介面,在這種情況下,請確保連接方式牢固,並使用絕緣膠帶保護裸露的電線。由於會有大電流通過相線,任何短路都會導致ESC和電機永久性損壞。

ESC中的BEC(電池消除器電路)將會調節輸出一個+5V,可用於向Arduino開發板供電。 最後為了設置BLDC電機的速度,我們還使用一個電位器,連接到Arduino的A0引腳。

BLDC電機的Arduino程序

我們需要創建一個PWM信號,其占空比從0%變化到100%,頻率為50Hz。使用電位器控制占空比,以便控制電機的速度。該操作的代碼類似於控制伺服電機,因為它們也需要具有50Hz頻率的PWM信號;因此我們使用來自Arduino的相同的伺服電機庫。完整的代碼可以在下面的本頁末尾處找到。

PWM信號只能在硬體支持PWM的引腳上產生,這些引腳通常用?符號表示。在Arduino UNO開發板上,引腳9可以產生PWM信號,所以我們將ESC信號引腳(橙色線)連接到引腳9;我們使用以下代碼來表示這種連接:

ESC.attach(9);

複製代碼

我們需要產生從0%到100%的不同占空比的PWM信號。對於0%占空比,POT將輸出0V(0),對於100%占空比,POT將輸出5V(1023)。這裡,電位器連接到引腳A0,因此我們必須使用模擬信號讀取函數從POT讀取模擬電壓,如下所示

int throttle = analogRead(A0);

複製代碼

然後我們必須將值從0到1023轉換為0到180,因為值0將生成0%PWM,值180將生成100%占空比。任何高於180的值都沒有意義。因此,我們使用map函數將值映射到0-180,如下所示。

throttle = map(throttle, 0, 1023, 0, 180);

複製代碼

最後,我們需要將此值發送到伺服函數,以便它可以在該引腳上生成PWM信號。由於我們已將伺服對象命名為ESC,因此代碼如下所示,其中變數throttle包含0-180的值以控制PWM信號的占空比

ESC.write(throttle);

複製代碼

用Arduino控制BLDC電機

根據電路圖進行連接,並將代碼上傳到Arduino開發板並啟動ESC。確保已將BLDC電機安裝在某物上,因為電機在旋轉時會四處跳轉。一旦裝置通電,ESC將發出歡迎音並持續發出嘟嘟聲,直到throttle信號在閾值限制範圍內,只需將POT從0V逐漸增加,然後蜂鳴聲將停止,這意味著我們現在提供的PWM信號高於下限閾值,當您進一步增加時,電機將開始緩慢旋轉。您提供的電壓越高,電機將獲得的速度越快,最終當電壓達到閾值上限以上時,電機將停止加速。然後,您可以重複此過程。

如果您在使用此工作時遇到任何問題,請在本帖下面進行回復,以獲取更多的技術幫助。

歡迎打賞+點贊+留言+轉發!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 一板網電子技術論壇 的精彩文章:

TAG:一板網電子技術論壇 |