構(gòu)建東西并讓它們按照我們想要的方式工作,一直很有趣。雖然已經(jīng)同意這一點(diǎn),但建造可以飛行的東西肯定會(huì)在業(yè)余愛(ài)好者和硬件修補(bǔ)匠中引起更多的焦慮。是的!我說(shuō)的是滑翔機(jī)、直升機(jī)、飛機(jī),主要是多旋翼飛機(jī)。今天,由于在線提供的社區(qū)支持,自己構(gòu)建一個(gè)變得非常容易。所有飛行事物的一個(gè)共同點(diǎn)是它們使用 BLDC 電機(jī),那么這個(gè)BLDC 電機(jī)是什么?為什么我們需要它來(lái)飛行東西?它有什么特別之處?如何購(gòu)買(mǎi)合適的電機(jī)并將其與您的控制器連接?什么是ESC,我們?yōu)槭裁匆褂盟咳绻羞@樣的問(wèn)題,那么本教程是您的一站式解決方案。
所以基本上在本教程中,我們將使用 Arduino 控制無(wú)刷電機(jī)。這里A2212/13T 無(wú)傳感器 BLDC外轉(zhuǎn)子電機(jī)與 20A 電子速度控制器 (ESC) 一起使用。這種電機(jī)通常用于制造無(wú)人機(jī)。
所需材料
A2212/13T 無(wú)刷直流電機(jī)
電調(diào) (20A)
電源 (12V 20A)
阿杜伊諾
電位計(jì)
了解無(wú)刷直流電機(jī)
BLDC 電機(jī)代表無(wú)刷直流電機(jī),由于其平穩(wěn)運(yùn)行,它通常用于吊扇和電動(dòng)汽車。前面詳細(xì)解釋了 BLDC 電機(jī)在電動(dòng)汽車中的使用。與其他電機(jī)不同,BLDC 電機(jī)有三根電線從中出來(lái),每根電線形成自己的相位,因此為我們提供了一個(gè)三相電機(jī)。等。。。什么!?。??
是的,盡管 BLDC 電機(jī)被認(rèn)為是直流電機(jī),但它們?cè)诿}沖波的幫助下工作。電子速度控制器(ESC) 將來(lái)自電池的直流電壓轉(zhuǎn)換為脈沖,并將其提供給電機(jī)的 3 根電線。在任何給定時(shí)間,只有電機(jī)的兩相通電,因此電流通過(guò)一相進(jìn)入并通過(guò)另一相離開(kāi)。在此過(guò)程中,電機(jī)內(nèi)部的線圈通電,因此轉(zhuǎn)子上的磁鐵與通電線圈對(duì)齊。然后接下來(lái)的兩根電線由電調(diào)通電,這個(gè)過(guò)程繼續(xù)使電機(jī)旋轉(zhuǎn)。電機(jī)的速度取決于線圈通電的速度,電機(jī)的方向取決于線圈通電的順序。我們將在本文后面了解有關(guān) ESC 的更多信息。
有許多類型的 BLDC 電機(jī)可供選擇,讓我們來(lái)看看最常見(jiàn)的分類。
內(nèi)流道和外流道 BLDC 電機(jī):在轉(zhuǎn)輪中,BLDC 電機(jī)的工作方式與任何其他電機(jī)一樣。也就是說(shuō),電機(jī)內(nèi)部的軸在外殼保持固定的情況下旋轉(zhuǎn)。雖然外流道 BLDC 電機(jī)正好相反,但電機(jī)的外殼隨著軸旋轉(zhuǎn),而內(nèi)部線圈保持固定。外轉(zhuǎn)子電機(jī)在電動(dòng)自行車中非常有優(yōu)勢(shì),因?yàn)橥鈿ぃㄐD(zhuǎn)的外殼)本身被制成輪胎的輪輞,因此避免了耦合機(jī)構(gòu)。此外,外轉(zhuǎn)輪電機(jī)往往比轉(zhuǎn)輪類型產(chǎn)生更大的扭矩,因此它成為電動(dòng)汽車和無(wú)人機(jī)的理想選擇。我們?cè)谶@里使用的一個(gè)也是外流道類型。
注意:還有另一種類型的電機(jī)稱為無(wú)芯 BLDC 電機(jī),也用于袖珍無(wú)人機(jī),它們具有不同的工作原理,但現(xiàn)在讓我們?yōu)榱吮窘坛潭^(guò)它。
傳感器和無(wú)傳感器 BLDC 電機(jī):為了使 BLDC 電機(jī)在沒(méi)有任何抖動(dòng)的情況下旋轉(zhuǎn),需要反饋。也就是說(shuō),電調(diào)必須知道轉(zhuǎn)子中磁鐵的位置和極點(diǎn),以便根據(jù)定子通電。這些信息可以通過(guò)兩種方式獲取;一種是在電機(jī)內(nèi)部放置霍爾傳感器?;魻杺鞲衅鲗z測(cè)磁鐵并將信息發(fā)送到電調(diào),這種類型的電機(jī)稱為感應(yīng)式 BLDC 電機(jī),用于電動(dòng)汽車。第二種方法是使用磁鐵穿過(guò)線圈時(shí)產(chǎn)生的反電動(dòng)勢(shì),這不需要額外的硬件或電線,相線本身用作反饋來(lái)檢查反電動(dòng)勢(shì)。這種方法用于我們的電機(jī),在無(wú)人機(jī)和其他飛行項(xiàng)目中很常見(jiàn)。
為什么無(wú)人機(jī)和其他多旋翼飛行器使用 BLDC 電機(jī)?
有許多類型的酷無(wú)人機(jī),從四軸飛行器到直升機(jī)和滑翔機(jī),一切都有一個(gè)共同的硬件。這就是 BLDC 電機(jī),但為什么呢?為什么他們使用與直流電機(jī)相比有點(diǎn)貴的 BLDC 電機(jī)?
這有很多正當(dāng)?shù)脑颍粋€(gè)主要原因是這些電機(jī)提供的扭矩非常高,這對(duì)于快速獲得/放松推力以起飛或降落無(wú)人機(jī)非常重要。此外,這些電機(jī)可用作外轉(zhuǎn)輪,這再次增加了電機(jī)的推力。選擇 BLDC 電機(jī)的另一個(gè)原因是其平穩(wěn)的無(wú)振動(dòng)運(yùn)行,這對(duì)于我們的無(wú)人機(jī)來(lái)說(shuō)非常理想,穩(wěn)定在半空中。
BLDC 電機(jī)的功率重量比非常高。這非常重要,因?yàn)闊o(wú)人機(jī)上使用的電機(jī)應(yīng)該具有高功率(高速和高扭矩),但也應(yīng)該重量更輕??梢蕴峁┡c BLDC 電機(jī)相同的扭矩和速度的直流電機(jī)的重量將是 BLDC 電機(jī)的兩倍。
為什么我們需要ESC,它的功能是什么?
眾所周知,每個(gè) BLDC 電機(jī)都需要某種控制器將來(lái)自電池的直流電壓轉(zhuǎn)換為脈沖,為電機(jī)的相線供電。該控制器稱為ESC,代表電子速度控制器??刂破鞯闹饕氊?zé)是按順序激勵(lì) BLDC 電機(jī)的相線,使電機(jī)旋轉(zhuǎn)。這是通過(guò)感測(cè)每根導(dǎo)線的反電動(dòng)勢(shì)并在磁體穿過(guò)線圈時(shí)精確地為線圈供電來(lái)完成的。因此,ESC 內(nèi)部有很多硬件的出色之處,這超出了本教程的范圍。但僅舉幾例,它具有速度控制器和電池消除器電路。
基于 PWM 的速度控制:電調(diào)可以通過(guò)讀取橙色線上提供的 PWM 信號(hào)來(lái)控制 BLDC 電機(jī)的速度。它的工作原理與伺服電機(jī)非常相似,提供的 PWM 信號(hào)應(yīng)具有 20ms 的周期,并且可以改變占空比以改變 BLDC 電機(jī)的速度。由于相同的邏輯也適用于伺服電機(jī)來(lái)控制位置,因此我們可以在Arduino程序中使用相同的伺服庫(kù)。
電池消除器電路 (BEC):幾乎所有的電調(diào)都帶有電池消除器電路。顧名思義,該電路消除了微控制器對(duì)單獨(dú)電池的需求,在這種情況下,我們不需要單獨(dú)的電源為Arduino供電;ESC本身將提供穩(wěn)定的+5V,可用于為我們的Arduino供電。有許多類型的電路可以調(diào)節(jié)此電壓,通常它將是廉價(jià)電調(diào)的線性調(diào)節(jié),但您也可以找到帶有開(kāi)關(guān)電路的電路。
固件:每個(gè)ESC都有一個(gè)由制造商寫(xiě)入的固件程序。此固件極大地決定了您的 ESC 如何響應(yīng);一些流行的固件是傳統(tǒng),Simon-K和BL-Heli。該固件也是用戶可編程的,但我們不會(huì)在本教程中詳細(xì)介紹。
BLDC和ESC的一些常見(jiàn)術(shù)語(yǔ):
如果您剛剛開(kāi)始使用 BLDC 電機(jī),那么您可能會(huì)遇到制動(dòng)、軟啟動(dòng)、電機(jī)方向、低電壓、響應(yīng)時(shí)間和提前等術(shù)語(yǔ)。讓我們來(lái)看看這些術(shù)語(yǔ)的含義。
制動(dòng):制動(dòng)是 BLDC 電機(jī)在油門(mén)移除后立即停止旋轉(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ì)突然開(kāi)始旋轉(zhuǎn)得很快,無(wú)論油門(mén)有多快,它總是會(huì)逐漸增加速度。這將有助于我們減少與電機(jī)相連的齒輪(如果有)的磨損。
電機(jī)方向:BLDC 電機(jī)中的電機(jī)方向在運(yùn)行過(guò)程中通常不會(huì)改變。但在組裝時(shí),用戶可能需要改變電機(jī)的旋轉(zhuǎn)方向。改變電機(jī)方向的最簡(jiǎn)單方法是簡(jiǎn)單地相互更換電機(jī)的任何兩根電線。
低壓停止:校準(zhǔn)后,我們始終需要我們的 BLDC 電機(jī)以相同的特定速度運(yùn)行,以獲得特定的節(jié)氣門(mén)值。但這很難實(shí)現(xiàn),因?yàn)殡S著電池電壓的降低,電機(jī)傾向于降低其速度,以達(dá)到相同的油門(mén)值。為了避免這種情況,我們通常對(duì)ESC進(jìn)行編程,使其在電池電壓達(dá)到閾值以下時(shí)停止工作,此功能稱為低電壓停止,在無(wú)人機(jī)中很有用。
響應(yīng)時(shí)間:電機(jī)根據(jù)油門(mén)的變化快速改變其速度的能力稱為響應(yīng)時(shí)間。響應(yīng)時(shí)間越短,控制效果就越好。
進(jìn)展:前進(jìn)是一個(gè)問(wèn)題,或者更像是 BLDC 電機(jī)的錯(cuò)誤。所有 BLDC 電機(jī)都有一點(diǎn)進(jìn)步。也就是說(shuō),當(dāng)定子線圈通電時(shí),由于它們上存在永磁體,轉(zhuǎn)子被吸引到它身邊。被吸引后,轉(zhuǎn)子傾向于在線圈斷電之前沿同一方向向前移動(dòng)一點(diǎn),然后下一個(gè)線圈通電。這種運(yùn)動(dòng)稱為“前進(jìn)”,它會(huì)產(chǎn)生抖動(dòng)、升溫、發(fā)出噪音等問(wèn)題。因此,這是一個(gè)好的ESC應(yīng)該避免的事情。
好的,現(xiàn)在有足夠的理論讓我們通過(guò)將電機(jī)與Arduino連接來(lái)開(kāi)始使用硬件。
Arduino BLDC 電機(jī)控制電路圖
以下是使用Arduino控制無(wú)刷電機(jī)的電路圖:
將 BLDC 電機(jī)與 Arduino 接口的連接非常簡(jiǎn)單。ESC 需要大約 12V 和 5A 的電源(最小值)。在本教程中,我使用RPS作為電源,但您也可以使用鋰聚合物電池為ESC供電。電調(diào)的三相線應(yīng)連接到電機(jī)的三相線,沒(méi)有順序連接這些電線,您可以按任何順序連接它們。
警告:有些電調(diào)上沒(méi)有連接器,在這種情況下,請(qǐng)確保您的連接牢固,并使用絕緣膠帶保護(hù)裸露的電線。由于會(huì)有高電流通過(guò)相位,任何短路都會(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相同的伺服庫(kù)。完整的代碼可以在本頁(yè)底部找到,下面我用小片段解釋代碼。如果您不熟悉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 的值都沒(méi)有意義。因此,我們使用map函數(shù)將值映射到0-180,如下所示。
throttle = map(throttle, 0, 1023, 0, 180);
最后,我們必須將此值發(fā)送到伺服功能,以便它可以在該引腳上生成PWM信號(hào)。由于我們已將伺服對(duì)象命名為 ESC,因此代碼如下所示,其中可變油門(mén)包含 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ì)跳來(lái)跳去。一旦設(shè)置通電,您的 ESC 將發(fā)出歡迎音并繼續(xù)發(fā)出嗶嗶聲,直到油門(mén)信號(hào)在閾值限制內(nèi),只需從 0V 逐漸增加 POT,蜂鳴音就會(huì)停止,這意味著我們現(xiàn)在提供高于下限閾值的 PWM 信號(hào),隨著您進(jìn)一步增加,電機(jī)將開(kāi)始緩慢旋轉(zhuǎn)。您提供的電壓越多,電機(jī)的速度就越快,最后當(dāng)電壓達(dá)到閾值上限以上時(shí),電機(jī)將停止。然后,您可以重復(fù)該過(guò)程。
-
無(wú)刷電機(jī)
+關(guān)注
關(guān)注
60文章
896瀏覽量
47469 -
Arduino
+關(guān)注
關(guān)注
190文章
6498瀏覽量
192228
發(fā)布評(píng)論請(qǐng)先 登錄
無(wú)刷電機(jī)FOC控制筆記

如何去使用Arduino開(kāi)發(fā)板和ESC控制無(wú)刷電機(jī)?
怎樣使用Arduino去控制大疆GM6020無(wú)刷電機(jī)?
如何使用Arduino和ESC去控制無(wú)刷電機(jī)?
用Arduino控制舵機(jī)的方法有哪幾種???
無(wú)刷電機(jī)驅(qū)動(dòng)與控制及智能控制技術(shù)
怎樣使用Arduino控制無(wú)刷電機(jī)
直流無(wú)刷電機(jī)方波控制
直流無(wú)刷電機(jī)控制原理

無(wú)刷電機(jī)常見(jiàn)故障 無(wú)刷電機(jī)控制器壞了怎樣維修
無(wú)刷電機(jī)的好處 無(wú)刷電機(jī)壽命
Arduino無(wú)刷電機(jī)控制教程

評(píng)論