0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用Arduino微控制器和Hall-Effect位置傳感器實(shí)現(xiàn)BLDC的控制

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-18 10:00 ? 次閱讀

步驟1:準(zhǔn)備

步驟2:工具和材料

工具

數(shù)字萬用表(DMM)-如果您的DMM具有頻率計(jì)示波器(最好具有至少2個(gè)通道)《

T8 Torx驅(qū)動(dòng)程序(您需要其中之一來打開任何硬盤驅(qū)動(dòng)器)。一個(gè)好的硬件商店就會(huì)有它們。

機(jī)器商店和Rapid Prototype Machine(這些工具非常有用,但是我有點(diǎn)機(jī)靈,我認(rèn)為沒有它們就可以完成該項(xiàng)目)。

材料

計(jì)算機(jī)硬盤驅(qū)動(dòng)器上的BLDC電機(jī)

另一個(gè)硬盤驅(qū)動(dòng)器上的磁環(huán)(電機(jī)的一半)。

硬盤驅(qū)動(dòng)器上的幾(3-6)個(gè)銀盤

一秒鐘小型電機(jī)(直流刷過OK)

橡皮筋或(最好是)皮帶,用另一臺(tái)電機(jī)轉(zhuǎn)動(dòng)BLDC

電子面包板

實(shí)心線22 AWG用于面包板連接

一個(gè)Arduino Duemilanove微控制器

三個(gè)120 k歐姆電阻

六個(gè)?400歐姆電阻

線性或旋轉(zhuǎn)電位計(jì)100 k歐姆

ST Microelectronics L6234三相電動(dòng)機(jī)驅(qū)動(dòng)器IC

兩個(gè)100 uF電容器

一個(gè)10 nF電容

一個(gè)220 nF電容器

一個(gè)1 uF電容器

一個(gè)100 uF電容器

三個(gè)整流二極管

一個(gè)2.5安培保險(xiǎn)絲

一個(gè)保險(xiǎn)絲座

3 Honeywell SS411A雙極霍爾效應(yīng)數(shù)字正弦波在傳感器

三個(gè)1 K電阻器

注意:Mike Anton已設(shè)計(jì)并正在銷售一種產(chǎn)品,該產(chǎn)品將代替本使用說明中顯示的電力電子和霍爾傳感器電路(它使用反電動(dòng)勢感應(yīng)控制)。規(guī)格和購買信息可在以下兩個(gè)鏈接中找到:https://www.tindie.com/stores/manton/http://manton.wikidot.com/open:bldc-motor-driver

12 V愛好型鉛酸電池

步驟3:了解BLDC控制

如果您要執(zhí)行此項(xiàng)目,我建議您花一些時(shí)間徹底了解BLDC的工作原理和控制方法。在線有大量參考資料可供參考(有關(guān)一些建議,請(qǐng)參見下文)。但是,我確實(shí)提供了一些來自我的項(xiàng)目的圖表和表格,這些圖表和表格可以幫助您理解。

這里列出了我認(rèn)為對(duì)理解該項(xiàng)目最重要的概念:

MOSFET晶體管

三相半橋

三相電動(dòng)機(jī)的六步換向《脈沖寬度調(diào)制(PWM)

霍爾效應(yīng)數(shù)字位置傳感器

Microchip無刷直流電動(dòng)機(jī)基本原理AVR443:ATMEL的基于傳感器的三相無刷直流電動(dòng)機(jī)控制

》 Microchip的無刷直流電動(dòng)機(jī)控制輕松實(shí)現(xiàn),帶飛思卡爾霍爾傳感器的三相BLDC電動(dòng)機(jī)控制

一個(gè)很好的視頻,展示了一個(gè)掃氣式硬盤電動(dòng)機(jī),但作者似乎將電動(dòng)機(jī)作為步進(jìn)電動(dòng)機(jī)運(yùn)行,不作為BLDC4上L6234電動(dòng)機(jī)驅(qū)動(dòng)器IC上的更詳細(xì)的參考資料

網(wǎng)頁,包括數(shù)據(jù)表,應(yīng)用筆記和購買信息。免費(fèi)樣品http://www.st.com/stonline/domains/buy/samples/index.htm

用于混合動(dòng)力電動(dòng)汽車應(yīng)用的PM無刷電機(jī)驅(qū)動(dòng)器的設(shè)計(jì)。這是我發(fā)現(xiàn)的唯一描述再生制動(dòng)換向順序的論文。

這篇論文《電動(dòng)汽車的再生制動(dòng)》很有用,我從中借鑒了一些數(shù)據(jù),但我認(rèn)為它錯(cuò)誤地描述了再生的工作原理。

步驟4:電機(jī)

我使用打撈的磁盤驅(qū)動(dòng)器電機(jī)完成了這個(gè)項(xiàng)目,因?yàn)樗苋菀讓?shí)現(xiàn),而且我喜歡學(xué)習(xí)BLDC的繩索的想法使用小型低壓電動(dòng)機(jī)進(jìn)行控制,不會(huì)造成任何安全問題。另外,霍爾傳感器的磁體的配置也非常簡單,它使用了第二個(gè)電動(dòng)機(jī)的磁環(huán)(轉(zhuǎn)子)(請(qǐng)參見步驟4)。

