您现在的位置是:网站首页> 硬件

arduino-解决舵机与直流电机冲突问题

  • 硬件
  • 2021-09-29
  • 943人已阅读
摘要

可能很多人在使用servo库控制舵机时与直流电机发生冲突,在调用Servo.attach(pin)方法之后,可能会有电机不转了

也就是说是servo库与PWM调速有冲突,在9pin和10pin上禁用analogWrite()函数调速,所以电机就不转了,这时候可以更换点机的pin解决问题,但是有的驱动板针脚不好改动,所以只能不使用servo库了,可以使用下面代码解决

int servoPin = 8;    //定义舵机接口数字接口7 也就是舵机的橙色信号线。

 

void setup() {

  pinMode(servoPin, OUTPUT); //设定舵机接口为输出接口

}

 

void loop() {

  servo(3);

  delay(600);

}

 

void servo(int angle) { //定义一个脉冲函数

  //发送50个脉冲

  for(int i=0;i<50;i++){

    int pulsewidth = (angle * 11) + 500; //将角度转化为500-2480的脉宽值

    digitalWrite(servoPin, HIGH);   //将舵机接口电平至高

    delayMicroseconds(pulsewidth);  //延时脉宽值的微秒数

    digitalWrite(servoPin, LOW);    //将舵机接口电平至低

    delayMicroseconds(20000 - pulsewidth);

  }

  delay(100);

}



Top