構(gòu)建東西并讓它們按照我們想要的方式工作,一直很有趣。雖然已經(jīng)同意這一點(diǎn),但建造可以飛行的東西肯定會(huì)在業(yè)余愛好者和硬件修補(bǔ)匠中引起更多的焦慮。是的!我說的是滑翔機(jī)、直升機(jī)、飛機(jī),主要是多旋翼飛機(jī)。今天,由于在線提供的社區(qū)支持,自己構(gòu)建一個(gè)變得非常容易。所有飛行事物的一個(gè)共同點(diǎn)是它們使用 BLDC 電機(jī),那么這個(gè)BLDC 電機(jī)是什么?為什么我們需要它來飛行東西?它有什么特別之處?如何購買合適的電機(jī)并將其與您的控制器連接?什么是ESC,我們?yōu)槭裁匆褂盟??如果您有這樣的問題,那么本教程是您的一站式解決方案。
所以基本上在本教程中,我們將使用 Arduino 控制無刷電機(jī)。這里A2212/13T 無傳感器 BLDC外轉(zhuǎn)子電機(jī)與 20A 電子速度控制器 (ESC) 一起使用。這種電機(jī)通常用于制造無人機(jī)。
所需材料
A2212/13T 無刷直流電機(jī)
電調(diào) (20A)
電源 (12V 20A)
阿杜伊諾
電位計(jì)
了解無刷直流電機(jī)
BLDC 電機(jī)代表無刷直流電機(jī),由于其平穩(wěn)運(yùn)行,它通常用于吊扇和電動(dòng)汽車。前面詳細(xì)解釋了 BLDC 電機(jī)在電動(dòng)汽車中的使用。與其他電機(jī)不同,BLDC 電機(jī)有三根電線從中出來,每根電線形成自己的相位,因此為我們提供了一個(gè)三相電機(jī)。等。。。什么?。???
是的,盡管 BLDC 電機(jī)被認(rèn)為是直流電機(jī),但它們在脈沖波的幫助下工作。電子速度控制器(ESC) 將來自電池的直流電壓轉(zhuǎn)換為脈沖,并將其提供給電機(jī)的 3 根電線。在任何給定時(shí)間,只有電機(jī)的兩相通電,因此電流通過一相進(jìn)入并通過另一相離開。在此過程中,電機(jī)內(nèi)部的線圈通電,因此轉(zhuǎn)子上的磁鐵與通電線圈對(duì)齊。然后接下來的兩根電線由電調(diào)通電,這個(gè)過程繼續(xù)使電機(jī)旋轉(zhuǎn)。電機(jī)的速度取決于線圈通電的速度,電機(jī)的方向取決于線圈通電的順序。我們將在本文后面了解有關(guān) ESC 的更多信息。
有許多類型的 BLDC 電機(jī)可供選擇,讓我們來看看最常見的分類。
內(nèi)流道和外流道 BLDC 電機(jī):在轉(zhuǎn)輪中,BLDC 電機(jī)的工作方式與任何其他電機(jī)一樣。也就是說,電機(jī)內(nèi)部的軸在外殼保持固定的情況下旋轉(zhuǎn)。雖然外流道 BLDC 電機(jī)正好相反,但電機(jī)的外殼隨著軸旋轉(zhuǎn),而內(nèi)部線圈保持固定。外轉(zhuǎn)子電機(jī)在電動(dòng)自行車中非常有優(yōu)勢,因?yàn)橥鈿ぃㄐD(zhuǎn)的外殼)本身被制成輪胎的輪輞,因此避免了耦合機(jī)構(gòu)。此外,外轉(zhuǎn)輪電機(jī)往往比轉(zhuǎn)輪類型產(chǎn)生更大的扭矩,因此它成為電動(dòng)汽車和無人機(jī)的理想選擇。我們在這里使用的一個(gè)也是外流道類型。
注意:還有另一種類型的電機(jī)稱為無芯 BLDC 電機(jī),也用于袖珍無人機(jī),它們具有不同的工作原理,但現(xiàn)在讓我們?yōu)榱吮窘坛潭^它。
傳感器和無傳感器 BLDC 電機(jī):為了使 BLDC 電機(jī)在沒有任何抖動(dòng)的情況下旋轉(zhuǎn),需要反饋。也就是說,電調(diào)必須知道轉(zhuǎn)子中磁鐵的位置和極點(diǎn),以便根據(jù)定子通電。這些信息可以通過兩種方式獲取;一種是在電機(jī)內(nèi)部放置霍爾傳感器?;魻杺鞲衅鲗z測磁鐵并將信息發(fā)送到電調(diào),這種類型的電機(jī)稱為感應(yīng)式 BLDC 電機(jī),用于電動(dòng)汽車。第二種方法是使用磁鐵穿過線圈時(shí)產(chǎn)生的反電動(dòng)勢,這不需要額外的硬件或電線,相線本身用作反饋來檢查反電動(dòng)勢。這種方法用于我們的電機(jī),在無人機(jī)和其他飛行項(xiàng)目中很常見。
為什么無人機(jī)和其他多旋翼飛行器使用 BLDC 電機(jī)?
有許多類型的酷無人機(jī),從四軸飛行器到直升機(jī)和滑翔機(jī),一切都有一個(gè)共同的硬件。這就是 BLDC 電機(jī),但為什么呢?為什么他們使用與直流電機(jī)相比有點(diǎn)貴的 BLDC 電機(jī)?