如果您不想全部在安裝和校準(zhǔn)霍爾傳感器時(shí)遇到麻煩(步驟5-7),我知道至少有一些CD/DVD驅(qū)動(dòng)器電機(jī)內(nèi)置了霍爾傳感器。

要在電動(dòng)機(jī)上提供一些旋轉(zhuǎn)慣量并給它們一點(diǎn)點(diǎn)要承受的負(fù)載,我在電機(jī)上放了5個(gè)硬盤驅(qū)動(dòng)器磁盤,輕輕地粘在一起,并用少許強(qiáng)力膠粘到了電機(jī)上(這使飛輪進(jìn)入了我的原始項(xiàng)目)。

如果要卸下電機(jī)從硬盤驅(qū)動(dòng)器上,您將需要一個(gè)T8梅花形螺絲刀來擰開外殼(通常在中心有一兩個(gè)螺釘,這些螺釘隱藏在粘貼式標(biāo)簽的后面),以及用于將電動(dòng)機(jī)固定到位的內(nèi)部螺釘。您還需要卸下磁頭讀取器(音圈致動(dòng)器),以便卸下存儲(chǔ)磁盤才能到達(dá)電機(jī)。

此外,您還需要另一臺(tái)相同的硬盤驅(qū)動(dòng)器電動(dòng)機(jī),從中卸下轉(zhuǎn)子(內(nèi)部有一個(gè)磁鐵環(huán))。為了將電動(dòng)機(jī)拉開,我用虎鉗夾住電動(dòng)機(jī)的轉(zhuǎn)子(頂部),然后用兩把螺絲起子分開180度,在定子(底部)上撬動(dòng)。將虎鉗固定在虎鉗中而不變形不會(huì)那么容易。為此,您可能需要構(gòu)建一組木制的V型塊。

我在車床上的磁環(huán)上鉆了一個(gè)孔,以便將其緊密地安裝在電動(dòng)機(jī)的頂部。如果您無法使用車床,則可以使用強(qiáng)力膠將倒轉(zhuǎn)的轉(zhuǎn)子固定到電動(dòng)機(jī)上。

下面的照片2和3顯示了我拉開的其中一個(gè)電動(dòng)機(jī)的內(nèi)部。在上半部分(轉(zhuǎn)子)的內(nèi)部有8極(用塑料包裹的磁鐵)。在下半部分(定子)上有12個(gè)槽(繞組)。三相電動(dòng)機(jī)的每一相都有4個(gè)串聯(lián)的插槽。

某些HD電動(dòng)機(jī)的底部有三個(gè)觸點(diǎn),每一相一個(gè),還有一個(gè)是電動(dòng)機(jī)的中心抽頭(其中三個(gè)相遇)。在此項(xiàng)目中,不需要中央分接頭,但在無傳感器控制中,它可以派上用場(我希望這些天之一可以發(fā)布有關(guān)無傳感器控制的說明)。如果您的電動(dòng)機(jī)有四個(gè)觸點(diǎn),則可以用歐姆表識(shí)別相。電阻位于中心抽頭和相位之間,是兩相電阻的一半。

關(guān)于BLDC電動(dòng)機(jī)的大多數(shù)文獻(xiàn)都涉及梯形反電動(dòng)勢波形,但硬盤驅(qū)動(dòng)器似乎具有看起來為正弦的反電動(dòng)勢(請(qǐng)參閱參考資料)。下圖)。據(jù)我所知,雖然效率可能會(huì)有所降低,但使用方波PWM驅(qū)動(dòng)正弦電動(dòng)機(jī)效果很好。

與所有BLDC電動(dòng)機(jī)一樣,該電動(dòng)機(jī)由三相半電動(dòng)機(jī)驅(qū)動(dòng)-晶體管橋(請(qǐng)參見下面的第二張照片)。我將ST Microelectronics(L6234)制造的IC用于電橋,也稱為電機(jī)驅(qū)動(dòng)器。 L6234的電氣連接在步驟8中顯示。下面的第三張照片顯示了電動(dòng)機(jī)驅(qū)動(dòng)器和三個(gè)電動(dòng)機(jī)相位的示意圖。

為了使電動(dòng)機(jī)順時(shí)針運(yùn)行,將按照以下順序進(jìn)行切換(第一個(gè)字母為上方的晶體管,第二個(gè)字母為下方的晶體管):

第1步3 2 5 6 6順時(shí)針:CB ,AB,AC,BC,BA,CA

逆時(shí)針方向:BC,BA,CA,CB,AB,AC

此6步序列需要360度“電度”,但對(duì)于這些電機(jī),僅90物理度。因此,該序列每電動(dòng)機(jī)旋轉(zhuǎn)發(fā)生四次??磥磉@兩個(gè)序列是相同的,但它們卻不相同,因?yàn)閷?duì)于6步序列中的每一步,通過相的電流對(duì)于CW而言是一個(gè)方向,而對(duì)于CCW而言是相反的方向。

