您现在的位置是:网站首页> 硬件
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);
}