概述
在本課程中,您將學習如何使用Arduino和非晶體管控制小型直流電動機。
您將使用Arduino模擬輸出(PWM)來控制速度通過從串行監視器發送一個介于0到255之間的數字來表示電動機。
零件
要構建本課中描述的項目,您將需要以下零件。
零件 數量
小型6V直流電動機
1
PN2222晶體管
1
1N4001二極管
1
270Ω電阻器(紅色,紫色,棕色條紋)
1
半面包板
1
Arduino Uno R3
1
跳線包
1
面包板布局
將面包板放在一起時,需要注意兩點。
首先,確保晶體管是正確的方式周圍。晶體管的扁平側應位于面包板的右側。
其次,二極管的條紋端應朝向+ 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);
}
}
}
晶體管的作用就像一個開關,控制電機的電源,Arduino引腳3用于打開和關閉晶體管,并在其中命名為“ motorPin”草圖。
草圖開始時,它會提示您,提醒您要控制電動機的速度,您需要在串行監視器中輸入0到255之間的一個值。
在“循環”中函數,命令“ Serial.parseInt”用于讀取在串行監視器中輸入為文本的數字并將其轉換為“ int”。
您可以在此處鍵入任何數字,因此在如果數字介于0到255之間,則下一行僅使用該數字進行模擬寫入。
晶體管
小型直流電動機使用的功率可能比Arduino數字輸出直接處理的功率大。如果我們嘗試將電機直接連接到Arduino引腳,則很有可能損壞Arduino。
像PN2222這樣的小晶體管可以用作僅使用Arduino小電流的開關數字輸出以控制更大的電動機電流。
晶體管有三根引線。大部分電流從集電極流到發射極,但這僅在少量電流流入基本連接時才會發生。此小電流由Arduino數字輸出提供。
下圖稱為像面包板布局一樣,它是顯示電子項目的各個部分如何連接在一起的一種方式。
Arduino的D3引腳連接到電阻。就像使用LED一樣,這會限制通過基極流向晶體管的電流。
在電機的各個端子之間連接有一個二極管。二極管僅允許電流沿一個方向(箭頭方向)流動。
關閉電動機的電源時,會產生負電壓尖峰,這可能會損壞Arduino或晶體管。二極管通過短路來自電動機的這種反向電流來防止這種情況。
其他操作
嘗試顛倒與電動機的連接。發生什么了?
嘗試在串行監視器中輸入不同的值(從0開始),并注意電機實際開始旋轉的值。當您增加模擬輸出時,您會發現電動機開始“唱歌”。
嘗試將驅動軸夾在手指之間。不要過長地握住它,否則可能會煮熟晶體管,但是您應該發現停止電動機相當容易。它旋轉速度快,但扭矩不大。
責任編輯:wv
-
直流電動機
+關注
關注
7文章
196瀏覽量
22824 -
Arduino
+關注
關注
187文章
6464瀏覽量
186681
發布評論請先 登錄
相關推薦
評論