您可以通過從電池或電源向任意兩個(gè)電機(jī)相施加電壓來親自查看。如果施加電壓,電機(jī)將向一個(gè)方向轉(zhuǎn)動(dòng)一點(diǎn),然后停止。如果您可以按照上述順序之一快速更改相電壓,則可以手動(dòng)旋轉(zhuǎn)電動(dòng)機(jī)。當(dāng)電動(dòng)機(jī)高速運(yùn)行時(shí),晶體管和微控制器非常迅速地完成所有這些切換,每秒每秒數(shù)百次。

另外,請(qǐng)注意,如果將電壓施加到兩相中,則電動(dòng)機(jī)稍微移動(dòng)然后停止。這是因?yàn)榕ぞ刈優(yōu)榱恪D梢栽谙旅娴牡谒膹堈掌锌吹竭@一點(diǎn),該照片顯示了一對(duì)電機(jī)相位的反電動(dòng)勢。這是一個(gè)正弦波。當(dāng)波穿過x軸時(shí),該相位提供的扭矩為零。在六步BLDC換向序列中,這永遠(yuǎn)不會(huì)發(fā)生。在特定相位上的扭矩變低之前,將電源切換到另一相組合。

步驟5:霍爾傳感器機(jī)械設(shè)置

大型BLDC電機(jī)通常在電機(jī)內(nèi)部裝有霍爾傳感器。如果您有這樣的電動(dòng)機(jī),則可以跳過此步驟。另外,我了解到至少有一些CD/DVD驅(qū)動(dòng)器電動(dòng)機(jī)具有內(nèi)置霍爾傳感器。

三個(gè)霍爾傳感器用于在電動(dòng)機(jī)旋轉(zhuǎn)時(shí)進(jìn)行位置檢測,因此換向發(fā)生在正確的瞬間。我的高清電機(jī)的運(yùn)行速度高達(dá)9000 RPM(150 Hz)。由于每轉(zhuǎn)有24個(gè)換向,因此以9000 RPM的換向每280微秒發(fā)生一次。 Arduino微控制器以16 MHz運(yùn)行,因此每個(gè)時(shí)鐘周期為0.06微秒。我不知道執(zhí)行換向需要多少個(gè)時(shí)鐘周期,但是即使花費(fèi)100個(gè)時(shí)鐘,每個(gè)換向也需要5微秒。

HD電機(jī)沒有霍爾傳感器,因此有必要將其安裝到電機(jī)的外部。傳感器需要相對(duì)于電動(dòng)機(jī)旋轉(zhuǎn)進(jìn)行固定,并暴露于一系列隨電動(dòng)機(jī)旋轉(zhuǎn)而變化的磁極。我的解決方案是從同一臺(tái)電動(dòng)機(jī)上取下磁環(huán),然后將其倒置安裝在要控制的電動(dòng)機(jī)上。將三個(gè)霍爾傳感器安裝在此磁環(huán)的正上方,彼此在電機(jī)軸上相距30度(電動(dòng)機(jī)旋轉(zhuǎn)120度)。

我的霍爾傳感器安裝架由一個(gè)簡單的支架組成,該支架由三個(gè)鋁制部件組成我用快速原型機(jī)加工了三個(gè)塑料零件。如果您無權(quán)使用這些工具,那么尋找另一種制作支架的方法應(yīng)該不會(huì)太困難。為霍爾傳感器創(chuàng)建支架將更具挑戰(zhàn)性。這可能是一種方法:

1。找到一個(gè)適當(dāng)大小的塑料盤,您可以在其上小心地為霍爾傳感器加環(huán)氧樹脂。

2。在紙張上打印出一個(gè)模板,該模板的圓與磁環(huán)的半徑相同,并且三個(gè)標(biāo)記之間的距離為15度《3》。將模板粘到磁盤上,然后以模板為指導(dǎo)小心地將霍爾傳感器涂在適當(dāng)?shù)奈恢谩?/p>

步驟6:霍爾傳感器電路

現(xiàn)在,您已將霍爾傳感器正確安裝在電動(dòng)機(jī)上,將它們分別與下面所示的電路連接,并使用DMM或示波器對(duì)其進(jìn)行測試,以確保輸出與輸出信號(hào)一樣高和低。電機(jī)旋轉(zhuǎn)。我使用Arduino的5V輸出以5V運(yùn)行這些傳感器。

步驟7:校準(zhǔn)霍爾傳感器

霍爾傳感器是數(shù)字設(shè)備,它們根據(jù)檢測到的是南磁極還是北磁極而輸出高電平或低電平(1或0)。由于它們的間隔為15度,并且磁體在其下方旋轉(zhuǎn),每45度改變一次極性,所以這三個(gè)傳感器永遠(yuǎn)不會(huì)同時(shí)處于高電平或低電平狀態(tài)。隨著電機(jī)旋轉(zhuǎn),傳感器輸出以六步模式變化,如下表所示。傳感器必須與電動(dòng)機(jī)的運(yùn)動(dòng)對(duì)齊,以便三個(gè)傳感器之一精確地在電動(dòng)機(jī)換向位置改變。在這種情況下,第一霍爾傳感器(H1)的上升沿應(yīng)與相位C(高)和B(低)的組合的開啟相一致。這相當(dāng)于在橋式電路中將晶體管3和5導(dǎo)通。我用示波器將傳感器與磁體對(duì)準(zhǔn)。我必須使用示波器的三個(gè)通道來執(zhí)行此操作。我通過連接到第二個(gè)電動(dòng)機(jī)的皮帶旋轉(zhuǎn)了電動(dòng)機(jī),并測量了兩個(gè)相組合(A和B,A和C)之間的反電動(dòng)勢,這是下圖中的兩個(gè)正弦波。然后,在示波器的通道3上查看來自霍爾傳感器2之一的信號(hào)。旋轉(zhuǎn)霍爾傳感器底座,直到霍爾傳感器的上升沿與換向應(yīng)發(fā)生的點(diǎn)完全對(duì)準(zhǔn)為止(請(qǐng)參見下圖)。我現(xiàn)在意識(shí)到,只需兩個(gè)通道即可進(jìn)行相同的校準(zhǔn)。如果使用相位組合B-C的BEMF,則H2的上升沿將與B-C曲線的零交叉重合。

