舵机无法控制机械臂旋转,反而自转的问题

        学校举办的机器人大赛需要用arduino uno开发板做一辆小车,同时需要我们配套制作一个机械臂安装在上面。

 于是我用储存了好久的纸板制作了一个非常简陋的“机械臂”--↑↑↑↑↑

但我忽略了一个问题:

纸板太重了,舵机运行的时候只能自转,无法带动机械臂旋转。只有加重舵机的质量(用手按住舵机)才能够控制机械臂旋转。

下面是我的arduino代码,非常繁琐(QAQ)

#include <SoftwareSerial.h>
#include <Servo.h>
#define Servo_1 2
#define Servo_2 3
#define Servo_3 12
#define Servo_4 13
SoftwareSerial BT(8,9);
int serialData;
int Pin_1 = 5;
int Pin_2 = 6;
int Pin_3 = 10;
int Pin_4 = 11;
int a = 0,b = 0,c = 0,d = 0;
Servo myservo1;
Servo myservo2;
Servo myservo3;
Servo myservo4;
void setup() {
  pinMode(Pin_1,OUTPUT);
  pinMode(Pin_2,OUTPUT);
  pinMode(Pin_3,OUTPUT);
  pinMode(Pin_4,OUTPUT);
  pinMode(Servo_1,OUTPUT);
  myservo1.attach(Servo_1);
  pinMode(Servo_2,OUTPUT);
  myservo2.attach(Servo_2);
  pinMode(Servo_3,OUTPUT);
  myservo3.a ttach(Servo_3);
  pinMode(Servo_4,OUTPUT);
  myservo4.attach(Servo_4);
  Serial.begin(9600);
  BT.begin(9600);
}

void loop() {
  if( BT.available()>0 ){
    serialData = BT.read();
    if(serialData == '1'){
      digitalWrite(Pin_1,LOW);
      digitalWrite(Pin_2,HIGH);
      digitalWrite(Pin_3,LOW);
      digitalWrite(Pin_4,HIGH);
    } else if(serialData == '2')
    {
      digitalWrite(Pin_1,HIGH);
      digitalWrite(Pin_2,LOW);
      digitalWrite(Pin_3,LOW);
      digitalWrite(Pin_4,HIGH);
    } else if(serialData == '0'){
      digitalWrite(Pin_1,LOW);
      digitalWrite(Pin_2,LOW);
      digitalWrite(Pin_3,LOW);
      digitalWrite(Pin_4,LOW);
    } else if(serialData == '3')
    {
      digitalWrite(Pin_1,LOW);
      digitalWrite(Pin_2,HIGH);
      digitalWrite(Pin_3,HIGH);
      digitalWrite(Pin_4,LOW);
    } else if(serialData == '4')
    {
      digitalWrite(Pin_1,HIGH);
      digitalWrite(Pin_2,LOW);
      digitalWrite(Pin_3,HIGH);
      digitalWrite(Pin_4,LOW);
    } else if(serialData == 'a')
    {
      if(a>-180) a -= 10;
      myservo1.write(a);
    } else if(serialData == 'b')
    {
      if(a<180) a += 10;
      myservo1.write(a);
    }  else if(serialData == 'c')
    {
      if(b>-180) b -= 10;
      myservo2.write(b);
    } else if(serialData == 'd')
    {
      if(b<180) b += 10;
      myservo2.write(b);
    } else if(serialData == 'e')
    {
      if(c>-180) c -= 10;
      myservo3.write(c);
    } else if(serialData == 'f')
    {
      if(c<180) c += 10;
      myservo3.write(c);
    } else if(serialData == 'g')
    {
      if(d>-180) d -= 10;
      myservo4.write(d);
    } else if(serialData == 'h')
    {
      if(d<180) d += 10;
      myservo4.write(d);
    }
  }
 }

我试图把舵机和机械臂黏在一起,但无奈并没有用,手边材料有限——只有牙签,纸板等。所以最终也没能得到解决。

以后再想想办法吧,提醒大家如果制作机械臂的时候一定要注意这一点,不要重蹈我的覆辙。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值