直流馬達為兩個輸入的驅動界面,一般稱為MOTOR+與MOTOR-,一般直流馬達
兩極的電壓差越大轉速越快,電壓差越小轉速越慢。同樣的,兩極的電流量越大扭力越強,電流量越小扭力越弱。
我們知道了馬達的兩極電壓差會影響馬達的轉速,那直流馬達的轉向控制只要調整兩極電壓差的正負就可以改變馬達的正反轉向了。例如MOTOR+的電壓大於MOTOR-的電壓,則為正轉,MOTOR+的電壓小於MOTOR-的電壓,則為反轉。
直接輸出電壓以控制直流馬達開或關
1. 利用TIP 120電晶體放大電流,以驅動直流馬達
2. 數位輸出(高電位和低電位兩種電壓),開、關時間各一秒 (1000 ms)
int motorPin = 9;
void setup() {
pinMode(motorPin, OUTPUT);
}
void loop() {
digitalWrite(motorPin, HIGH);
delay(1000);
digitalWrite(motorPin,
LOW);
delay(1000);
}
|
1. 利用TIP 120電晶體放大電流,以驅動直流馬達
2. 類比輸出(0-255種不同的數值),此處我們選擇255 和153兩種不同的類比值,旋轉時間各2秒 (2000
ms)
int
motorPin = 9;
void
setup() {
pinMode(motorPin,
OUTPUT);
}
void
loop() {
analogWrite(motorPin, 255);
delay(2000);
analogWrite(motorPin, 153);
delay(2000);
}
|
利用可變電阻調整直流馬流的轉速
1. 加上可變電阻,A0讀入類比數值(0-1023),轉換成PIN 9的類比輸出(0-255),控制直流馬達的轉速。類比值愈高,則轉速愈快。
int
motorPin = 9;
int
potValue=0;
byte
val=0;
void
setup() {
pinMode(motorPin,
OUTPUT);
}
void
loop() {
potValue=analogRead(A0);
val=map(potValue, 0, 1023, 0, 255);
analogWrite(motorPin, val);
}
|
沒有留言:
張貼留言