概述
在本課程中,您將學習如何使用Arduino和非晶體管控制小型直流電動機。

您將使用Arduino模擬輸出(PWM)來控制速度通過從串行監(jiān)視器發(fā)送一個介于0到255之間的數(shù)字來表示電動機。
零件
要構(gòu)建本課中描述的項目,您將需要以下零件。
零件 數(shù)量

小型6V直流電動機
1

PN2222晶體管
1

1N4001二極管
1

270Ω電阻器(紅色,紫色,棕色條紋)
1

半面包板
1

Arduino Uno R3
1

跳線包
1
面包板布局
將面包板放在一起時,需要注意兩點。
首先,確保晶體管是正確的方式周圍。晶體管的扁平側(cè)應(yīng)位于面包板的右側(cè)。
其次,二極管的條紋端應(yīng)朝向+ 5V電源線-請參見下圖!
Adafruit Arduino套件隨附的電機消耗的電流不超過250mA,但是如果您有使用不同的電機,它可以輕松吸收1000mA電流,這不僅僅是USB端口所能處理的!如果不確定電機的電流消耗,請通過墻壁適配器為Arduino供電,而不僅僅是USB

電機可以左右任意方向連接。
Arduino代碼
將以下草圖加載到您的Arduino上。
下載:文件
復制代碼
/*
Adafruit Arduino - Lesson 13. DC Motor
*/
int motorPin = 3;
void setup()
{
pinMode(motorPin, OUTPUT);
Serial.begin(9600);
while (! Serial);
Serial.println(“Speed 0 to 255”);
}
void loop()
{
if (Serial.available())
{
int speed = Serial.parseInt();
if (speed 》= 0 && speed 《= 255)
{
}
}
} /*
Adafruit Arduino - Lesson 13. DC Motor
*/
int motorPin = 3;
void setup()
{
pinMode(motorPin, OUTPUT);
Serial.begin(9600);
while (! Serial);
Serial.println(“Speed 0 to 255”);
}
void loop()
{
if (Serial.available())
{
int speed = Serial.parseInt();
if (speed 》= 0 && speed 《= 255)
{
analogWrite(motorPin, speed);
}
}
}
晶體管的作用就像一個開關(guān),控制電機的電源,Arduino引腳3用于打開和關(guān)閉晶體管,并在其中命名為“ motorPin”草圖。
草圖開始時,它會提示您,提醒您要控制電動機的速度,您需要在串行監(jiān)視器中輸入0到255之間的一個值。

在“循環(huán)”中函數(shù),命令“ Serial.parseInt”用于讀取在串行監(jiān)視器中輸入為文本的數(shù)字并將其轉(zhuǎn)換為“ int”。
您可以在此處鍵入任何數(shù)字,因此在如果數(shù)字介于0到255之間,則下一行僅使用該數(shù)字進行模擬寫入。
晶體管
小型直流電動機使用的功率可能比Arduino數(shù)字輸出直接處理的功率大。如果我們嘗試將電機直接連接到Arduino引腳,則很有可能損壞Arduino。
像PN2222這樣的小晶體管可以用作僅使用Arduino小電流的開關(guān)數(shù)字輸出以控制更大的電動機電流。

晶體管有三根引線。大部分電流從集電極流到發(fā)射極,但這僅在少量電流流入基本連接時才會發(fā)生。此小電流由Arduino數(shù)字輸出提供。
下圖稱為像面包板布局一樣,它是顯示電子項目的各個部分如何連接在一起的一種方式。

Arduino的D3引腳連接到電阻。就像使用LED一樣,這會限制通過基極流向晶體管的電流。
在電機的各個端子之間連接有一個二極管。二極管僅允許電流沿一個方向(箭頭方向)流動。
關(guān)閉電動機的電源時,會產(chǎn)生負電壓尖峰,這可能會損壞Arduino或晶體管。二極管通過短路來自電動機的這種反向電流來防止這種情況。
其他操作
嘗試顛倒與電動機的連接。發(fā)生什么了?
嘗試在串行監(jiān)視器中輸入不同的值(從0開始),并注意電機實際開始旋轉(zhuǎn)的值。當您增加模擬輸出時,您會發(fā)現(xiàn)電動機開始“唱歌”。
嘗試將驅(qū)動軸夾在手指之間。不要過長地握住它,否則可能會煮熟晶體管,但是您應(yīng)該發(fā)現(xiàn)停止電動機相當容易。它旋轉(zhuǎn)速度快,但扭矩不大。
責任編輯:wv
-
直流電動機
+關(guān)注
關(guān)注
7文章
198瀏覽量
24140 -
Arduino
+關(guān)注
關(guān)注
190文章
6529瀏覽量
197557
發(fā)布評論請先 登錄
探索用于Arduino的TLE94112ES直流電機控制盾牌
直流電機的基本工作原理與結(jié)構(gòu)
無刷直流電動機電流連續(xù)控制方法研究與實現(xiàn)
基于電感法無刷直流電動機的起動分析
無位置傳感器無刷直流電機的+FPGA+控制實現(xiàn)
無刷直流電機狀態(tài)方程系數(shù)矩陣的動態(tài)更新
無刷直流電機在電動轉(zhuǎn)轍機中的應(yīng)用
無刷直流電機無位置傳感器控制系統(tǒng)仿真研究
無刷直流電機雙閉環(huán)串級控制系統(tǒng)仿真研究
無刷直流電機模糊自適應(yīng)PID控制的研究
基于高效DC/DC電源模塊的電動車控制系統(tǒng)設(shè)計
EtherCAT科普系列(10):EtherCAT技術(shù)在無刷直流電機驅(qū)動系統(tǒng)領(lǐng)域應(yīng)用
如何使用Arduino和非晶體管控制小型直流電動機
評論