在本 Arduino 電機指南中,您將學習如何使用 Arduino UNO 和 TIP120晶體管驅動和控制直流電機的速度。在此示例中,您將使用按鈕來提高電機速度,然后減慢速度,這要歸功于脈寬調制 (PWM) 的強大功能。
所需材料:
Arduino的
直流電動機
TIP120 晶體管
1N4001二極管
9V電池
按鈕(瞬時開關)
10kΩ 電阻器
面包板和跳線
Arduino電機電路
在下面的電路中,我們將晶體管連接為開關來控制直流電機,以避免從Arduino本身拉出大量電流:
通過 5 千歐電阻器將瞬時開關連接到 10V 和 GND,信號進入 Arduino 上的數字引腳 2。
將 TIP120 晶體管的基座連接到 Arduino 上的數字引腳 9,將發射器連接到 Arduino
的接地,將集電極連接到直流電機的一根引線。
在電機引線上放置一個 1N4001 二極管,確保條紋側連接到 9V 正極引線。
用 9V 電池為電機供電,將接地連接到 Arduino 的接地,將正極連接到電機。
Arduino直流電機代碼示例
以下是控制電機的示例代碼。這是一個簡單的草圖,它對按鈕的狀態做出反應,以使用 TIP120 晶體管作為開關來控制電機的速度。
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電流。由于大多數電機需要更大的電流,因此 TIP120
晶體管充當數字開關來控制電氣要求更高的電機。
確保二極管放置在正確的方向,以防止電機關閉時反電動勢損壞晶體管。
審核編輯:陳陳
-
直流電機
+關注
關注
36文章
1710瀏覽量
70157 -
晶體管
+關注
關注
77文章
9682瀏覽量
138082 -
Arduino
+關注
關注
188文章
6468瀏覽量
186956
發布評論請先 登錄
相關推薦
評論