Arduino UNO學習450.馬達控制晶片L293D
UNO板接USB供電,輸出電流低於300mA無法直接驅動電機,
需加其他裝置增加電流,需由5.5mm圓口接9V電或外接電力,
此晶片L293D可控制最多4個DC馬達或單個步進馬達,
需加其他裝置增加電流,需由5.5mm圓口接9V電或外接電力,
此晶片L293D可控制最多4個DC馬達或單個步進馬達,
一般用來控制2個馬達作正轉及反轉,並可由PWM控制轉速,
共16針腳,最大36V
1200mA電力,↓
.Pin1,,Enable1=2.3V~Vss~PWM,高電時Pin2~7左半邊IC運作,低電時停用
.Pin2,,INPUT1=2.3V~Vss,當高電時啟動Output1輸出Vs
.Pin3,,OUTPUT1=Vs~Vss/600mA,接馬達設備一接腳
.Pin4/5,,GND=接地
.Pin6,,OUTPUT2=Vs~Vss/600mA,接馬達設備一接腳
.Pin7,,INPUT2=2.3V~VssV,當高電時啟動Output2輸出Vs
.Pin8,,VS=Vss~36V,搭配馬達使用電壓,外部供應馬達使用的電力
.Pin9,,Enable2=2.3V~Vss~PWM,高電時Pin10~15右半邊IC運作,低電時停用
.Pin10,,INPUT3=2.3V~VssV,當高電時啟動Output3輸出Vs
.Pin11,,OUTPUT3=Vs~Vss/600mA,接馬達設備一接腳
.Pin12/13,,GND=接地
.Pin14,,OUTPUT4=Vs~Vss/600mA,接馬達設備一接腳
.Pin15,,INPUT4=2.3V~VssV,當高電時啟動Output4輸出Vs
.Pin16,,VSS=4.5V~36V,提供給晶片工作的電源
在了解接腳後開始安裝硬體,此練習安裝單顆5V直流馬達,
由於馬達耗電高,可能因USB電力供應不足而造成UNO板不正常,
因此需搭配額外電力,可搭配電池盒或外接電源,
注UNO板上有個電源Vin的輸入腳位,
另若要馬達長時間轉動,要注意L293D的溫度,可加裝散熱片↓
當腳位D9高位時,控制晶片上的E2開始運作,當D10高D11低時,
則晶片O3和O4馬達腳位轉動,當D10和D11高低電交換時,則馬達轉另一方向,
Arduino
Block拼圖程式,簡單的使馬達轉動3秒後,停1秒再轉另一方向↓
由於晶片有16針腳,在安裝上要注意所有腳位是否都有導通,
可使用電表量測晶片腳位來確認是否與麵包板有確實接觸,
上傳後若轉動不明顯可在馬達轉軸貼上貼紙膠帶或風扇轉輪等,
若沒有問題,下則拼圖程式改為PWM來控制晶片L293D的Pin9腳,
以控制馬達的轉速,要注意在UNO板上的腳位需有PWM功能 ↓
Arduino
UNO的PWM輸出值在0~255之間,
可試著調整數值,以達到馬達轉動的最低電力需求,
若需要高扭力轉動可搭配減速器或減速馬達使用,
若以上練習沒有問題,可試著在另一邊也加上另一顆馬達,
或是控制4個馬達,但是4個馬達只能控制轉動,而無法控制轉向,
void setup()
{
pinMode( 9 , OUTPUT);
pinMode( 10 , OUTPUT);
pinMode( 11 , OUTPUT);
}
void loop()
{
analogWrite(9 , 250);
digitalWrite(10 , HIGH);
digitalWrite(11 , LOW);
delay( 3000 );
digitalWrite(10 , LOW);
delay( 1000 );
digitalWrite(10 , LOW);
digitalWrite(11 , HIGH);
delay( 3000 );
digitalWrite(11 , LOW);
delay( 1000 );
}
沒有留言:
張貼留言