Arduino 控制电机 L9110

1、电机驱动模块采用 L9110。

2、代码。

const int IA = 7;  //  pin 7 connected to pin IA
const int IB = 8;  //  pin 8 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;

  // Exp1 ? Exp2 : Exp3;
  // ? : 运算符(三元运算符)其中,Exp1、Exp2 和 Exp3 是表达式。请注意,冒号的使用和位置。
  // ? 表达式的值是由 Exp1 决定的。如果 Exp1 为真,则计算 Exp2 的值,结果即为整个 ? 表达式的值。如果 Exp1 为假,则计算 Exp3 的值,结果即为整个 ? 表达式的值。
  
  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);

}

 

发表评论

邮箱地址不会被公开。 必填项已用*标注