此處應(yīng)進(jìn)行換向的原因是要始終保持盡可能高的電動(dòng)機(jī)轉(zhuǎn)矩。反電動(dòng)勢與扭矩成正比,您會(huì)注意到,每次換向都會(huì)在反電動(dòng)勢越過下一相曲線以下時(shí)發(fā)生。因此,實(shí)際扭矩由每個(gè)相組合的最高部分組成。

如果您無法使用示波器,這是我進(jìn)行對(duì)準(zhǔn)的一個(gè)想法。對(duì)于任何想了解BLDC電機(jī)工作原理的人來說,這實(shí)際上都是一個(gè)有趣的練習(xí)。如果將電動(dòng)機(jī)A相(正相)和B相(負(fù)相)連接到電源并打開電源,則電動(dòng)機(jī)將旋轉(zhuǎn)一小段然后停止。然后,如果將負(fù)極電源線移至C相并打開電源,則電動(dòng)機(jī)將轉(zhuǎn)動(dòng)一點(diǎn)然后停止。序列的下一部分將是將正極引線移至B相,依此類推。執(zhí)行此操作時(shí),電動(dòng)機(jī)將始終在轉(zhuǎn)矩為零的點(diǎn)處停止,該點(diǎn)在圖形上與圖形與x軸交叉的位置之一相對(duì)應(yīng)。注意,第三相組合的零對(duì)應(yīng)于前兩個(gè)組合的換向位置。因此,B-C組合的零扭矩位置是您要定位H2上升沿的位置。用細(xì)標(biāo)記或鋒利的刀片標(biāo)記該位置,然后使用DMM調(diào)整霍爾傳感器安裝座,直到H2的輸出準(zhǔn)確地在該標(biāo)記上變高。即使您在此校準(zhǔn)中稍有偏離,電動(dòng)機(jī)也應(yīng)能正常工作。

步驟8:電力電子設(shè)備

三個(gè)電機(jī)相將從L6234三相電動(dòng)機(jī)驅(qū)動(dòng)器。我發(fā)現(xiàn)它是經(jīng)受時(shí)間考驗(yàn)的好產(chǎn)品。使用電力電子設(shè)備,有很多方法可以無意間炸炸您的組件,而我不是電氣工程師,所以我并不總是完全了解發(fā)生了什么。在我的學(xué)校項(xiàng)目中,我們還用6個(gè)MOSFET晶體管和6個(gè)二極管制成了自己的三相半橋。我們將它與另一個(gè)驅(qū)動(dòng)程序(Intersil的HIP4086)一起使用,但是在設(shè)置時(shí)遇到了很多問題-我們燒壞了一堆晶體管和芯片。

我運(yùn)行L6234(從而運(yùn)行了電動(dòng)機(jī))在12V

L6234具有一組不尋常的輸入來控制6晶體管半橋。而不是為每個(gè)晶體管提供一個(gè)輸入,而是為三相的每一個(gè)提供一個(gè)使能(EN)輸入,然后通過另一個(gè)輸入(IN)選擇該相中的哪個(gè)晶體管導(dǎo)通(上或下)。例如,要導(dǎo)通晶體管1(上部)和6(下部),EN1和EN3都為高電平(EN2為低電平以保持該相截止),IN1為高電平,IN3為低電平。

盡管L6234應(yīng)用筆記建議將用于控制電機(jī)速度的PWM應(yīng)用于IN引腳,但我還是決定在EN引腳上使用它,因?yàn)檎J(rèn)為將一個(gè)相位的上,下晶體管交替導(dǎo)通將是“怪異的”。實(shí)際上,同時(shí)打開兩個(gè)相的低晶體管似乎沒有錯(cuò),因?yàn)樗鼈兲幱谙嗤碾妱?,因此任何一個(gè)都不會(huì)流過電流。用我的方法,在PWM頻率上交替啟用和禁用高相,而在整個(gè)換向期間保持低相導(dǎo)通。

下面是電機(jī)驅(qū)動(dòng)器的示意圖,我已經(jīng)在其中添加了與Arduino開發(fā)板的引腳連接。我還在電池正極和電路之間加了一個(gè)2.5 Amp的保險(xiǎn)絲,在電源和接地之間加了一個(gè)100 uF的電容,以減少再生電流的紋波。該圖有點(diǎn)小,因此請(qǐng)查看L6234的文檔以獲取較大版本。