這有很多正當(dāng)?shù)脑?,一個(gè)主要原因是這些電機(jī)提供的扭矩非常高,這對(duì)于快速獲得/放松推力以起飛或降落無人機(jī)非常重要。此外,這些電機(jī)可用作外轉(zhuǎn)輪,這再次增加了電機(jī)的推力。選擇 BLDC 電機(jī)的另一個(gè)原因是其平穩(wěn)的無振動(dòng)運(yùn)行,這對(duì)于我們的無人機(jī)來說非常理想,穩(wěn)定在半空中。
BLDC 電機(jī)的功率重量比非常高。這非常重要,因?yàn)闊o人機(jī)上使用的電機(jī)應(yīng)該具有高功率(高速和高扭矩),但也應(yīng)該重量更輕。可以提供與 BLDC 電機(jī)相同的扭矩和速度的直流電機(jī)的重量將是 BLDC 電機(jī)的兩倍。
為什么我們需要ESC,它的功能是什么?
眾所周知,每個(gè) BLDC 電機(jī)都需要某種控制器將來自電池的直流電壓轉(zhuǎn)換為脈沖,為電機(jī)的相線供電。該控制器稱為ESC,代表電子速度控制器??刂破鞯闹饕氊?zé)是按順序激勵(lì) BLDC 電機(jī)的相線,使電機(jī)旋轉(zhuǎn)。這是通過感測每根導(dǎo)線的反電動(dòng)勢并在磁體穿過線圈時(shí)精確地為線圈供電來完成的。因此,ESC 內(nèi)部有很多硬件的出色之處,這超出了本教程的范圍。但僅舉幾例,它具有速度控制器和電池消除器電路。

