2016年5月27日 星期五

直流馬達控制

直流馬達為兩個輸入的驅動界面,一般稱為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);
}




沒有留言:

張貼留言

NUMPY的Array介紹與Matplotlib的繪圖功能

NumPy 的 Array 介紹與 Matplotlib 的繪圖功能   1. A rray 的基本運算 :   適用於科學和數學運算的 NumPy 套件中,有一個 Array 的資料結構。 Array 是一個非常類似 list 的序列型態。 但是 Arr...