注意:Mike Anton為L6234制作了PCB,(我相信)可以代替

http://manton.wikidot.com/open:bldc-motor-driver

https://www.tindie.com/stores/manton/

第9步:再生制動(dòng)

因?yàn)榈侥壳盀橹刮疫€沒有找到很多有關(guān)三相電動(dòng)機(jī)再生制動(dòng)的信息,所以我將描述我對(duì)它的工作原理的理解。請(qǐng)注意,我不是電氣工程師,因此請(qǐng)對(duì)我的解釋進(jìn)行任何更正。

在進(jìn)行電動(dòng)機(jī)驅(qū)動(dòng)時(shí),控制系統(tǒng)以使轉(zhuǎn)矩最大的方式將電流發(fā)送到電動(dòng)機(jī)的三個(gè)相中。在再生制動(dòng)中,控制系統(tǒng)也會(huì)使轉(zhuǎn)矩最大化,但這一次是負(fù)轉(zhuǎn)矩,這會(huì)導(dǎo)致電動(dòng)機(jī)減速,同時(shí)將電流傳回電池。

我使用的再生制動(dòng)方法來了摘自美國政府Oakridge國家實(shí)驗(yàn)室的論文。這個(gè)實(shí)驗(yàn)室對(duì)汽車的電動(dòng)機(jī)做了很多研究。下圖來自另一篇論文,有助于說明其工作原理(但是,我認(rèn)為第二篇論文中的解釋部分不正確)。請(qǐng)記住,電動(dòng)機(jī)相位中的BEMF電壓會(huì)隨著電動(dòng)機(jī)旋轉(zhuǎn)而上升和下降。在該圖中,顯示了一個(gè)瞬間,其中B相的BEMF高,而A相的低。在這種情況下,電流有可能從B流到A。

再生制動(dòng)的關(guān)鍵是低端晶體管正在快速導(dǎo)通和關(guān)斷(PWM每秒切換數(shù)千次)。當(dāng)高端晶體管開關(guān)為OFF時(shí);當(dāng)?shù)途w管導(dǎo)通時(shí),電流如第一幅圖所示流動(dòng)。用電力電子學(xué)的術(shù)語來說,電路就像一個(gè)稱為升壓轉(zhuǎn)換器的設(shè)備,能量存儲(chǔ)在電機(jī)相中(維基百科上有一篇很好的文章解釋了升壓轉(zhuǎn)換器的工作原理)。當(dāng)?shù)投司w管截止時(shí),該能量被釋放,但電壓更高,電流瞬間流過每個(gè)晶體管旁邊的“反激”二極管,然后流回電池。二極管可防止電流從電池流向電動(dòng)機(jī)。同時(shí),沿該方向(與電動(dòng)機(jī)相反)的電流與磁鐵環(huán)相互作用,產(chǎn)生負(fù)轉(zhuǎn)矩,使電動(dòng)機(jī)減速。低側(cè)晶體管通過PWM進(jìn)行開關(guān),PWM的占空比控制制動(dòng)量。

在進(jìn)行電動(dòng)機(jī)驅(qū)動(dòng)時(shí),電動(dòng)機(jī)的換向在適當(dāng)?shù)臅r(shí)候從一個(gè)相組合切換到下一個(gè)相組合,以保持較高的轉(zhuǎn)矩。盡可能。再生制動(dòng)的換向非常相似,因?yàn)橐欢ǖ那袚Q模式可以使電動(dòng)機(jī)產(chǎn)生最大可能的負(fù)轉(zhuǎn)矩。

如果您在第1步中觀看視頻,則可以看到再生制動(dòng)有效,但是不能很好地工作。我認(rèn)為主要原因是我使用的硬盤驅(qū)動(dòng)器馬達(dá)是一個(gè)低扭矩的馬達(dá),因此除了最高速度外,它不會(huì)產(chǎn)生太多的BEMF。在較低的速度下,幾乎沒有再生制動(dòng)。另外,我的系統(tǒng)在相對(duì)較低的電壓(12 V)下運(yùn)行,并且由于通過反激二極管的每條路徑都會(huì)使電壓下降幾伏,因此效率也大大降低了。我使用普通的整流二極管,如果使用一些具有較低壓降的特殊二極管,則可能會(huì)獲得更好的性能。

步驟10:與Arduino的連接

下面是arduino上的輸入和輸出列表。還包括我的電路板的圖和照片。

2-霍爾1數(shù)字輸入-還將120 K電阻連接到gnd

3-霍爾2數(shù)字輸入-也將120 K電阻器連接到gnd

4-霍爾3個(gè)數(shù)字輸入-同樣是120 K電阻至接地5-IN 1數(shù)字輸出與400歐姆電阻串聯(lián)

6-IN 2數(shù)字輸出與400歐姆電阻

7串聯(lián)-IN 3數(shù)字輸出與400歐姆電阻串聯(lián)的電阻

9-EN 1與400歐姆電阻串聯(lián)的數(shù)字輸出

10-EN 2與400歐姆電阻串聯(lián)的數(shù)字輸出

11-EN 3與400歐姆電阻串聯(lián)的數(shù)字輸出

100 k歐姆電位計(jì)連接到+ 5V,兩端接地,中間為模擬引腳0。該電位器用于控制電動(dòng)機(jī)速度和制動(dòng)量。

