這篇文章來源于DevicePlus.com英語網站的翻譯稿。
本文最初發布在deviceplus.jp網站上,而后被翻譯成英語。
Device Plus網站中介紹了有關Arduino的各種應用和作品示例,但無論創作任何作品,基礎知識都很重要!這就是為什么在這篇文章中,我們會探討Arduino的關鍵基礎知識。今天的分享嘉賓是《始于Arduino基礎 的電子工藝品入門》的作者福田和宏先生。
在本文中,將為大家介紹大電流電機的控制方法。
電機可用來驅動各種設備,例如無人機和汽車。電機是一種電子產品,當連接到電源時可以產生旋轉運動。通過給輪胎和螺旋槳安裝電機,可以利用電機的旋轉來完成移動和上升等動作。
使用Arduino也可以控制電機。與LED一樣,您可以通過接通和關斷提供給電機的電源來控制電機旋轉或停止。通過與其他傳感器等器件結合使用,還可以實現比如當障礙物接近時電機停動這樣的自動控制。
當電源方向反接時,電機會向相反的方向旋轉。也可以通過調整流過的電流量來改變轉速。基于這些原理,可以實現很多復雜的動作,比如在電機高速旋轉時移動,在逐漸減速時停止在期望的目標位置,在遇到障礙物時回頭向另一個方向移動。所以在本文中,我們將一起來了解使用Arduino控制電機的方法。
[目錄]
?驅動電機需要驅動器
?將電機連接到Arduino
?通過程序控制電機
?改變電機的轉速
驅動電機需要驅動器
通過Arduino的數字輸出,可以在High和Low之間切換,我們曾用來控制LED的閃爍。使用該功能,應該還可以為電機供電。但是,實際上,即使您將電機直接連接到Arduino,電機還是無法運行的。
使電機運行需要大電流。例如,在本次使用的電機“RE-280RA”的情況下,可能會流過1A以上的電流。但是,Arduino的數字輸出引腳最多只能承受20mA的電流。如果施加比這更多的電流,Arduino本身可能會損壞。因此,我們需要將電機連接到Arduino的輸出引腳并對其進行控制。
這里我們使用的是“電機驅動器”。電機驅動器是用來控制電機的電子器件。我們需要準備一個將電機連接到電源以使電機運行的電路,并在其中插入電機驅動器。電機驅動器可通過外部信號導通和關斷電機運行電路,并可控制電機的旋轉和停止。由于控制信號中幾乎不會流過電流,因此即使連接Arduino,也可以毫無問題地控制電機。
另外,通過電機驅動器,還可以利用控制信號切換旋轉方向。電機驅動器配有兩個控制引腳,一個設置為High時正轉,另一個設置為High時反轉。這使得電機驅動器可以控制電機的正轉、反轉和停止。
將電機連接到Arduino
現在讓我們嘗試利用Arduino來控制電機。這部分操作將使用以下電子元器件,因此請確保您已經準備好它們。
直流電機
這是電機本體。其中,可以用干電池等的直流電控制的電機稱為“直流電機”。這次,我們將使用“RE-280RA”。RE-280RA可施加高達4.5V的電壓。
電機驅動器
我們將使用電機驅動器來控制電機。驅動器具有根據來自Arduino的信號給電機供電并控制電機轉向等功能。我們將使用ROHM的“BA6956AN”。從帶有切口的連接器(圖片左側)開始,引腳分別按照“引腳1”和“引腳2”等命名。
0.1μF 電容器
電容器是可以儲存少量電能的電子元件。電機在工作過程中會產生噪聲。噪聲可能會對其他電子元器件的工作產生不利影響。因此,可以通過在電機的兩個引腳上連接電容器來降低噪聲。
10kΩ(1/4W)電阻器
為了防止流過突發大電流損壞電子元器件,可以使用電阻器來抑制電流。此次,為了能給電機提供指定的電壓,我們在Arduino的3.3V引腳上連接了電機驅動器。通常情況下,幾乎沒有電流流過,但由于在某些情況下可能會有流過大電流的風險,因此連接了一個10kΩ的電阻器以防止流過大電流。這個10kΩ電阻器上印有“棕黑橙金”四色顏色代碼。
電池
電池扣
我們將使用干電池作為驅動電機的動力源。在這里使用的是可提供9V電壓的006P。另外,還會使用電池扣將電池連接到面包板上。
鱷魚夾線s
電機有引腳,需要連接到面包板。通常是將導線焊接到引腳上。但是如果您使用鱷魚夾線,只需將鱷魚夾夾住電機的引腳即可實現接線,可以省去焊接的麻煩。
準備好所需組件后,如下所示進行連接。
用鱷魚夾夾住電機引腳,將電機連接到電機驅動器的引腳2和4。注意,在電機工作期間可能會產生噪聲,噪聲可能會影響其他設備工作,因此,需要將電容器連接到電機的兩個引腳來降低噪聲。
電機可以由單獨準備的電池供電。因此,可以通過將電池連接到電機驅動器的引腳5和3來實現電池供電。
此外,本次使用的電機的供電電壓范圍為4.5V以內。因此,使用9V電池時,電壓過高,可能會損壞電機。因此,請在電機驅動器的引腳1處指定輸出至電機的最大電壓。本次我們為電機提供3.3V的電壓。將Arduino 3.3V電源連接到引腳1并指定最大電壓值。電機旋轉可以通過電機驅動器的引腳7和9來控制。這意味著需要分別連接到Arduino的引腳5和6,通過Arduino的輸出對其進行控制。
通過程序控制電機
完成連接后,讓我們實際嘗試使用程序來控制電機。電機的旋轉可以通過Arduino引腳5和6的輸出來控制。旋轉、停止和旋轉方向都可以通過將這兩個引腳設置為High或Low來控制。在BA6956AN的情況下,可以進行如下控制:
要正轉時,使引腳5輸出High,使引腳6輸出Low。將以下程序寫入Arduino,電機將開始正轉。
在第10行設置了引腳5輸出High,在第11行設置了引腳6輸出Low。
如果要反轉,則需要使引腳5輸出Low,使引腳6輸出High。
程序如下:
在第10行設置了引腳5輸出Low,在第11行設置了引腳6輸出High。如果要使電機停止運轉,則需要讓引腳5和6都輸出Low。
程序如下:
另外,如果引腳5和6都輸出High,則會啟動制動器,可以讓電機在比兩個引腳都置Low時更短的時間內停止運轉。
改變電機的轉速
上次,我們通過使用“PWM”這種輸出方法成功地改變了LED的亮度。在電機上,也可以通過使用PWM控制來改變轉速。通過在短時間內切換High和Low,電機在旋轉和停止之間交替切換,轉速實際上比正常速度慢。High的時間越長,轉速越快;反之High的時間越短,轉速越慢。
對于電機而言,通過PWM來輸出想要旋轉的方向的控制引腳,并使另一個引腳始終保持在Low的狀態。正轉時,通過PWM輸出引腳5 并使引腳6保持在Low狀態。反轉時,通過PWM輸出引腳6,并使引腳5保持在Low狀態。下面是控制正轉速度的程序:
在程序中,在第10行設置為向引腳5輸出PWM比率的一半(最大為255),在第11行使引腳6保持在Low狀態。當您改變第10行的數字時,速度也會隨之改變。但是,如果High小于某個特定的比率,電機將不會旋轉。如果減小該值電機不旋轉,就請嘗試指定更高的值。您可以通過逐漸增加或減少引腳5輸出的值來逐漸改變速度。在接下來的程序中,轉速將從停止狀態逐漸提高,當達到最大值時,速度將會逐漸降低并最終停止運轉。
在本文中,我們了解了通過Arduino控制LED和電機等電子產品的方法。下一篇將介紹如何通過Arduino確認開關的狀態。
審核編輯:湯梓紅
-
led
+關注
關注
242文章
23794瀏覽量
672584 -
Arduino
+關注
關注
189文章
6495瀏覽量
190489 -
控制電機
+關注
關注
0文章
244瀏覽量
18641
發布評論請先 登錄
如何使用Arduino的藍牙控制伺服電機


樹莓派可發射“炮彈”和實時視頻的超級坦克(上)
請問Arduino控制電機驅動器,下了個ide是不是得串口通信?
arduino控制電機驅動相關資料分享
利用PAJ7620U2 Gesture Sensor手勢識別控制小車
Arduino基礎入門篇(認識開發板和面包板)

Arduino無刷電機控制教程

評論