基于 PWM 的速度控制:電調(diào)可以通過讀取橙色線上提供的 PWM 信號(hào)來控制 BLDC 電機(jī)的速度。它的工作原理與伺服電機(jī)非常相似,提供的 PWM 信號(hào)應(yīng)具有 20ms 的周期,并且可以改變占空比以改變 BLDC 電機(jī)的速度。由于相同的邏輯也適用于伺服電機(jī)來控制位置,因此我們可以在Arduino程序中使用相同的伺服庫。
電池消除器電路 (BEC):幾乎所有的電調(diào)都帶有電池消除器電路。顧名思義,該電路消除了微控制器對(duì)單獨(dú)電池的需求,在這種情況下,我們不需要單獨(dú)的電源為Arduino供電;ESC本身將提供穩(wěn)定的+5V,可用于為我們的Arduino供電。有許多類型的電路可以調(diào)節(jié)此電壓,通常它將是廉價(jià)電調(diào)的線性調(diào)節(jié),但您也可以找到帶有開關(guān)電路的電路。
固件:每個(gè)ESC都有一個(gè)由制造商寫入的固件程序。此固件極大地決定了您的 ESC 如何響應(yīng);一些流行的固件是傳統(tǒng),Simon-K和BL-Heli。該固件也是用戶可編程的,但我們不會(huì)在本教程中詳細(xì)介紹。
BLDC和ESC的一些常見術(shù)語:
如果您剛剛開始使用 BLDC 電機(jī),那么您可能會(huì)遇到制動(dòng)、軟啟動(dòng)、電機(jī)方向、低電壓、響應(yīng)時(shí)間和提前等術(shù)語。讓我們來看看這些術(shù)語的含義。
制動(dòng):制動(dòng)是 BLDC 電機(jī)在油門移除后立即停止旋轉(zhuǎn)的能力。這種能力對(duì)于多旋翼飛行器非常重要,因?yàn)樗麄儽仨毟l繁地改變轉(zhuǎn)速才能在空中機(jī)動(dòng)。
軟啟動(dòng):軟啟動(dòng)是 BLDC 電機(jī)與齒輪相關(guān)聯(lián)時(shí)要考慮的重要功能。當(dāng)電機(jī)啟用軟啟動(dòng)時(shí),它不會(huì)突然開始旋轉(zhuǎn)得很快,無論油門有多快,它總是會(huì)逐漸增加速度。這將有助于我們減少與電機(jī)相連的齒輪(如果有)的磨損。
電機(jī)方向:BLDC 電機(jī)中的電機(jī)方向在運(yùn)行過程中通常不會(huì)改變。但在組裝時(shí),用戶可能需要改變電機(jī)的旋轉(zhuǎn)方向。改變電機(jī)方向的最簡單方法是簡單地相互更換電機(jī)的任何兩根電線。
低壓停止:校準(zhǔn)后,我們始終需要我們的 BLDC 電機(jī)以相同的特定速度運(yùn)行,以獲得特定的節(jié)氣門值。但這很難實(shí)現(xiàn),因?yàn)殡S著電池電壓的降低,電機(jī)傾向于降低其速度,以達(dá)到相同的油門值。為了避免這種情況,我們通常對(duì)ESC進(jìn)行編程,使其在電池電壓達(dá)到閾值以下時(shí)停止工作,此功能稱為低電壓停止,在無人機(jī)中很有用。
響應(yīng)時(shí)間:電機(jī)根據(jù)油門的變化快速改變其速度的能力稱為響應(yīng)時(shí)間。響應(yīng)時(shí)間越短,控制效果就越好。
進(jìn)展:前進(jìn)是一個(gè)問題,或者更像是 BLDC 電機(jī)的錯(cuò)誤。所有 BLDC 電機(jī)都有一點(diǎn)進(jìn)步。也就是說,當(dāng)定子線圈通電時(shí),由于它們上存在永磁體,轉(zhuǎn)子被吸引到它身邊。被吸引后,轉(zhuǎn)子傾向于在線圈斷電之前沿同一方向向前移動(dòng)一點(diǎn),然后下一個(gè)線圈通電。這種運(yùn)動(dòng)稱為“前進(jìn)”,它會(huì)產(chǎn)生抖動(dòng)、升溫、發(fā)出噪音等問題。因此,這是一個(gè)好的ESC應(yīng)該避免的事情。
好的,現(xiàn)在有足夠的理論讓我們通過將電機(jī)與Arduino連接來開始使用硬件。
Arduino BLDC 電機(jī)控制電路圖
以下是使用Arduino控制無刷電機(jī)的電路圖:

將 BLDC 電機(jī)與 Arduino 接口的連接非常簡單。ESC 需要大約 12V 和 5A 的電源(最小值)。在本教程中,我使用RPS作為電源,但您也可以使用鋰聚合物電池為ESC供電。電調(diào)的三相線應(yīng)連接到電機(jī)的三相線,沒有順序連接這些電線,您可以按任何順序連接它們。
警告:有些電調(diào)上沒有連接器,在這種情況下,請(qǐng)確保您的連接牢固,并使用絕緣膠帶保護(hù)裸露的電線。由于會(huì)有高電流通過相位,任何短路都會(huì)導(dǎo)致電調(diào)和電機(jī)的永久性損壞。
ESC本身的BEC(電池消除器電路)將調(diào)節(jié)+5V,可用于為Arduino板供電。最后,為了設(shè)置 BLDC 電機(jī)的速度,我們還使用連接到 Arduino 的 A0 引腳的電位計(jì)

