Go Down

Topic: Servo tiembla según el PIN (Read 336 times) previous topic - next topic

zombiliaco

Hola buenas a todos, me estoy estrenando en el foro debido a un problema que no consigo resolver por falta de conocimiento y veo que aquí rebosa.

Estoy intentando configurar un hexapodo de 18 servos, el código que estoy utilizando para hacer pruebas es este:
Code: [Select]
//#include <ArduinoRobotMotorBoard.h>
//#include <EasyTransfer2.h>
//#include <LineFollow.h>
//#include <Multiplexer.h>


//los pines de la araña se cuenta como un integrado el boton de power es la guia de la pata uno
#include <Servo.h>
//#include <PS2X_lib.h>
//PS2X ps2x;  //The PS2 Controller Class
//int ForwardVal = 0 ;  // Valor leído de la PS2 Right Stick arriba / abajo.
//int YawLeftVal = 0 ;  // Valor leído en el PS2 Right Stick izquierda / derecha
//int UpVal = 0 ;  // Valor leído de la palanca izquierda de PS2 arriba / abajo
//int RollLeftVal = 0 ;  // Valor leído en la palanca izquierda de PS2 izquierda / derecha
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
Servo servo5;
Servo servo6;
Servo servo7;
Servo servo8;
Servo servo9;
Servo servo10;
Servo servo11;
Servo servo12;
Servo servo13;
Servo servo14;
Servo servo15;
Servo servo16;
Servo servo17;
Servo servo18;

////piens servo 2, 3, 4, 5, 6, 7, 14, 15, 16, 17, 18, 19
////pines pata 1
#define SERVO_MANO1             29 //ok
#define SERVO_CODO1             28 //PK
#define SERVO_BASE1             27 //OK

//pines pata 2
#define SERVO_MANO2             43 //OK
#define SERVO_CODO2             42 //ok
#define SERVO_BASE2             41 //ok

//pines pata 3
#define SERVO_MANO3             3 //ok
#define SERVO_CODO3             4 //ok
#define SERVO_BASE3             50 //ok

////pata pata 4
#define SERVO_MANO4             A8
#define SERVO_CODO4             A9  //ok
#define SERVO_BASE4             A10  //ok

//pata pata 5
#define SERVO_MANO5             5 //ok
#define SERVO_CODO5             2 //PK
#define SERVO_BASE5             8 //OK

////pines pata 6
#define SERVO_MANO6             A1 //OK
#define SERVO_CODO6             A2 //ok
#define SERVO_BASE6             A3 //ok

 void setup()
 {
//  ps2x.config_gamepad(13,11,10,12, false, false);
   servo1.attach(SERVO_MANO1);//AQUI COLOCA SERVO POR SERVO PARA CALIBRAR LOS 90
   servo2.attach(SERVO_CODO1);//AQUI COLOCA SERVO POR SERVO PARA CALIBRAR LOS 90
   servo3.attach(SERVO_BASE1);//AQUI COLOCA SERVO POR SERVO PARA CALIBRAR LOS 90
   servo4.attach(SERVO_MANO2);//AQUI COLOCA SERVO POR SERVO PARA CALIBRAR LOS 90
   servo5.attach(SERVO_CODO2);//AQUI COLOCA SERVO POR SERVO PARA CALIBRAR LOS 90
   servo6.attach(SERVO_BASE2);//AQUI COLOCA SERVO POR SERVO PARA CALIBRAR LOS 90
   servo7.attach(SERVO_MANO3);//AQUI COLOCA SERVO POR SERVO PARA CALIBRAR LOS 90
   servo8.attach(SERVO_CODO3);//AQUI COLOCA SERVO POR SERVO PARA CALIBRAR LOS 90
   servo9.attach(SERVO_BASE3);//AQUI COLOCA SERVO POR SERVO PARA CALIBRAR LOS 90
   servo10.attach(SERVO_MANO4);//AQUI COLOCA SERVO POR SERVO PARA CALIBRAR LOS 90
   servo11.attach(SERVO_CODO4);//AQUI COLOCA SERVO POR SERVO PARA CALIBRAR LOS 90
   servo12.attach(SERVO_BASE4);//AQUI COLOCA SERVO POR SERVO PARA CALIBRAR LOS 90
   servo13.attach(SERVO_MANO5);//AQUI COLOCA SERVO POR SERVO PARA CALIBRAR LOS 90
   servo14.attach(SERVO_CODO5);//AQUI COLOCA SERVO POR SERVO PARA CALIBRAR LOS 90
   servo15.attach(SERVO_BASE5);//AQUI COLOCA SERVO POR SERVO PARA CALIBRAR LOS 90
   servo16.attach(SERVO_MANO6);//AQUI COLOCA SERVO POR SERVO PARA CALIBRAR LOS 90
   servo17.attach(SERVO_CODO6);//AQUI COLOCA SERVO POR SERVO PARA CALIBRAR LOS 90
   servo18.attach(SERVO_BASE6);//AQUI COLOCA SERVO POR SERVO PARA CALIBRAR LOS 90
          
 }
void loop()
{
    servo1.write(90);
    servo2.write(90);
    servo3.write(90);
    servo4.write(90);
    servo5.write(90);
    servo6.write(90);
    servo7.write(70);
    servo8.write(70);
    servo9.write(90);
    servo10.write(90);
    servo11.write(90);
    servo12.write(90);
    servo13.write(90);
    servo14.write(90);
    servo15.write(90);
    servo13.write(90);
    servo14.write(90);
    servo15.write(90);
    servo13.write(30);
    servo14.write(30);
    servo15.write(50);
    servo16.write(90);
    servo17.write(75);
    servo18.write(45);
  
}

Estoy seguro de que se puede mejorar.. No obstante si prueba los servos por individual funciona bien. Por eso descarto fallo del servo.
Estoy utilizando un fuente de alimentación externa de 12V
He evitado utilizar los pines 11, 12, 44, 45, 46 por PWM de la libreria servo.
Cuando los conecto todos me tiemblan dos de ellos..
Gracias de antemano, un saludo.

surbyte

Cuales son los que tiemblan?
Como alimentas todo?

Go Up