chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認(rèn)識你,還能領(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個通道)《

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

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

材料

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

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

硬盤驅(qū)動器上的幾(3-6)個銀盤

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

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

電子面包板

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

一個Arduino Duemilanove微控制器

三個120 k歐姆電阻

六個?400歐姆電阻

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

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

兩個100 uF電容器

一個10 nF電容

一個220 nF電容器

一個1 uF電容器

一個100 uF電容器

三個整流二極管

一個2.5安培保險絲

一個保險絲座

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

三個1 K電阻器

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

12 V愛好型鉛酸電池

步驟3:了解BLDC控制

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

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

MOSFET晶體管

三相半橋

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

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

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

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

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

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

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

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

步驟4:電機(jī)

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

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

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

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

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

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

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

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

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

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

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

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

逆時針方向:BC,BA,CA,CB,AB,AC

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

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

另外,請注意,如果將電壓施加到兩相中,則電動機(jī)稍微移動然后停止。這是因?yàn)榕ぞ刈優(yōu)榱?。您可以在下面的第四張照片中看到這一點(diǎn),該照片顯示了一對電機(jī)相位的反電動勢。這是一個正弦波。當(dāng)波穿過x軸時,該相位提供的扭矩為零。在六步BLDC換向序列中,這永遠(yuǎn)不會發(fā)生。在特定相位上的扭矩變低之前,將電源切換到另一相組合。

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

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

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

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

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

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

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

步驟6:霍爾傳感器電路

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

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

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

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

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

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

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

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

L6234具有一組不尋常的輸入來控制6晶體管半橋。而不是為每個晶體管提供一個輸入,而是為三相的每一個提供一個使能(EN)輸入,然后通過另一個輸入(IN)選擇該相中的哪個晶體管導(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)為將一個相位的上,下晶體管交替導(dǎo)通將是“怪異的”。實(shí)際上,同時打開兩個相的低晶體管似乎沒有錯,因?yàn)樗鼈兲幱谙嗤碾妱?,因此任何一個都不會流過電流。用我的方法,在PWM頻率上交替啟用和禁用高相,而在整個換向期間保持低相導(dǎo)通。

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

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

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

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

第9步:再生制動

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

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

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

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

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

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

步驟10:與Arduino的連接

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

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

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

4-霍爾3個數(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。該電位器用于控制電動機(jī)速度和制動量。

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

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

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

/*

* BLDC_congroller 3.1。 1

* by David Glaser

*

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

*

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

*帶再生制動

*電機(jī)速度和制動由單個電位器控制

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

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

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

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

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

*電動和再生制動。

* 0-499:制動

* 500-523:滑行

* 524-1023:電動

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

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

*/

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

int HallState2;

int HallState3;

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

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

int bSpeed = 0;//制動水平

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

void setup(){

pinMode(2,INPUT);//Hall 1

pinMode(3,INPUT);//Hall 2

pinMode(4,INPUT);//Hall 3

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

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);//如果要使用串行連接,請取消注釋此行

//還要在程序末尾取消注釋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

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

int prescalerVal = 0x07;//創(chuàng)建一個名為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”對TCCR0B中的值進(jìn)行操作

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

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

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

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

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

}

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