+ 5V電源也用于運(yùn)行霍爾傳感器(請(qǐng)參見步驟5)。

步驟11 :用于Arduino的控制軟件

下面是我為Ardjuino編寫的整個(gè)程序,并帶有注釋:

/*

* BLDC_congroller 3.1。 1

* by David Glaser

*

* 3.x系列程序適用于ST L6234三相電動(dòng)機(jī)驅(qū)動(dòng)器IC

*

*順時(shí)針運(yùn)行磁盤驅(qū)動(dòng)器電動(dòng)機(jī)

*帶再生制動(dòng)

*電機(jī)速度和制動(dòng)由單個(gè)電位器控制

*電機(jī)位置由三個(gè)霍爾效應(yīng)傳感器確定

* Arduino接收來自3個(gè)霍爾傳感器的輸出(引腳2,3 ,4)*并將它們的組合轉(zhuǎn)換為6個(gè)不同的換相步長

*在引腳9,10,11上以32 kHz的PWM輸出(分別對(duì)應(yīng)于EN 1,2,3

* 3 DO引腳5,6,7(IN 1,2,3)

*模擬輸入0連接到電位計(jì)以更改PWM占空比并更改

*電動(dòng)和再生制動(dòng)。

* 0-499:制動(dòng)

* 500-523:滑行

* 524-1023:電動(dòng)

*注釋了很多行,這些行用于

*將各種值打印到串行連接。

*/

int HallState1;//三個(gè)霍爾傳感器(3,2,1)的變量

int HallState2;

int HallState3;

int HallVal = 1;//所有3個(gè)霍爾傳感器的二進(jìn)制值

int mSpeed = 0;//電動(dòng)機(jī)的轉(zhuǎn)速等級(jí)

int bSpeed = 0;//制動(dòng)水平

int油門= 0;//此變量與模擬輸入一起使用,以測量油門電位器的位置。

void setup(){

pinMode(2,INPUT);//Hall 1

pinMode(3,INPUT);//Hall 2

pinMode(4,INPUT);//Hall 3

//L6234電動(dòng)機(jī)驅(qū)動(dòng)器的輸出

pinMode(5,OUTPUT);//IN 1

pinMode(6,OUTPUT);//IN 2

pinMode(7,OUTPUT);//IN 3

pinMode(9,OUTPUT);//EN 1

pinMode(10,OUTPUT);//EN 2

pinMode(11,OUTPUT);//EN 3

//Serial.begin(9600);//如果要使用串行連接,請(qǐng)取消注釋此行

//還要在程序末尾取消注釋Serial.flush命令。

/*在引腳9,10和11

上設(shè)置PWM頻率//一部分代碼來自

http://usethearduino.blogspot.com/2008/11/changing-pwm-frequency-on-arduino.html

*/

//為引腳9,10設(shè)置PWM至32 kHz

//首先清除所有三個(gè)預(yù)分頻器位:

int prescalerVal = 0x07;//創(chuàng)建一個(gè)名為prescalerVal的變量,并將其設(shè)置為等于二進(jìn)制數(shù)“ 00000111”數(shù)字“ 00000111”數(shù)字“ 00000111”

TCCR1B&=?prescalerVal;//并用二進(jìn)制數(shù)“ 11111000”將TCCR0B中的值與

//現(xiàn)在設(shè)置適當(dāng)?shù)念A(yù)分頻器位:

int prescalerVal2 = 1;//將prescalerVal設(shè)置為等于二進(jìn)制數(shù)“ 00000001”

TCCR1B | = prescalerVal2;//或用二進(jìn)制數(shù)“ 00000001”對(duì)TCCR0B中的值進(jìn)行操作

//將引腳3,11設(shè)置為32 kHz至32 kHz(此程序僅使用引腳11)

//首先清除所有三個(gè)預(yù)分頻器位:

TCCR2B&=?prescalerVal;//與TCCR0B中的值一起使用二進(jìn)制數(shù)“ 11111000”

//現(xiàn)在設(shè)置適當(dāng)?shù)念A(yù)分頻器位:

TCCR2B | = prescalerVal2;//或用二進(jìn)制數(shù)“ 00000001”對(duì)TCCR0B中的值進(jìn)行////首先清除所有三個(gè)預(yù)分頻器位:

}

//PRGROM的主循環(huán)

