极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 25941|回复: 5

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

[复制链接]
发表于 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号舵机反转
}
回复

使用道具 举报

 楼主| 发表于 2020-5-19 21:35:18 | 显示全部楼层
麻烦路过大佬帮下啦,自学写的这样,就是两个不同转向不知怎样弄
回复 支持 反对

使用道具 举报

 楼主| 发表于 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号正常
回复 支持 反对

使用道具 举报

发表于 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);//速度值,越大越慢
  }

理解了以上方法後,你應可處理另一個情況了。努力!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-20 22:51:52 | 显示全部楼层
eddiewwm 发表于 2020-5-20 11:50
這是數學問題,
對 "for(i=60;i

厉害呀,理解了,没错是这样,修改后正常了,谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-24 23:28 , Processed in 0.039020 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表