步驟1:準備
步驟2:工具和材料
工具
數(shù)字萬用表(DMM)-如果您的DMM具有頻率計示波器(最好具有至少2個通道)《
T8 Torx驅(qū)動程序(您需要其中之一來打開任何硬盤驅(qū)動器)。一個好的硬件商店就會有它們。
機器商店和Rapid Prototype Machine(這些工具非常有用,但是我有點機靈,我認為沒有它們就可以完成該項目)。
材料
另一個硬盤驅(qū)動器上的磁環(huán)(電機的一半)。
硬盤驅(qū)動器上的幾(3-6)個銀盤
一秒鐘小型電機(直流刷過OK)
橡皮筋或(最好是)皮帶,用另一臺電機轉(zhuǎn)動BLDC
電子面包板
實心線22 AWG用于面包板連接
三個120 k歐姆電阻
六個?400歐姆電阻
線性或旋轉(zhuǎn)電位計100 k歐姆
ST Microelectronics L6234三相電動機驅(qū)動器IC
兩個100 uF電容器
一個10 nF電容器
一個220 nF電容器
一個1 uF電容器
一個100 uF電容器
三個整流二極管
一個2.5安培保險絲
一個保險絲座
3 Honeywell SS411A雙極霍爾效應數(shù)字正弦波在傳感器上
三個1 K電阻器
注意:Mike Anton已設計并正在銷售一種產(chǎn)品,該產(chǎn)品將代替本使用說明中顯示的電力電子和霍爾傳感器電路(它使用反電動勢感應控制)。規(guī)格和購買信息可在以下兩個鏈接中找到:https://www.tindie.com/stores/manton/http://manton.wikidot.com/open:bldc-motor-driver
12 V愛好型鉛酸電池
步驟3:了解BLDC控制
如果您要執(zhí)行此項目,我建議您花一些時間徹底了解BLDC的工作原理和控制方法。在線有大量參考資料可供參考(有關一些建議,請參見下文)。但是,我確實提供了一些來自我的項目的圖表和表格,這些圖表和表格可以幫助您理解。
這里列出了我認為對理解該項目最重要的概念:
三相半橋
三相電動機的六步換向《脈沖寬度調(diào)制(PWM)
霍爾效應數(shù)字位置傳感器
Microchip無刷直流電動機基本原理AVR443:ATMEL的基于傳感器的三相無刷直流電動機控制
》 Microchip的無刷直流電動機控制輕松實現(xiàn),帶飛思卡爾霍爾傳感器的三相BLDC電動機控制
一個很好的視頻,展示了一個掃氣式硬盤電動機,但作者似乎將電動機作為步進電動機運行,不作為BLDC4上L6234電動機驅(qū)動器IC上的更詳細的參考資料
網(wǎng)頁,包括數(shù)據(jù)表,應用筆記和購買信息。免費樣品http://www.st.com/stonline/domains/buy/samples/index.htm
用于混合動力電動汽車應用的PM無刷電機驅(qū)動器的設計。這是我發(fā)現(xiàn)的唯一描述再生制動換向順序的論文。
這篇論文《電動汽車的再生制動》很有用,我從中借鑒了一些數(shù)據(jù),但我認為它錯誤地描述了再生的工作原理。
步驟4:電機
我使用打撈的磁盤驅(qū)動器電機完成了這個項目,因為它很容易實現(xiàn),而且我喜歡學習BLDC的繩索的想法使用小型低壓電動機進行控制,不會造成任何安全問題。另外,霍爾傳感器的磁體的配置也非常簡單,它使用了第二個電動機的磁環(huán)(轉(zhuǎn)子)(請參見步驟4)。
如果您不想全部在安裝和校準霍爾傳感器時遇到麻煩(步驟5-7),我知道至少有一些CD/DVD驅(qū)動器電機內(nèi)置了霍爾傳感器。
要在電動機上提供一些旋轉(zhuǎn)慣量并給它們一點點要承受的負載,我在電機上放了5個硬盤驅(qū)動器磁盤,輕輕地粘在一起,并用少許強力膠粘到了電機上(這使飛輪進入了我的原始項目)。
如果要卸下電機從硬盤驅(qū)動器上,您將需要一個T8梅花形螺絲刀來擰開外殼(通常在中心有一兩個螺釘,這些螺釘隱藏在粘貼式標簽的后面),以及用于將電動機固定到位的內(nèi)部螺釘。您還需要卸下磁頭讀取器(音圈致動器),以便卸下存儲磁盤才能到達電機。
此外,您還需要另一臺相同的硬盤驅(qū)動器電動機,從中卸下轉(zhuǎn)子(內(nèi)部有一個磁鐵環(huán))。為了將電動機拉開,我用虎鉗夾住電動機的轉(zhuǎn)子(頂部),然后用兩把螺絲起子分開180度,在定子(底部)上撬動。將虎鉗固定在虎鉗中而不變形不會那么容易。為此,您可能需要構(gòu)建一組木制的V型塊。
我在車床上的磁環(huán)上鉆了一個孔,以便將其緊密地安裝在電動機的頂部。如果您無法使用車床,則可以使用強力膠將倒轉(zhuǎn)的轉(zhuǎn)子固定到電動機上。
下面的照片2和3顯示了我拉開的其中一個電動機的內(nèi)部。在上半部分(轉(zhuǎn)子)的內(nèi)部有8極(用塑料包裹的磁鐵)。在下半部分(定子)上有12個槽(繞組)。三相電動機的每一相都有4個串聯(lián)的插槽。
某些HD電動機的底部有三個觸點,每一相一個,還有一個是電動機的中心抽頭(其中三個相遇)。在此項目中,不需要中央分接頭,但在無傳感器控制中,它可以派上用場(我希望這些天之一可以發(fā)布有關無傳感器控制的說明)。如果您的電動機有四個觸點,則可以用歐姆表識別相。電阻位于中心抽頭和相位之間,是兩相電阻的一半。
關于BLDC電動機的大多數(shù)文獻都涉及梯形反電動勢波形,但硬盤驅(qū)動器似乎具有看起來為正弦的反電動勢(請參閱參考資料)。下圖)。據(jù)我所知,雖然效率可能會有所降低,但使用方波PWM驅(qū)動正弦電動機效果很好。
與所有BLDC電動機一樣,該電動機由三相半電動機驅(qū)動-晶體管橋(請參見下面的第二張照片)。我將ST Microelectronics(L6234)制造的IC用于電橋,也稱為電機驅(qū)動器。 L6234的電氣連接在步驟8中顯示。下面的第三張照片顯示了電動機驅(qū)動器和三個電動機相位的示意圖。
為了使電動機順時針運行,將按照以下順序進行切換(第一個字母為上方的晶體管,第二個字母為下方的晶體管):
第1步3 2 5 6 6順時針:CB ,AB,AC,BC,BA,CA
逆時針方向:BC,BA,CA,CB,AB,AC
此6步序列需要360度“電度”,但對于這些電機,僅90物理度。因此,該序列每電動機旋轉(zhuǎn)發(fā)生四次??磥磉@兩個序列是相同的,但它們卻不相同,因為對于6步序列中的每一步,通過相的電流對于CW而言是一個方向,而對于CCW而言是相反的方向。
您可以通過從電池或電源向任意兩個電機相施加電壓來親自查看。如果施加電壓,電機將向一個方向轉(zhuǎn)動一點,然后停止。如果您可以按照上述順序之一快速更改相電壓,則可以手動旋轉(zhuǎn)電動機。當電動機高速運行時,晶體管和微控制器非常迅速地完成所有這些切換,每秒每秒數(shù)百次。
另外,請注意,如果將電壓施加到兩相中,則電動機稍微移動然后停止。這是因為扭矩變?yōu)榱恪D梢栽谙旅娴牡谒膹堈掌锌吹竭@一點,該照片顯示了一對電機相位的反電動勢。這是一個正弦波。當波穿過x軸時,該相位提供的扭矩為零。在六步BLDC換向序列中,這永遠不會發(fā)生。在特定相位上的扭矩變低之前,將電源切換到另一相組合。
步驟5:霍爾傳感器機械設置
大型BLDC電機通常在電機內(nèi)部裝有霍爾傳感器。如果您有這樣的電動機,則可以跳過此步驟。另外,我了解到至少有一些CD/DVD驅(qū)動器電動機具有內(nèi)置霍爾傳感器。
三個霍爾傳感器用于在電動機旋轉(zhuǎn)時進行位置檢測,因此換向發(fā)生在正確的瞬間。我的高清電機的運行速度高達9000 RPM(150 Hz)。由于每轉(zhuǎn)有24個換向,因此以9000 RPM的換向每280微秒發(fā)生一次。 Arduino微控制器以16 MHz運行,因此每個時鐘周期為0.06微秒。我不知道執(zhí)行換向需要多少個時鐘周期,但是即使花費100個時鐘,每個換向也需要5微秒。
HD電機沒有霍爾傳感器,因此有必要將其安裝到電機的外部。傳感器需要相對于電動機旋轉(zhuǎn)進行固定,并暴露于一系列隨電動機旋轉(zhuǎn)而變化的磁極。我的解決方案是從同一臺電動機上取下磁環(huán),然后將其倒置安裝在要控制的電動機上。將三個霍爾傳感器安裝在此磁環(huán)的正上方,彼此在電機軸上相距30度(電動機旋轉(zhuǎn)120度)。
我的霍爾傳感器安裝架由一個簡單的支架組成,該支架由三個鋁制部件組成我用快速原型機加工了三個塑料零件。如果您無權(quán)使用這些工具,那么尋找另一種制作支架的方法應該不會太困難。為霍爾傳感器創(chuàng)建支架將更具挑戰(zhàn)性。這可能是一種方法:
1。找到一個適當大小的塑料盤,您可以在其上小心地為霍爾傳感器加環(huán)氧樹脂。
2。在紙張上打印出一個模板,該模板的圓與磁環(huán)的半徑相同,并且三個標記之間的距離為15度《3》。將模板粘到磁盤上,然后以模板為指導小心地將霍爾傳感器涂在適當?shù)奈恢谩?/p>
步驟6:霍爾傳感器電路
現(xiàn)在,您已將霍爾傳感器正確安裝在電動機上,將它們分別與下面所示的電路連接,并使用DMM或示波器對其進行測試,以確保輸出與輸出信號一樣高和低。電機旋轉(zhuǎn)。我使用Arduino的5V輸出以5V運行這些傳感器。
步驟7:校準霍爾傳感器
霍爾傳感器是數(shù)字設備,它們根據(jù)檢測到的是南磁極還是北磁極而輸出高電平或低電平(1或0)。由于它們的間隔為15度,并且磁體在其下方旋轉(zhuǎn),每45度改變一次極性,所以這三個傳感器永遠不會同時處于高電平或低電平狀態(tài)。隨著電機旋轉(zhuǎn),傳感器輸出以六步模式變化,如下表所示。傳感器必須與電動機的運動對齊,以便三個傳感器之一精確地在電動機換向位置改變。在這種情況下,第一霍爾傳感器(H1)的上升沿應與相位C(高)和B(低)的組合的開啟相一致。這相當于在橋式電路中將晶體管3和5導通。我用示波器將傳感器與磁體對準。我必須使用示波器的三個通道來執(zhí)行此操作。我通過連接到第二個電動機的皮帶旋轉(zhuǎn)了電動機,并測量了兩個相組合(A和B,A和C)之間的反電動勢,這是下圖中的兩個正弦波。然后,在示波器的通道3上查看來自霍爾傳感器2之一的信號。旋轉(zhuǎn)霍爾傳感器底座,直到霍爾傳感器的上升沿與換向應發(fā)生的點完全對準為止(請參見下圖)。我現(xiàn)在意識到,只需兩個通道即可進行相同的校準。如果使用相位組合B-C的BEMF,則H2的上升沿將與B-C曲線的零交叉重合。
此處應進行換向的原因是要始終保持盡可能高的電動機轉(zhuǎn)矩。反電動勢與扭矩成正比,您會注意到,每次換向都會在反電動勢越過下一相曲線以下時發(fā)生。因此,實際扭矩由每個相組合的最高部分組成。
如果您無法使用示波器,這是我進行對準的一個想法。對于任何想了解BLDC電機工作原理的人來說,這實際上都是一個有趣的練習。如果將電動機A相(正相)和B相(負相)連接到電源并打開電源,則電動機將旋轉(zhuǎn)一小段然后停止。然后,如果將負極電源線移至C相并打開電源,則電動機將轉(zhuǎn)動一點然后停止。序列的下一部分將是將正極引線移至B相,依此類推。執(zhí)行此操作時,電動機將始終在轉(zhuǎn)矩為零的點處停止,該點在圖形上與圖形與x軸交叉的位置之一相對應。注意,第三相組合的零對應于前兩個組合的換向位置。因此,B-C組合的零扭矩位置是您要定位H2上升沿的位置。用細標記或鋒利的刀片標記該位置,然后使用DMM調(diào)整霍爾傳感器安裝座,直到H2的輸出準確地在該標記上變高。即使您在此校準中稍有偏離,電動機也應能正常工作。
步驟8:電力電子設備
三個電機相將從L6234三相電動機驅(qū)動器。我發(fā)現(xiàn)它是經(jīng)受時間考驗的好產(chǎn)品。使用電力電子設備,有很多方法可以無意間炸炸您的組件,而我不是電氣工程師,所以我并不總是完全了解發(fā)生了什么。在我的學校項目中,我們還用6個MOSFET晶體管和6個二極管制成了自己的三相半橋。我們將它與另一個驅(qū)動程序(Intersil的HIP4086)一起使用,但是在設置時遇到了很多問題-我們燒壞了一堆晶體管和芯片。
我運行L6234(從而運行了電動機)在12V
L6234具有一組不尋常的輸入來控制6晶體管半橋。而不是為每個晶體管提供一個輸入,而是為三相的每一個提供一個使能(EN)輸入,然后通過另一個輸入(IN)選擇該相中的哪個晶體管導通(上或下)。例如,要導通晶體管1(上部)和6(下部),EN1和EN3都為高電平(EN2為低電平以保持該相截止),IN1為高電平,IN3為低電平。
盡管L6234應用筆記建議將用于控制電機速度的PWM應用于IN引腳,但我還是決定在EN引腳上使用它,因為認為將一個相位的上,下晶體管交替導通將是“怪異的”。實際上,同時打開兩個相的低晶體管似乎沒有錯,因為它們處于相同的電勢,因此任何一個都不會流過電流。用我的方法,在PWM頻率上交替啟用和禁用高相,而在整個換向期間保持低相導通。
下面是電機驅(qū)動器的示意圖,我已經(jīng)在其中添加了與Arduino開發(fā)板的引腳連接。我還在電池正極和電路之間加了一個2.5 Amp的保險絲,在電源和接地之間加了一個100 uF的電容,以減少再生電流的紋波。該圖有點小,因此請查看L6234的文檔以獲取較大版本。
注意:Mike Anton為L6234制作了PCB,(我相信)可以代替
http://manton.wikidot.com/open:bldc-motor-driver
https://www.tindie.com/stores/manton/
第9步:再生制動
因為到目前為止我還沒有找到很多有關三相電動機再生制動的信息,所以我將描述我對它的工作原理的理解。請注意,我不是電氣工程師,因此請對我的解釋進行任何更正。
在進行電動機驅(qū)動時,控制系統(tǒng)以使轉(zhuǎn)矩最大的方式將電流發(fā)送到電動機的三個相中。在再生制動中,控制系統(tǒng)也會使轉(zhuǎn)矩最大化,但這一次是負轉(zhuǎn)矩,這會導致電動機減速,同時將電流傳回電池。
我使用的再生制動方法來了摘自美國政府Oakridge國家實驗室的論文。這個實驗室對汽車的電動機做了很多研究。下圖來自另一篇論文,有助于說明其工作原理(但是,我認為第二篇論文中的解釋部分不正確)。請記住,電動機相位中的BEMF電壓會隨著電動機旋轉(zhuǎn)而上升和下降。在該圖中,顯示了一個瞬間,其中B相的BEMF高,而A相的低。在這種情況下,電流有可能從B流到A。
再生制動的關鍵是低端晶體管正在快速導通和關斷(PWM每秒切換數(shù)千次)。當高端晶體管開關為OFF時;當?shù)途w管導通時,電流如第一幅圖所示流動。用電力電子學的術(shù)語來說,電路就像一個稱為升壓轉(zhuǎn)換器的設備,能量存儲在電機相中(維基百科上有一篇很好的文章解釋了升壓轉(zhuǎn)換器的工作原理)。當?shù)投司w管截止時,該能量被釋放,但電壓更高,電流瞬間流過每個晶體管旁邊的“反激”二極管,然后流回電池。二極管可防止電流從電池流向電動機。同時,沿該方向(與電動機相反)的電流與磁鐵環(huán)相互作用,產(chǎn)生負轉(zhuǎn)矩,使電動機減速。低側(cè)晶體管通過PWM進行開關,PWM的占空比控制制動量。
在進行電動機驅(qū)動時,電動機的換向在適當?shù)臅r候從一個相組合切換到下一個相組合,以保持較高的轉(zhuǎn)矩。盡可能。再生制動的換向非常相似,因為一定的切換模式可以使電動機產(chǎn)生最大可能的負轉(zhuǎn)矩。
如果您在第1步中觀看視頻,則可以看到再生制動有效,但是不能很好地工作。我認為主要原因是我使用的硬盤驅(qū)動器馬達是一個低扭矩的馬達,因此除了最高速度外,它不會產(chǎn)生太多的BEMF。在較低的速度下,幾乎沒有再生制動。另外,我的系統(tǒng)在相對較低的電壓(12 V)下運行,并且由于通過反激二極管的每條路徑都會使電壓下降幾伏,因此效率也大大降低了。我使用普通的整流二極管,如果使用一些具有較低壓降的特殊二極管,則可能會獲得更好的性能。
步驟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歐姆電位計連接到+ 5V,兩端接地,中間為模擬引腳0。該電位器用于控制電動機速度和制動量。
+ 5V電源也用于運行霍爾傳感器(請參見步驟5)。
步驟11 :用于Arduino的控制軟件
下面是我為Ardjuino編寫的整個程序,并帶有注釋:
/*
* BLDC_congroller 3.1。 1
* by David Glaser
*
* 3.x系列程序適用于ST L6234三相電動機驅(qū)動器IC
*
*順時針運行磁盤驅(qū)動器電動機
*帶再生制動
*電機速度和制動由單個電位器控制
*電機位置由三個霍爾效應傳感器確定
* Arduino接收來自3個霍爾傳感器的輸出(引腳2,3 ,4)*并將它們的組合轉(zhuǎn)換為6個不同的換相步長
*在引腳9,10,11上以32 kHz的PWM輸出(分別對應于EN 1,2,3
* 3 DO引腳5,6,7(IN 1,2,3)
*模擬輸入0連接到電位計以更改PWM占空比并更改
*電動和再生制動。
* 0-499:制動
* 500-523:滑行
* 524-1023:電動
*注釋了很多行,這些行用于
*將各種值打印到串行連接。
*/
int HallState1;//三個霍爾傳感器(3,2,1)的變量
int HallState2;
int HallState3;
int HallVal = 1;//所有3個霍爾傳感器的二進制值
int mSpeed = 0;//電動機的轉(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電動機驅(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
上設置PWM頻率//一部分代碼來自
http://usethearduino.blogspot.com/2008/11/changing-pwm-frequency-on-arduino.html
*/
//為引腳9,10設置PWM至32 kHz
//首先清除所有三個預分頻器位:
int prescalerVal = 0x07;//創(chuàng)建一個名為prescalerVal的變量,并將其設置為等于二進制數(shù)“ 00000111”數(shù)字“ 00000111”數(shù)字“ 00000111”
TCCR1B&=?prescalerVal;//并用二進制數(shù)“ 11111000”將TCCR0B中的值與
//現(xiàn)在設置適當?shù)念A分頻器位:
int prescalerVal2 = 1;//將prescalerVal設置為等于二進制數(shù)“ 00000001”
TCCR1B | = prescalerVal2;//或用二進制數(shù)“ 00000001”對TCCR0B中的值進行操作
//將引腳3,11設置為32 kHz至32 kHz(此程序僅使用引腳11)
//首先清除所有三個預分頻器位:
TCCR2B&=?prescalerVal;//與TCCR0B中的值一起使用二進制數(shù)“ 11111000”
//現(xiàn)在設置適當?shù)念A分頻器位:
TCCR2B | = prescalerVal2;//或用二進制數(shù)“ 00000001”對TCCR0B中的值進行////首先清除所有三個預分頻器位:
}
//PRGROM的主循環(huán)
void loop(){
//time = millis();
//打印自程序啟動以來的時間
//Serial.println(time);
//Serial.print(“ ”);
節(jié)氣門= AnalogRead(0);//油門電位器的值
mSpeed = map(throttle,512,1023,0,255);//電機映射到電位計的上半部
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);//當對應的傳感器為高電平時LED點亮-最初用于調(diào)試
//digitalWrite(9,HallState2);
//digitalWrite(10,HallState3);
HallVal =(HallState1) +(2 * HallState2)+(4 * HallState3);//計算3個霍爾傳感器的二進制值
/*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);
*/
//電機換向
//每個二進制數(shù)都有一個對應于打開的不同晶體管的情況
//位數(shù)學用于更改輸出的值
//對于本教程在Arduino的位上:http://www.arduino.cc/playground/Code/BitMath
//PORTD包含L6234驅(qū)動器上的IN引腳的輸出
//,該輸出確定是高位還是低位使用各相的晶體管
//EN引腳的輸出由Ard控制uino命令AnalogWrite,其中
//設置PWM的占空比(0 = OFF,255 = ON或由電位計控制的油門值)。
if(throttle》 511){
開關( HallVal)
{
案例3:
//PORTD = B011xxx00;//引腳0-7 xxx的所需輸出是霍爾輸入,不應更改。
PORTD&= B00011111;
PORTD | = B01100000;//
AnalogWrite(9,mSpeed);//A相上的PWM(高端晶體管)
AnalogWrite(10,0);//關閉B相(占空比= 0)
AnalogWrite(11,255);//C相導通-占空比= 100%(低壓晶體管)
斷開;
情況1:
//PORTD = B001xxx00;//引腳0-7
的所需輸出PORTD&= B00011111;//
PORTD | = B00100000;//
AnalogWrite(9,mSpeed);//A相上的PWM(高端晶體管)
AnalogWrite(10,255);//(低端晶體管)上的B相
analogWrite(11,0);//關閉階段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;
責任編輯:wv
-
微控制器
+關注
關注
48文章
7668瀏覽量
152240 -
BLDC
+關注
關注
208文章
804瀏覽量
97197 -
位置傳感器
+關注
關注
3文章
274瀏覽量
27600 -
Arduino
+關注
關注
188文章
6477瀏覽量
188060
發(fā)布評論請先 登錄
相關推薦
使用旋轉(zhuǎn)電感式位置傳感器的三相BLDC電機的磁場定向控制(FOC)
![使用旋轉(zhuǎn)電感式<b class='flag-5'>位置</b><b class='flag-5'>傳感器</b>的三相<b class='flag-5'>BLDC</b>電機的磁場定向<b class='flag-5'>控制</b>(FOC)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
采用MSP430微控制器的RF430FRL152H NFC傳感器標簽應用示例
![采用MSP430<b class='flag-5'>微控制器</b>的RF430FRL152H NFC<b class='flag-5'>傳感器</b>標簽應用示例](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用MSP430的有傳感器3相BLDC電機控制
![使用MSP430的有<b class='flag-5'>傳感器</b>3相<b class='flag-5'>BLDC</b>電機<b class='flag-5'>控制</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
電動車用萬能控制器不用霍爾可以嗎
![](https://file1.elecfans.com/web2/M00/06/BF/wKgZombqeeaAUZJ9AAhxjsrDDIo198.png)
TMP1826和TMP1827單線溫度傳感器主機控制器的實現(xiàn)
![TMP1826和TMP1827單線溫度<b class='flag-5'>傳感器</b>主機<b class='flag-5'>控制器</b>的<b class='flag-5'>實現(xiàn)</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
無刷直流電機控制器的工作過程
基于MSPM0 MCU實現(xiàn)采用無傳感器FOC算法的BLDC和PMSM控制
![基于MSPM0 MCU<b class='flag-5'>實現(xiàn)</b>采用無<b class='flag-5'>傳感器</b>FOC算法的<b class='flag-5'>BLDC</b>和PMSM<b class='flag-5'>控制</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論