在本 Arduino 電機(jī)指南中,您將學(xué)習(xí)如何使用 Arduino UNO 和 TIP120晶體管驅(qū)動(dòng)和控制直流電機(jī)的速度。在此示例中,您將使用按鈕來提高電機(jī)速度,然后減慢速度,這要?dú)w功于脈寬調(diào)制 (PWM) 的強(qiáng)大功能。
所需材料:
Arduino的
直流電動(dòng)機(jī)
TIP120 晶體管
1N4001二極管
9V電池
按鈕(瞬時(shí)開關(guān))
10kΩ 電阻器
面包板和跳線
Arduino電機(jī)電路
在下面的電路中,我們將晶體管連接為開關(guān)來控制直流電機(jī),以避免從Arduino本身拉出大量電流:
通過 5 千歐電阻器將瞬時(shí)開關(guān)連接到 10V 和 GND,信號(hào)進(jìn)入 Arduino 上的數(shù)字引腳 2。
將 TIP120 晶體管的基座連接到 Arduino 上的數(shù)字引腳 9,將發(fā)射器連接到 Arduino
的接地,將集電極連接到直流電機(jī)的一根引線。
在電機(jī)引線上放置一個(gè) 1N4001 二極管,確保條紋側(cè)連接到 9V 正極引線。
用 9V 電池為電機(jī)供電,將接地連接到 Arduino 的接地,將正極連接到電機(jī)。
Arduino直流電機(jī)代碼示例
以下是控制電機(jī)的示例代碼。這是一個(gè)簡(jiǎn)單的草圖,它對(duì)按鈕的狀態(tài)做出反應(yīng),以使用 TIP120 晶體管作為開關(guān)來控制電機(jī)的速度。
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
}
}
}
附注事項(xiàng):
Arduino的引腳可在5V電壓下提供最大40mA電流。由于大多數(shù)電機(jī)需要更大的電流,因此 TIP120
晶體管充當(dāng)數(shù)字開關(guān)來控制電氣要求更高的電機(jī)。
確保二極管放置在正確的方向,以防止電機(jī)關(guān)閉時(shí)反電動(dòng)勢(shì)損壞晶體管。
審核編輯:陳陳
-
直流電機(jī)
+關(guān)注
關(guān)注
36文章
1708瀏覽量
70086 -
晶體管
+關(guān)注
關(guān)注
77文章
9641瀏覽量
137876 -
Arduino
+關(guān)注
關(guān)注
187文章
6464瀏覽量
186677
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論