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:
//#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.