void loop(){

//time = millis();

//打印自程序啟動(dòng)以來的時(shí)間

//Serial.println(time);

//Serial.print(“ ”);

節(jié)氣門= AnalogRead(0);//油門電位器的值

mSpeed = map(throttle,512,1023,0,255);//電機(jī)映射到電位計(jì)的上半部

bSpeed = map(throttle,0,511,255,0);//鍋底一半的再生制動(dòng)

//mSpeed = 100;//用于調(diào)試

HallState1 = digitalRead(2);//從1號(hào)大廳讀取輸入值

HallState2 = digitalRead(3);//從2號(hào)大廳讀取輸入值

HallState3 = digitalRead(4);//從3號(hào)大廳讀取輸入值

//digitalWrite(8,HallState1);//當(dāng)對(duì)應(yīng)的傳感器為高電平時(shí)LED點(diǎn)亮-最初用于調(diào)試

//digitalWrite(9,HallState2);

//digitalWrite(10,HallState3);

HallVal =(HallState1) +(2 * HallState2)+(4 * HallState3);//計(jì)算3個(gè)霍爾傳感器的二進(jìn)制值

/*Serial.print(“H 1:“);//用于調(diào)試

Serial.println(HallState1);

Serial.print(“ H 2:”);

Serial.println(HallState2);

Serial.print(“ H 3: “);

Serial.println(HallState3);

Serial.println(”“);

*/

//Serial.println(mSpeed);

//Serial.println(HallVal);

//Serial.print(” “);

//監(jiān)視晶體管輸出

//delay(1000);

/* T1 = digitalRead(2);

//T1 =?T1;

T2 = digitalRead(4);

//T2 =?T2;

T3 = digitalRead(5 );

//T3 =?T3;

Serial.print(T1);

Serial.print(“ t”);

Serial.print(T2);

串行。 print(“ t”);

Serial.print(T3);

Serial.print(“ n”);

Serial.print(“ n”);

Serial.print (digitalRead(3));

Serial.print(“ t”);

Serial.print(digitalRead(9));

Serial.print(“ t”);

串行.println(digitalRead(10));

Serial.print(“ n”);

Serial.print(“ n”);

//延遲(500);

*/

//電機(jī)換向

//每個(gè)二進(jìn)制數(shù)都有一個(gè)對(duì)應(yīng)于打開的不同晶體管的情況

//位數(shù)學(xué)用于更改輸出的值

//對(duì)于本教程在Arduino的位上:http://www.arduino.cc/playground/Code/BitMath

//PORTD包含L6234驅(qū)動(dòng)器上的IN引腳的輸出

//,該輸出確定是高位還是低位使用各相的晶體管

//EN引腳的輸出由Ard控制uino命令A(yù)nalogWrite,其中

//設(shè)置PWM的占空比(0 = OFF,255 = ON或由電位計(jì)控制的油門值)。

if(throttle》 511){

開關(guān)( HallVal)

{

案例3:

//PORTD = B011xxx00;//引腳0-7 xxx的所需輸出是霍爾輸入,不應(yīng)更改。

PORTD&= B00011111;

PORTD | = B01100000;//

AnalogWrite(9,mSpeed);//A相上的PWM(高端晶體管)

AnalogWrite(10,0);//關(guān)閉B相(占空比= 0)

AnalogWrite(11,255);//C相導(dǎo)通-占空比= 100%(低壓晶體管)

斷開;

情況1:

//PORTD = B001xxx00;//引腳0-7

的所需輸出PORTD&= B00011111;//

PORTD | = B00100000;//

AnalogWrite(9,mSpeed);//A相上的PWM(高端晶體管)

AnalogWrite(10,255);//(低端晶體管)上的B相

analogWrite(11,0);//關(guān)閉階段B(占空比= 0)

中斷;

情況5:

//PORTD = B101xxx00;//引腳0-7

的所需輸出PORTD&= B00011111;//

PORTD | = B10100000;

模擬寫(9,0);

模擬寫(10,255);

模擬寫(11,mSpeed);

中斷;

情況4:

//PORTD = B100xxx00;//引腳0-7所需的輸出

PORTD&= B00011111;

PORTD | = B10000000;//

模擬寫(9,255);

模擬寫(10,0);

模擬寫(11,mSpeed);

中斷;

情況6:

//PORTD = B110xxx00;//引腳0-7所需的輸出

PORTD&= B00011111;

PORTD = B11000000;
責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7576

    瀏覽量

    151721
  • BLDC
    +關(guān)注

    關(guān)注

    207

    文章

    803

    瀏覽量

    97034
  • 位置傳感器
    +關(guān)注

    關(guān)注

    3

    文章

    270

    瀏覽量

    27527
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6473

    瀏覽量

    187423
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    采用MSP430微控制器的RF430FRL152H NFC傳感器標(biāo)簽應(yīng)用示例

    電子發(fā)燒友網(wǎng)站提供《采用MSP430微控制器的RF430FRL152H NFC傳感器標(biāo)簽應(yīng)用示例.pdf》資料免費(fèi)下載
    發(fā)表于 10-26 11:04 ?0次下載
    采用MSP430<b class='flag-5'>微控制器</b>的RF430FRL152H NFC<b class='flag-5'>傳感器</b>標(biāo)簽應(yīng)用示例

    使用MSP430的有傳感器3相BLDC電機(jī)控制

    電子發(fā)燒友網(wǎng)站提供《使用MSP430的有傳感器3相BLDC電機(jī)控制.pdf》資料免費(fèi)下載
    發(fā)表于 10-18 10:29 ?0次下載
    使用MSP430的有<b class='flag-5'>傳感器</b>3相<b class='flag-5'>BLDC</b>電機(jī)<b class='flag-5'>控制</b>

    電動(dòng)車用萬能控制器不用霍爾可以嗎

    電動(dòng)車的控制器是電動(dòng)車系統(tǒng)中非常重要的一個(gè)部件,它負(fù)責(zé)控制電機(jī)的啟動(dòng)、運(yùn)行、停止以及速度調(diào)節(jié)等功能。霍爾傳感器Hall sensor)是控制器
    的頭像 發(fā)表于 10-15 10:24 ?1024次閱讀

    BLDC電機(jī)的無傳感器梯形控制

    電子發(fā)燒友網(wǎng)站提供《BLDC電機(jī)的無傳感器梯形控制.pdf》資料免費(fèi)下載
    發(fā)表于 10-12 11:32 ?2次下載
    <b class='flag-5'>BLDC</b>電機(jī)的無<b class='flag-5'>傳感器</b>梯形<b class='flag-5'>控制</b>

    什么是微控制器/它的關(guān)鍵組成部分有哪些?

    微控制器
    芯廣場
    發(fā)布于 :2024年09月18日 15:02:33

    TMP1826和TMP1827單線溫度傳感器主機(jī)控制器實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《TMP1826和TMP1827單線溫度傳感器主機(jī)控制器實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 09-10 09:37 ?1次下載
    TMP1826和TMP1827單線溫度<b class='flag-5'>傳感器</b>主機(jī)<b class='flag-5'>控制器</b>的<b class='flag-5'>實(shí)現(xiàn)</b>

    無刷直流電機(jī)控制器的工作過程

    電機(jī)的速度、方向和扭矩,同時(shí)確保電機(jī)的高效和穩(wěn)定運(yùn)行。這通常通過以下步驟實(shí)現(xiàn): 電機(jī)模型和控制理論 :理解電機(jī)的工作原理,包括其電磁特性和動(dòng)力學(xué)模型。 傳感器和信號(hào)處理 :使用霍爾傳感器
    的頭像 發(fā)表于 09-03 10:30 ?472次閱讀

    基于MSPM0 MCU實(shí)現(xiàn)采用無傳感器FOC算法的BLDC和PMSM控制

    電子發(fā)燒友網(wǎng)站提供《基于MSPM0 MCU實(shí)現(xiàn)采用無傳感器FOC算法的BLDC和PMSM控制.pdf》資料免費(fèi)下載
    發(fā)表于 09-02 10:21 ?2次下載
    基于MSPM0 MCU<b class='flag-5'>實(shí)現(xiàn)</b>采用無<b class='flag-5'>傳感器</b>FOC算法的<b class='flag-5'>BLDC</b>和PMSM<b class='flag-5'>控制</b>

    微控制器內(nèi)部的存儲(chǔ)有哪些

    微控制器(MCU)內(nèi)部的存儲(chǔ)微控制器系統(tǒng)的重要組成部分,它負(fù)責(zé)存儲(chǔ)程序代碼、數(shù)據(jù)以及控制邏輯等信息。這些存儲(chǔ)類型多樣,各具特點(diǎn),共同支
    的頭像 發(fā)表于 08-22 10:41 ?834次閱讀

    微控制器的結(jié)構(gòu)和應(yīng)用

    微控制器(Microcontroller Unit,簡稱MCU)作為嵌入式系統(tǒng)的核心部件,其原理和應(yīng)用在現(xiàn)代科技發(fā)展中占據(jù)了舉足輕重的地位。本文將從微控制器的原理、基本結(jié)構(gòu)、工作原理、性能特點(diǎn)以及廣泛的應(yīng)用領(lǐng)域等方面進(jìn)行詳細(xì)闡述,旨在全面介紹
    的頭像 發(fā)表于 08-22 10:40 ?1231次閱讀

    傳感器控制器有什么區(qū)別

    在現(xiàn)代科技和工業(yè)領(lǐng)域中,傳感器控制器是兩個(gè)至關(guān)重要的組成部分。它們各自扮演著獨(dú)特的角色,并在自動(dòng)控制系統(tǒng)中發(fā)揮著不可替代的作用。本文將對(duì)傳感器
    的頭像 發(fā)表于 06-17 14:50 ?1388次閱讀

    微控制器與運(yùn)動(dòng)控制器的區(qū)別

    隨著現(xiàn)代工業(yè)技術(shù)的快速發(fā)展,控制技術(shù)在各種機(jī)械設(shè)備中扮演著越來越重要的角色。微控制器和運(yùn)動(dòng)控制器作為兩種常見的控制設(shè)備,在各自的領(lǐng)域發(fā)揮著重要作用。然而,兩者在功能、應(yīng)用、特點(diǎn)等方面存
    的頭像 發(fā)表于 06-13 14:52 ?674次閱讀

    如何通過電機(jī)的霍爾傳感器讀取位置實(shí)現(xiàn)位置環(huán)控制

    如何通過電機(jī)的霍爾傳感器讀取位置實(shí)現(xiàn)位置環(huán)控制
    發(fā)表于 03-19 08:04

    如何通過電機(jī)的霍爾傳感器讀取位置實(shí)現(xiàn)位置環(huán)控制?

    如何通過電機(jī)的霍爾傳感器讀取位置實(shí)現(xiàn)位置環(huán)控制
    發(fā)表于 03-06 07:18

    基于瑞薩微控制器的霍爾傳感器應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《基于瑞薩微控制器的霍爾傳感器應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 01-29 14:01 ?2次下載
    基于瑞薩<b class='flag-5'>微控制器</b>的霍爾<b class='flag-5'>傳感器</b>應(yīng)用說明