在本 Arduino 電機指南中,您將學習如何使用 Arduino UNO 和 TIP120晶體管驅(qū)動和控制直流電機的速度。在此示例中,您將使用按鈕來提高電機速度,然后減慢速度,這要歸功于脈寬調(diào)制 (PWM) 的強大功能。
所需材料:
Arduino的
直流電動機
TIP120 晶體管
1N4001二極管
9V電池
按鈕(瞬時開關(guān))
10kΩ 電阻器
面包板和跳線
Arduino電機電路
在下面的電路中,我們將晶體管連接為開關(guān)來控制直流電機,以避免從Arduino本身拉出大量電流:
通過 5 千歐電阻器將瞬時開關(guān)連接到 10V 和 GND,信號進入 Arduino 上的數(shù)字引腳 2。
將 TIP120 晶體管的基座連接到 Arduino 上的數(shù)字引腳 9,將發(fā)射器連接到 Arduino
的接地,將集電極連接到直流電機的一根引線。
在電機引線上放置一個 1N4001 二極管,確保條紋側(cè)連接到 9V 正極引線。
用 9V 電池為電機供電,將接地連接到 Arduino 的接地,將正極連接到電機。
Arduino直流電機代碼示例
以下是控制電機的示例代碼。這是一個簡單的草圖,它對按鈕的狀態(tài)做出反應,以使用 TIP120 晶體管作為開關(guān)來控制電機的速度。
int buttonPin = 2; // Button connected to digital pin 2
int motorPin = 9; // Transistor base connected to digital pin 9
void setup() {
pinMode(buttonPin, INPUT); // Initialize button pin as an input
pinMode(motorPin, OUTPUT); // Initialize motor pin as an output
}
void loop() {
// Detect button press
if (digitalRead(buttonPin) == HIGH) {
// Increase motor speed progressively
for (int speedLevel = 0; speedLevel <= 255; speedLevel++) {
analogWrite(motorPin, speedLevel);
delay(50); // Wait a bit between speed increases
}
// Decrease motor speed progressively
for (int speedLevel = 255; speedLevel >= 0; speedLevel--) {
analogWrite(motorPin, speedLevel);
delay(50); // Wait a bit between speed decreases
}
}
}
附注事項:
Arduino的引腳可在5V電壓下提供最大40mA電流。由于大多數(shù)電機需要更大的電流,因此 TIP120
晶體管充當數(shù)字開關(guān)來控制電氣要求更高的電機。
確保二極管放置在正確的方向,以防止電機關(guān)閉時反電動勢損壞晶體管。
審核編輯:陳陳
-
直流電機
+關(guān)注
關(guān)注
36文章
1710瀏覽量
70431 -
晶體管
+關(guān)注
關(guān)注
77文章
9781瀏覽量
138975 -
Arduino
+關(guān)注
關(guān)注
188文章
6477瀏覽量
187956
發(fā)布評論請先 登錄
相關(guān)推薦
Arduino實踐詳細說明之L298N驅(qū)動直流電機
arduino uno如何利用l298n驅(qū)動板來控制直流電機的正反轉(zhuǎn)和速度?
如何利用H橋?qū)崿F(xiàn)直流電機控制?
如何使用PWM和555定時器IC電路來控制直流電機的速度
詳解Arduino Uno控制直流電機之應用
Arduino的直流電機調(diào)速
![<b class='flag-5'>Arduino</b>的<b class='flag-5'>直流電機</b>調(diào)速](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用晶體管TIP31的直流電機控制器電路
![使用<b class='flag-5'>晶體管</b><b class='flag-5'>TIP</b>31的<b class='flag-5'>直流電機</b><b class='flag-5'>控制</b>器電路](https://file.elecfans.com//web2/M00/47/C7/pYYBAGKewYKAcyURAAGuolVvkcY055.png)
使用Arduino和L298電機驅(qū)動器制作直流電機速度控制器
![使用<b class='flag-5'>Arduino</b>和L298<b class='flag-5'>電機</b><b class='flag-5'>驅(qū)動</b>器制作<b class='flag-5'>直流電機</b><b class='flag-5'>速度</b><b class='flag-5'>控制</b>器](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用Arduino和電位器控制直流電機速度
![使用<b class='flag-5'>Arduino</b>和電位器<b class='flag-5'>控制</b><b class='flag-5'>直流電機</b><b class='flag-5'>速度</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
ros與arduino通信控制直流電機
![ros與<b class='flag-5'>arduino</b>通信<b class='flag-5'>控制</b><b class='flag-5'>直流電機</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用Arduino的直流電機MOSFET控制速度
![使用<b class='flag-5'>Arduino</b>的<b class='flag-5'>直流電機</b>MOSFET<b class='flag-5'>控制</b><b class='flag-5'>速度</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論