Buenas a todos! Mi problema es bastante sencillo de explicar pero por mas vueltas que le doy no consigo solucionarlo.Desde hace unos meses estoy montando un brazo robot que consiste en 5 servomotores controlados con 5 potenciometros a través de una placa Arduino UNO (Nada del otro mundo). El caso es que los servomotores que tenia no tienen suficiente fuerza para levantar el brazo asi que los he substituido por estos: JX PDI-6221MG (Más specs). Estos motores cuando los conecto al pin de 5V, esten o no con más servomotores, no giran ni con potenciometro ni con el comando Servo.write(Ang).
Los motores que tenia antes y funcionaban perfectamente con el código son los famosos MG90S y esos sí que giran cuando los conecto.
Aquí dejo el código que estoy usando y el diagrama de conexiones:
#include <Servo.h>
Servo ServoRB;
Servo ServoB1;
Servo ServoB2;
Servo ServoRP;
Servo ServoP;
int pot0 = 0;
int pot1 = 1;
int pot2 = 2;
int pot3 = 3;
int pot4 = 4;
int val0;int val1;
int val2;
int val3;
int val4;
void setup()
{
ServoRB.attach(13);
ServoB1.attach(12);
ServoB2.attach(8);
ServoRP.attach(7);
ServoP.attach(2);
}
void loop()
{
val0 = analogRead(pot0);
val0 = map(val0, 0 ,1023, 0, 180);
ServoRB.write(val0);
delay (20);
val1 = analogRead(pot1);
val1 = map(val1, 0 ,1023, 30, 95);
ServoB1.write(val1);
delay(20);
val2 = analogRead(pot2);
val2 = map(val2, 0 ,1023, 0, 180);
ServoB2.write(val2);
delay(20);
val3 = analogRead(pot3);
val3 = map(val3, 0 ,1023, 0, 180);
ServoRP.write(val3);
delay(20);
val4 = analogRead(pot4);
val4 = map(val4, 0 ,1023, 25, 150);
ServoP.write(val4);
delay(20);
}
Sospecho que el problema pueda ser intentar alimentar el motor desde los 5V de la placa o quizás le falta intensidad al motor. He estado mucho rato información sobre esto y no he encontrado prácticamente nada.