Problema con Arduino UNO y RC servo

4

Este es mi primer intento de trabajar con un servo y estoy usando este tutorial . Tengo un servo "TowardPro MG996R DIGI HI TORQUE" conectado directamente a mi Arduino Uno de la siguiente manera:

TambiéncreéelsiguientecódigoparacargarenelArduino:

#include<Servo.h>Servomyservo;intservoPin=9;voidsetup(){myservo.attach(servoPin);}voidloop(){for(inti=0;i>=20;i+=20){//incrementby20degreesmyservo.write(i);delay(1000);}}

DespuésdeconectarloscablesdelservoalArduino(sinalimentación),conectélafuentedealimentaciónUSBamicomputadoraMac(todavíanosehacargadoningúncódigo).Sinembargo,cuandohiceesto,notéunareacciónmuyextraña:

  1. Elservomotorcomenzóagirarinstantáneamenteenpequeñosincrementos,aproximadamenteunavezporsegundo,comounapulsación.

  2. Elmensaje"Se ha detectado una nueva interfaz de red" sigue apareciendo y cerrándose a la misma frecuencia que el motor del servo.

  3. El mensaje que aparece periódicamente me impedía cargar mi código en el Arduino.

Por supuesto, pensé que algo estaba mal y traté de desconectar la fuente de alimentación y volver a conectarlo varias veces sin ninguna mejora. Entonces, he intentado los siguientes pasos:

  1. Desconecta la alimentación USB del Arduino.
  2. Desconecta los cables del servo del Arduino.
  3. Vuelva a conectar el poder usb al Arduino.
  4. Sube el código.
  5. Desconecta la fuente de alimentación USB.
  6. Reconecta los cables del servo al Arduino.
  7. Vuelva a conectar la fuente de alimentación USB.

Ahora, tengo el siguiente problema:

  1. El servomotor no gira.
  2. Un ruido de silbido viene del servo.
  3. El mensaje "Se ha conectado una nueva interfaz de red" no aparece.
  4. Mi computadora no reconoce nada conectado al puerto USB al que está conectado Arduino.

En este punto, no tengo idea de cuál es el problema o cómo solucionarlo. Cualquier ayuda para entender en qué me equivoqué y cómo remediarlo sería muy apreciada.

    
pregunta Paul

4 respuestas

5
  

Su servo puede comportarse de forma errática, y puede encontrar que esto solo sucede cuando el Arduino está conectado a ciertos puertos USB. Esto se debe a que el servo consume mucha energía, especialmente cuando el motor está arrancando, y esta repentina alta demanda puede ser suficiente para disminuir el voltaje en la placa Arduino, de modo que se reinicie.

     

Si esto sucede, generalmente puede curarlo agregando un capacitor de alto valor (470μF o mayor) entre la GND y 5V en la placa de pruebas

enlace

Como han comentado otros, si su servo requiere más corriente de la que Arduino (o su puerto USB) puede suministrar, debe proporcionar una conexión de alimentación separada para el servo.

Su puerto USB puede estar limitado a 100 mA o a 500 mA, el Arduino puede proporcionar un poco más de corriente a 5 V si está conectado a una fuente de alimentación a través del conector de clavija. Depende de las especificaciones del regulador de 5V en su Arduino (o clon) particular.

Si alimenta el Arduino desde un suministro regulado de 5 V, puede dibujar corrientes más altas desde el zócalo V IN .

Observo que algunos minoristas de su servo sugieren que se use con un placa del controlador del motor .

    
respondido por el RedGrittyBrick
1

Intenté ejecutar el servo con el arduino conectado a la PC y tuve el mismo problema que tú, el servo consume mucha energía y funciona de forma errática

Compré una placa proto con una fuente de alimentación (2 salidas: 3.3v o 5v cada una). Si conecté el circuito en una salida, no funcionó, ¡entonces conecto cada una en una salida diferente y funcioné a la perfección!

    
respondido por el Roberto Silva
0
    void loop(){
  for (int i=0; i>= 20; i+=20){ // increment by 20 degrees
    myservo.write(i); 
    delay(1000);
  }

Es necesario corregirlo de la siguiente manera:

void loop(){
  for (int i=0; i <= 200; i+=20){ // increment by 20 degrees
    myservo.write(i); 
    delay(1000);
  }
    
respondido por el Join Free
-2

Lo siento por el bache, pero resolví esto de una manera diferente.

Puedes evitar todo eso cargando tu boceto ANTES de conectar tu servo.

Tuve este problema mientras trabajaba con el Arduino Starter Kit en los proyectos de servo.

Aunque mientras trabajaba en mi robot hoy, olvidé desconectar la fuente de alimentación externa (4 recargables AA - 4.8V) antes de enchufar el USB 2.0 de mi computadora PC con Windows y parece que lo estropeé. El Arduino Uno funciona si está conectado a un USB a Wallwart, pero no si lo conecto a mi computadora como antes. La computadora lo detecta pero no puede reconocerlo.

Quizás necesito reinstalar algunos controladores en mi computadora. 8.1 Te lo digo.

¡Buena suerte a cualquiera con este problema y no quiere hacer ninguna de las otras soluciones!

    
respondido por el Peter Chau

Lea otras preguntas en las etiquetas