1
resposta

O braco so fica tremendo e nao se meche

Eu nao consigo entender porque o unico servo que se mexe eh o da base alguem pode me ajudar?

#include <Servo.h>
#define ANGULO_INICIAL 90 

// -- Mapeamento Joysticks--
#define JoystickX1 A0
#define JoystickY1 A1
#define JoystickX2 A2
#define JoystickY2 A3

// --Mapeamento Servos--
Servo motorBase;
Servo motorM1;
Servo motorM2;
Servo motorGarra;

// inicializacao
void setup() {
  mapearMotores();
  iniciaAngulos();
  mapeaJoysticksInput();
}

// loop infinito
void loop() {
  moverBase();
  moverM1();
  moverM2();
  moverGarra();
  delay(100);
}

// funcoes auxiliares

// --- funcos do set up ---
void mapearMotores(){
  motorBase.attach(5);
  motorM1.attach(6);
  motorM2.attach(9);
  motorGarra.attach(10);
}

void iniciaAngulos(){
  motorBase.write(ANGULO_INICIAL);
  motorM1.write(ANGULO_INICIAL);
  motorM2.write(ANGULO_INICIAL);
  motorGarra.write(ANGULO_INICIAL);
}

void mapeaJoysticksInput(){
  pinMode(JoystickX1, INPUT);
  pinMode(JoystickY1, INPUT);
  pinMode(JoystickX2, INPUT);
  pinMode(JoystickY2, INPUT);
}

//--- funcoes do loop ---
void moverBase(){
  int posX1 = analogRead(JoystickX1);
  posX1 = map(posX1,0, 1023, 0, 180);
  motorBase.write(posX1);
}

void moverM1(){
  int posY1 = analogRead(JoystickY1);
  posY1 = map(posY1,0, 1023, 45, 135);
  motorM1.write(posY1);
}

void moverM2(){
  int posX2 = analogRead(JoystickX2);
  posX2 = map(posX2,0, 1023, 50, 90);
  motorM2.write(posX2);
}

void moverGarra(){
  int posY2 = analogRead(JoystickY2);
  posY2 = map(posY2,0, 1023, 90, 130);
  motorGarra.write(posY2);
}
1 resposta

Oiii Giovanni, como você está?

Sinto muito pela demora em obter um retorno.

Em relação ao seu código não identifiquei erros. Provavelmente o erro se encontra na montagem física do braço robótico, confira as ligações e as pinagens do braço são as mesmas das que se encontra no código. Qual o modelo do seu braço-robô? A variação dos ângulos pode variar a depender do modelo.

Fico no aguardo de sua resposta, a gente vai se falando.

Abraços!