Arduino Nano ESP32 - MG996R

En este tutorial, vamos a aprender a usar el servomotor MG996R de alto torque con Arduino Nano ESP32.

Hardware Requerido

1×Arduino Nano ESP32
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×Servomotor MG996R
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano ESP32

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del servomotor

El servomotor MG996R es un servomotor de alto torque capaz de levantar hasta 15 kg de peso. El motor puede girar su eje de 0° a 180°, proporcionando un control preciso de la posición angular. Para información básica sobre servomotores, consulte el tutorial Arduino Nano ESP32 - Servo Motor.

Diagrama de pines

El servomotor MG996R utilizado en este ejemplo incluye tres pines:

  • Pin VCC: (normalmente rojo) debe conectarse a VCC (4.8V – 7.2V)
  • Pin GND: (normalmente negro o marrón) debe conectarse a GND (0V)
  • Pin de señal: (normalmente amarillo o naranja) recibe la señal de control PWM desde un pin del ESP32.
Diagrama de pines del servomotor MG996R

Diagrama de Cableado

Como el MG996R es un servomotor de alto torque, consume mucha energía. No deberíamos alimentar este motor a través del pin de 5 V de Arduino Nano ESP32. En su lugar, debemos usar una fuente de alimentación externa para el servomotor MG996R.

  • Al alimentar la placa Arduino Nano ESP32 a través del puerto USB.
Diagrama de cableado del servomotor MG996R para Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

  • Al alimentar la placa Arduino Nano ESP32 a través del pin Vin.
Diagrama de cableado de alimentación externa para el servo MG996R con Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Código de Arduino Nano ESP32

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-mg996r */ #include <ESP32Servo.h> Servo servo; // create servo object to control a servo void setup() { servo.attach(D2); // attaches the servo on pin D2 to the servo object servo.write(0); // rotate slowly servo to 0 degrees immediately } void loop() { for (int angle = 0; angle <= 180; angle += 1) { // rotate slowly from 0 degrees to 180 degrees, one by one degree // in steps of 1 degree servo.write(angle); // control servo to go to position in variable 'angle' delay(10); // waits 10ms for the servo to reach the position } for (int angle = 180; angle >= 0; angle -= 1) { // rotate from 180 degrees to 0 degrees, one by one degree servo.write(angle); // control servo to go to position in variable 'angle' delay(10); // waits 10ms for the servo to reach the position } }

Pasos R\u00e1pidos

Para empezar con Arduino Nano ESP32, sigue estos pasos:

  • Si eres nuevo en Arduino Nano ESP32, consulta el tutorial sobre cómo configurar el entorno para Arduino Nano ESP32 en el IDE de Arduino.
  • Conecte los componentes de acuerdo con el diagrama proporcionado.
  • Conecte la placa Arduino Nano ESP32 a su computadora mediante un cable USB.
  • Abra el IDE de Arduino en su computadora.
  • Seleccione la placa Arduino Nano ESP32 y su puerto COM correspondiente.
  • Haga clic en el icono Libraries en la barra izquierda del IDE de Arduino.
  • Escriba ESP32Servo en la caja de búsqueda, luego busque la biblioteca de servos de Kevin Harrington y John K. Bennett.
  • Haga clic en el botón Instalar para instalar la biblioteca de servomotores para Arduino Nano ESP32.
Biblioteca de servomotores para Arduino Nano ESP32
  • Conecta Arduino Nano ESP32 al PC mediante un cable USB
  • Abre el IDE de Arduino, selecciona la placa y el puerto correctos
  • Copia el código anterior y ábrelo con el IDE de Arduino
  • Haz clic en el botón Subir en el IDE de Arduino para cargar el código en el Arduino Nano ESP32
Arduino IDE - Cómo subir código
  • Vea el resultado: el servomotor gira lentamente de 0° a 180° y luego vuelve a girar lentamente de 180° a 0°.

Explicación del código

Puedes encontrar la explicación en la línea de comentarios del código de Arduino anterior.

Cómo controlar la velocidad de un servomotor

Al usar las funciones map() y millis(), podemos controlar la velocidad del servomotor de forma suave sin bloquear el resto del código.

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-mg996r */ #include <ESP32Servo.h> Servo servo; unsigned long MOVING_TIME = 3000; // moving time is 3 seconds unsigned long move_start_ms; int angle_start = 30; // 30° int angle_stop = 90; // 90° void setup() { servo.attach(D2); move_start_ms = millis(); // start moving // TODO: other code } void loop() { unsigned long progress = millis() - move_start_ms; if (progress <= MOVING_TIME) { long angle = map(progress, 0, MOVING_TIME, angle_start, angle_stop); servo.write(angle); } // TODO: other code }

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!