2016年3月26日 星期六

Arduino UNO學習450.馬達控制晶片L293D



Arduino UNO學習450.馬達控制晶片L293D

UNO板接USB供電,輸出電流低於300mA無法直接驅動電機,
需加其他裝置增加電流,需由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 );
}


沒有留言:

張貼留言