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

博主在学校机器人大赛中使用arduinouno开发板制作了一辆小车,并尝试用纸板搭建机械臂。然而,由于纸板过重,导致舵机无法有效驱动机械臂旋转。分享的代码展示了控制舵机的详细过程,但最终因材料限制未能解决问题。提醒读者在制作机械臂时要注意材料重量对舵机性能的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        学校举办的机器人大赛需要用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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值