void loop(){

//time = millis();

//打印自程序啟動以來的時間

//Serial.println(time);

//Serial.print(“ ”);

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

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

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

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

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

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

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

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

//digitalWrite(9,HallState2);

//digitalWrite(10,HallState3);

HallVal =(HallState1) +(2 * HallState2)+(4 * HallState3);//計(jì)算3個霍爾傳感器的二進(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ī)換向

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

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

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

//PORTD包含L6234驅(qū)動器上的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ī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    8193

    瀏覽量

    160403
  • BLDC
    +關(guān)注

    關(guān)注

    215

    文章

    892

    瀏覽量

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

    關(guān)注

    3

    文章

    290

    瀏覽量

    28476
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6509

    瀏覽量

    195218
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    CW32電機(jī)控制基礎(chǔ)--BLDC轉(zhuǎn)子位置傳感器介紹

    轉(zhuǎn)子位置傳感器是檢測電機(jī)轉(zhuǎn)子位置傳感器,它是換相的重要依據(jù),前面文章說到的轉(zhuǎn)子與定子主磁場的夾角為120°或60°就是通過轉(zhuǎn)子位置
    的頭像 發(fā)表于 09-29 17:55 ?3823次閱讀
    CW32電機(jī)<b class='flag-5'>控制</b>基礎(chǔ)--<b class='flag-5'>BLDC</b>轉(zhuǎn)子<b class='flag-5'>位置</b><b class='flag-5'>傳感器</b>介紹

    使用位置傳感器進(jìn)行無刷電機(jī)控制

    刷直流電機(jī)或場定向控制 (FOC) 無刷交流電機(jī),確實(shí)可以實(shí)現(xiàn)無需任何旋轉(zhuǎn)角度傳感器即可工作。但實(shí)際情況是,工業(yè)和人形機(jī)器人、自主移動機(jī)器人和直線電機(jī)運(yùn)輸系統(tǒng)等終端設(shè)備,旋轉(zhuǎn)角度傳感器
    的頭像 發(fā)表于 08-07 14:25 ?5300次閱讀
    使用<b class='flag-5'>位置</b><b class='flag-5'>傳感器</b>進(jìn)行無刷電機(jī)<b class='flag-5'>控制</b>

    用擇多函數(shù)實(shí)現(xiàn)反電動勢濾波的無傳感器BLDC

    傳感器控制與無傳感器控制的對比由于 BLDC 電機(jī)具有尺寸小、可控制性好、效率高的特點(diǎn),常用于
    發(fā)表于 08-05 14:25

    帶霍爾式位置傳感器BLDCM控制器設(shè)計(jì)

    位置傳感器的無刷直流電機(jī)一般采用霍爾式位置傳感器測定轉(zhuǎn)子磁極位置,為電子換相提供依據(jù),非常便于實(shí)現(xiàn)
    發(fā)表于 07-24 11:47

    位置傳感器無刷直流電機(jī)的+FPGA+控制實(shí)現(xiàn)

    硬件語言編程實(shí)現(xiàn)了 PI 調(diào)節(jié)模塊、過零檢測模塊,脈沖寬度調(diào)制發(fā)生模塊、換相模塊、啟動模塊等功能,整個控制系統(tǒng)響應(yīng)速度快、超調(diào)小,穩(wěn)態(tài)誤差小,可靠性高、靈活性強(qiáng),實(shí)現(xiàn)了全數(shù)字控制,在
    發(fā)表于 07-10 16:35

    BLDC無感控制與有感控制

    帶動轉(zhuǎn)子同步轉(zhuǎn)動的控制方式。而檢測轉(zhuǎn)子磁極位置又可分為電機(jī)帶霍爾傳感器(有感)以及不帶霍爾傳感器方法,檢測轉(zhuǎn)子磁極位置的方法不同,會直接
    的頭像 發(fā)表于 06-11 15:04 ?4246次閱讀
    <b class='flag-5'>BLDC</b>無感<b class='flag-5'>控制</b>與有感<b class='flag-5'>控制</b>

    ADUCM356集成化學(xué)傳感器接口的精密模擬微控制器技術(shù)手冊

    ADuCM356是一款片內(nèi)系統(tǒng),可控制和測量電化學(xué)傳感器和生物傳感器。ADuCM356是一款基于Arm^?^ Cortex ^?^ -M3處理的超低功耗混合信號
    的頭像 發(fā)表于 05-08 09:55 ?588次閱讀
    ADUCM356集成化學(xué)<b class='flag-5'>傳感器</b>接口的精密模擬<b class='flag-5'>微控制器</b>技術(shù)手冊

    BLDC位置傳感器控制的關(guān)鍵技術(shù)問題剖析(可下載)

    一、概述在無刷直流電機(jī)控制系統(tǒng)中,位置傳感器(如霍爾傳感器等)雖然為轉(zhuǎn)子位置提供了最直接最有效 的檢測方法,但是它們也使電機(jī)的體積變大,需要
    發(fā)表于 04-08 15:27 ?1次下載

    電機(jī)技術(shù)資料—BLDC 電機(jī)控制算法

    了更多線的使用和更高的成本。 無傳感器 BLDC控制省去了對于霍爾傳感器的需要,而是采用電機(jī)的反電動勢(電動勢)來預(yù)測轉(zhuǎn)子位置。無
    發(fā)表于 04-01 16:43

    工程碩士論文——基于FOC的永磁同步電機(jī)全速域無位置傳感器控制策略

    基于 STM32F401RET6 微控制器的永磁同步電機(jī)實(shí)驗(yàn)平臺的搭建,分別對實(shí)驗(yàn)平臺的硬件和軟件進(jìn)行了介紹,通過實(shí)驗(yàn)驗(yàn)證了本文所提出的基于 FOC 的永磁同步電機(jī)全速域無位置傳感器控制
    發(fā)表于 03-06 12:39

    位置傳感器的類型和用途是什么?

    在科技日新月異的今天,位置傳感器作為現(xiàn)代工業(yè)和電子技術(shù)中不可或缺的一部分,正發(fā)揮著越來越重要的作用。它們通過精確檢測物體的位置信息并將其轉(zhuǎn)換為電信號,實(shí)現(xiàn)對物體
    的頭像 發(fā)表于 03-05 17:29 ?1082次閱讀
    <b class='flag-5'>位置</b><b class='flag-5'>傳感器</b>的類型和用途是什么?

    使用旋轉(zhuǎn)電感式位置傳感器的三相BLDC電機(jī)的磁場定向控制(FOC)

    電子發(fā)燒友網(wǎng)站提供《使用旋轉(zhuǎn)電感式位置傳感器的三相BLDC電機(jī)的磁場定向控制(FOC).pdf》資料免費(fèi)下載
    發(fā)表于 01-22 16:41 ?2次下載
    使用旋轉(zhuǎn)電感式<b class='flag-5'>位置</b><b class='flag-5'>傳感器</b>的三相<b class='flag-5'>BLDC</b>電機(jī)的磁場定向<b class='flag-5'>控制</b>(FOC)

    變壓充氮滅火設(shè)備控制器都有哪些元器件,怎樣實(shí)現(xiàn)功能

    變壓排油注氮滅火裝置控制屏 變壓充氮滅火設(shè)備控制器通常由以下幾種主要元器件組成,并通過以下方式實(shí)現(xiàn)其功能: 主要元器件:
    的頭像 發(fā)表于 11-23 17:28 ?733次閱讀
    變壓<b class='flag-5'>器</b>充氮滅火設(shè)備<b class='flag-5'>控制器</b>都有哪些元器件,怎樣<b class='flag-5'>實(shí)現(xiàn)</b>功能

    實(shí)現(xiàn)MCU與傳感器的通信方式

    在現(xiàn)代電子系統(tǒng)中,微控制器單元(MCU)與傳感器的通信是實(shí)現(xiàn)智能控制和數(shù)據(jù)采集的基礎(chǔ)。隨著技術(shù)的發(fā)展,MCU與傳感器之間的通信方式也在不斷進(jìn)
    的頭像 發(fā)表于 11-01 13:43 ?1434次閱讀

    采用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)用示例