Servomotor MG995 y Arduino Uno

Hola buenos dias a todos :slight_smile:
he estado teniendo problemas un servomot MG995,lo que pasa es que se re usa a seguir el programa (le dejare abajo el programa que estado usando), ya lo prob√© con otros servomotores (SG90) y estos si funcionan bien pero cuando lo pruebo con el MG995 no lo sigue para nada, en vez de eso por alguna extra√Īa raz√≥n se mueve en el sentido de las manecillas del reloj y se va alentando su movimiento hasta llegar al limite no importa lo que haga no sigue los programas con los que he probado (he probado con otros varios programas para ver si se solucinaba el problema pero no ha funcionado), a lo he estado probando con un arduino Uno.
¬ŅTienen alguna idea de porque se comporta asi y como lo puedo solucionar?

estos son las paginas de donde saque los programas para probarlos:

//Este es el programa que estado usando

#include <Servo.h>

Servo myservoa;  // crea el objeto servo1

void setup() {

 myservoa.attach(3);  // vincula el servo1 al pin digital 3
}
void loop() {
 myservoa.write(90);
 delay(8000);
}

Hola Gargant√≠a‚Ķ lo primero que debo decirte es que el c√≥digo debes de meterlo entre las etiquetas creadas para ese prop√≥sito‚Ķ [ code ][ /code ] sin los espacios que hay dentro de la etiqueta ‚Äúsino no me deja mostrarlo‚ÄĚ

Me surge una duda‚Ķ ¬Ņ¬Ņc√≥mo alimentas ese servo motor?? porque funciona entre 4.8v y 7.2v seg√ļn su datasheet por lo que te recomiendo hacerlo con una fuente externa compartiendo las masas‚Ķ

también te recomendaría usar otra librería como por ejemplo este código:

#include <VarSpeedServo.h> 

VarSpeedServo myservo;    // create servo object to control a servo 

void setup() {
  myservo.attach(3);  // attaches the servo on pin 9 to the servo object 
  Serial.begin(9600);
} 

void loop() {
  myservo.write(120, 60, true);     // move to 180 degrees, use a speed of 30, wait until move is complete
 ¬†Serial.println("Movermos 180¬ļ");
  myservo.write(1, 60, true);        // move to 0 degrees, use a speed of 30, wait until move is complete
 ¬†Serial.println("Movermos 0¬ļ");
}

cotarejo:
Hola Gargantía... lo primero que debo decirte es que el código debes de meterlo entre las etiquetas creadas para ese propósito... [ code ][ /code ] sin los espacios que hay dentro de la etiqueta "sino no me deja mostrarlo"

Gracias por el consejo para lo del código lo tendré en cuenta para el futuro, en cuanto a la alimentación lo estaba haciendo desde la placa pero ahora utilizare una fuente externa, también gracias por el código y la librería lo probare inmediatamente, avisare de los resultados

Hi,
En linea con cotarejo el SG90 la corriente max es de 750 ma y la del MG995 es de 1500ma. Quire decir que necesitas una fuente de energia que te provea por lo menos 1500 ma.

cotarejo:
Hola Gargantía... lo primero que debo decirte es que el código debes de meterlo entre las etiquetas creadas para ese propósito... [ code ][ /code ] sin los espacios que hay dentro de la etiqueta "sino no me deja mostrarlo"

Muchas gracias!! ya funciona bien con la librería que me diste a también cambie la alimentación como me aconsejaste. Solo tengo una duda con respecto al código, es en esta parte"myservo.write(120, 60, true);"
exactamente que significa la parte entre par√©ntesis? o ¬ŅDonde puedo encontrar su significado? para que lo pueda modificar para lo que necesito

Hola! me alegro de que te fucionase... el primer parámetro son los grados que gira el servomotor, y el segundo es la velocidad a la que gira, así puedes configurar cuanto y a qué velocidad quieres que gire!

Salu2

Gracias por el consejo para lo del código lo tendré en cuenta para el futuro

Ac√° existe pasado (lo que posteaste mal) presente(lo que estas posteando) y lo que postear√°s.
Y todo debe estar bajo normas. Y si no lo est√° lo editas.

Ya lo hice yo pero ahora lee lo que te pase por privado para que no vuelva a ocurrir y sepas como editar en caso de equivocarte que no se muere nadie pero que me vas a tener record√°ndotelo a cada momento, dalo por seguro.