xxx一跃而过 发表于 2020-5-19 21:34:07

舵机正反转有个问题麻烦各位啦

下面代码想弄两个舵机可以调速可以同步转,但是想1号舵机正转,2号舵机反转,但这个同在一个赋值相同方向的了,这样该怎样改呢

#include <Servo.h>
int i;
int sudu=20;//速度值,越大越慢
Servo myservo1;
Servo myservo2;


void setup()
{
myservo1.attach(15);
myservo2.attach(21);
}


void loop()
{
for(i=60;i<120;i++)//0到180度
{
myservo1.write(i);
myservo2.write(i);
delay(sudu);//速度值,越大越慢
}//1.2号舵机正转

for(i=120;i>60;i--)
{
myservo1.write(i);
myservo2.write(i);
delay(sudu);//速度值,越大越慢
}//1.2号舵机反转
}

xxx一跃而过 发表于 2020-5-19 21:35:18

麻烦路过大佬帮下啦,自学写的这样,就是两个不同转向不知怎样弄:P

xxx一跃而过 发表于 2020-5-19 22:14:33

void loop()
{
for(i=60;i<120;i++)//0到180度
{
   myservo1.write(i);
    myservo2.write(60-i);
   delay(sudu);//速度值,越大越慢
}

    for(i=120;i>60;i--)
{
    myservo1.write(i);
    myservo2.write(120+i);
    delay(sudu);//速度值,越大越慢
}
}

我弄了下直接在这里改了2号,这样可以做到两个不同方向转了,但改了2号反转那个不受速度控制了,1号正常

eddiewwm 发表于 2020-5-20 11:50:56

xxx一跃而过 发表于 2020-5-19 22:14
void loop()
{
for(i=60;i60;i--)


這是數學問題,
對 "for(i=60;i<120;i++)//0到180度 " 來說,你希望 M1 M2的關係是:
M1   M2
60   120
70   110
80   100
.....
110   70
120   60

按以上關係,找出 M1 跟 M2的關係的其中一個可能公式:
M2 = 180 - M1

把以上公式放回程序中:
for(i=60;i<120;i++)//0到180度
{
   myservo1.write(i);
    myservo2.write(180-i);
   delay(sudu);//速度值,越大越慢
}

理解了以上方法後,你應可處理另一個情況了。努力!

xxx一跃而过 发表于 2020-5-20 22:51:52

eddiewwm 发表于 2020-5-20 11:50
這是數學問題,
對 "for(i=60;i

厉害呀,理解了,没错是这样,修改后正常了,谢谢
页: [1]
查看完整版本: 舵机正反转有个问题麻烦各位啦