使用 Arduino 進(jìn)行 BLDC 速度控制的程序
我們必須創(chuàng)建一個(gè)占空比從0%到100%的PWM信號(hào),頻率為50Hz。應(yīng)使用電位計(jì)控制占空比,以便我們可以控制電機(jī)的速度。執(zhí)行此操作的代碼類似于控制伺服電機(jī),因?yàn)樗鼈冞€需要頻率為 50Hz 的 PWM 信號(hào);因此,我們使用與Arduino相同的伺服庫。完整的代碼可以在本頁底部找到,下面我用小片段解釋代碼。如果您不熟悉Arduino或PWM,請(qǐng)首先將PWM與Arduino一起使用,并使用Arduino控制伺服。
PWM信號(hào)只能在硬件支持PWM的引腳上產(chǎn)生,這些引腳通常用~符號(hào)提及。在Arduino UNO上,引腳9可以生成PWM信號(hào),因此我們將ESC信號(hào)引腳(橙色線)連接到引腳9,我們還使用以下行提到了相同的inn代碼
ESC.attach(9);
我們必須生成占空比從0%到100%變化的PWM信號(hào)。對(duì)于 0% 占空比,POT 將輸出 0V (0),對(duì)于 100% 占空比,POT 將輸出 5V (1023)。這里的電位器連接到引腳A0,因此我們必須使用模擬讀取功能從POT讀取模擬電壓,如下所示
int throttle = analogRead(A0);
然后我們必須將值從 0 到 1023 轉(zhuǎn)換為 0 到180,因?yàn)橹?0 將產(chǎn)生 0% PWM,值 180 將產(chǎn)生 100% 占空比。任何高于 180 的值都沒有意義。因此,我們使用map函數(shù)將值映射到0-180,如下所示。
throttle = map(throttle, 0, 1023, 0, 180);
最后,我們必須將此值發(fā)送到伺服功能,以便它可以在該引腳上生成PWM信號(hào)。由于我們已將伺服對(duì)象命名為 ESC,因此代碼如下所示,其中可變油門包含 0-180 之間的值,以控制 PWM 信號(hào)的占空比
ESC.write(throttle);
Arduino BLDC 電機(jī)控制
根據(jù)電路圖進(jìn)行連接,并將代碼上傳到Arduino并啟動(dòng)ESC。確保已將 BLDC 電機(jī)安裝在某物上,因?yàn)殡姍C(jī)在旋轉(zhuǎn)時(shí)會(huì)跳來跳去。一旦設(shè)置通電,您的 ESC 將發(fā)出歡迎音并繼續(xù)發(fā)出嗶嗶聲,直到油門信號(hào)在閾值限制內(nèi),只需從 0V 逐漸增加 POT,蜂鳴音就會(huì)停止,這意味著我們現(xiàn)在提供高于下限閾值的 PWM 信號(hào),隨著您進(jìn)一步增加,電機(jī)將開始緩慢旋轉(zhuǎn)。您提供的電壓越多,電機(jī)的速度就越快,最后當(dāng)電壓達(dá)到閾值上限以上時(shí),電機(jī)將停止。然后,您可以重復(fù)該過程。

-
無刷電機(jī)
+關(guān)注
關(guān)注
60文章
995瀏覽量
49704 -
Arduino
+關(guān)注
關(guān)注
190文章
6527瀏覽量
197536
發(fā)布評(píng)論請(qǐng)先 登錄
如何去使用Arduino開發(fā)板和ESC控制無刷電機(jī)?
用Arduino控制舵機(jī)的方法有哪幾種啊?
怎樣使用Arduino控制無刷電機(jī)
直流無刷電機(jī)方波控制
直流無刷電機(jī)控制原理
無刷電機(jī)常見故障 無刷電機(jī)控制器壞了怎樣維修
無刷電機(jī)的好處 無刷電機(jī)壽命
Arduino無刷電機(jī)控制教程
無刷電機(jī)是什么意思 無刷電機(jī)是交流還是直流
無刷電機(jī)正反轉(zhuǎn)由什么控制
其利天下技術(shù)·低速無刷電機(jī)如何更好的控制?無刷電機(jī)驅(qū)動(dòng)方案開發(fā)
如何使用Arduino控制無刷電機(jī)
評(píng)論