Arduino經過L9110進行電機控制

L9110

L9110S是爲控制和驅動電機設計的兩通道推輓式功率放大專用集成電路器件,將分立電路集成在單片IC之中,使外圍器件成本下降,整機可靠性提升。安全

該芯片有兩個TTL/CMOS兼容電平的輸入,具備良好的抗干擾性;兩個輸出端能直接驅動電機的正反向運動,它具備較大的電流驅動能力,每通道能經過750~800mA的持續電流,峯值電流能力可達1.5~2.0A;同時它具備較低的輸出飽和壓降與靜態電流;內置的鉗位二極管能釋放感性負載的反向衝擊電流,使它在驅動繼電器、直流電機、步進電機或開關功率管的使用上安全可靠。
L9110S被普遍應用於玩具汽車電機驅動、自動閥門電機驅動、電磁門鎖驅動等電路上。oop

基本參數:

  • 極限參數:800mA / 2.5V-12V
  • 低靜態工做電流: 0.00 uA
  • 寬電源電壓範圍:2.5V-12V ;
  • 每通道具備800mA 連續電流輸出能力,精確快速的正反轉控制;
  • 超低的飽和電壓降;
  • TTL/CMOS 輸出電平兼容,可直接連CPU ;
  • 輸出內置鉗位二極管,適用於感性負載;
  • 精確的脈寬控制和後級驅動集成於單片IC 之中;
  • 具有管腳高壓保護功能;
  • 工做溫度:-30 ℃-80 ℃。

管腳

引腳

序號 符號 功能
1 OA A路輸出管腳
2 VCC 電源
3 VCC 電源
4 OB B路輸出
5 GND 地址
6 IA A路輸入
7 IB B路輸入
8 GND 地線

廠家Datasheet

線路圖

線路圖

實物連線圖

fritzing

驅動代碼

/*
 L9110 控制小型直流電機實驗

 實驗目的:經過L9110的簡單鏈接控制直流電機的 方向 與 速度
 實驗設計:Joystick 充當油門與前向後方向的控制,控制桿隨着方向上將速度由小至大推動
 注意:一個L9110只能控制一個電機,且須要將 IA 與 IB 與 Arduino 鏈接
*/

const int IA = 5;  //  pin 5 connected to pin IA
const int IB = 6;  //  pin 6 connected to pin IB


byte speed = 255;  // change this (0-255) to control the speed of the motor

void setup() {
  pinMode(IA, OUTPUT); // set pins to output
  pinMode(IB, OUTPUT);
  Serial.begin(9600);
}

void loop() {

  int offsetX=525; //當控制桿位於中位時的模擬輸入值,不一樣的控制桿可能有不一樣的誤差。
  
  int x =analogRead(A0);

  bool isFoward = x <= offsetX;  
  speed = x==offsetX ? 0: (isFoward ? (255- map(x,0,offsetX,0,255)): map(x,0,1024,0,255));
  Serial.println(speed);
  isFoward ? forward() : backward();  
}

void backward()
{
  analogWrite(IA, 0);
  analogWrite(IB, speed);
}

void forward()
{
  analogWrite(IA, speed);
  analogWrite(IB, 0);

}

L9110控制電機速度和方向很是簡單,按上述真值表中的定義,只要向輸入端IA/IB輸入高電平則爲轉動,IA 正轉,IB爲反轉。ui

速度是經過調幅PWM 信號進行控制,也就是對IA/IB 寫入 1~255 的速度範圍則可控制電機的轉速。this

相關文章
相關標籤/搜索