Arduino UNO R4 - servomotor

Este tutorial te enseña cómo controlar un motor servo con un Arduino UNO R4. Específicamente, aprenderemos:

Arduino UNO R4 servomotor

Acerca del servomotor

Un servomotor es un componente que puede girar su eje, usualmente de 0 a 180 grados. Se utiliza para controlar el ángulo de un objeto.

Disposición de pines

Este ejemplo utiliza un servomotor con tres pines:

  • Pin VCC: Conecta el cable rojo al VCC (5 voltios).
  • Pin GND: Conecta el cable negro o marrón a GND (0 voltios).
  • Pin de señal: Conecta el cable amarillo o naranja para recibir la señal de control PWM desde un pin del Arduino UNO R4.
Pinout del servomotor

Diagrama de Cableado

A veces, puedes ver diagramas de cableado en línea que muestran una conexión entre el pin VCC de un servomotor y el pin de 5 V en la placa Arduino UNO R4. Es mejor evitar este método porque podría dañar la placa Arduino UNO R4.

Diagrama de cableado del Arduino UNO R4 para servomotor

This image is created using Fritzing. Click to enlarge image

Para proteger tu placa Arduino UNO R4, es mejor usar una fuente de alimentación externa para el servomotor. El diagrama de cableado que se muestra a continuación indica cómo conectar el servomotor a una fuente de alimentación externa.

Diagrama de cableado de la fuente de alimentación externa para el servomotor del Arduino UNO R4

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Uno R4 y otros componentes.

Asegúrate de conectar la GND (tierra) de la fuente de alimentación externa a la GND de la placa Arduino UNO R4. Este paso es muy importante para que funcione correctamente.

Cómo programar para un servomotor

  • Incluir la biblioteca:
#include <Servo.h>
  • Crear un objeto Servo:
Servo servo;

Si gestionas varios servomotores, simplemente declara objetos Servo adicionales.

Servo servo1; Servo servo2;
  • Conecta el pin de control del Arduino UNO R4 al pin de señal del servomotor, por ejemplo, el pin 9.
servo.attach(9);
  • Por último, gire el servomotor al ángulo que necesite, como 90 grados.
servo.write(90);

Código de Arduino UNO R4

/* * Este código de Arduino UNO R4 fue desarrollado por es.newbiely.com * Este código de Arduino UNO R4 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-servo-motor */ #include <Servo.h> Servo servo; // Initialize a Servo object to manage a servo void setup() { servo.attach(9); // Connects the servo on pin 9 to the servo object servo.write(0); // Moves the servo to 0 degrees immediately upon startup } void loop() { for (int pos = 0; pos <= 180; pos += 1) { // Gradually move the servo from 0 to 180 degrees servo.write(pos); // Set servo position to 'pos' degrees delay(10); // Delay 10ms to allow the servo to reach the new position } for (int pos = 180; pos >= 0; pos -= 1) { // Gradually move the servo from 180 back to 0 degrees servo.write(pos); // Set servo position to 'pos' degrees delay(10); // Delay 10ms to allow the servo to reach the new position } }

Pasos R\u00e1pidos

Sigue estas instrucciones paso a paso:

  • Si es la primera vez que usas el Arduino Uno R4 WiFi/Minima, consulta el tutorial sobre configurar el entorno para Arduino Uno R4 WiFi/Minima en el IDE de Arduino.
  • Conecta los componentes de acuerdo con el diagrama proporcionado.
  • Conecta la placa Arduino Uno R4 a tu computadora con un cable USB.
  • Inicia el IDE de Arduino en tu computadora.
  • Selecciona la placa Arduino Uno R4 adecuada (p. ej., Arduino Uno R4 WiFi) y el puerto COM.
  • Pega el código anterior en el IDE de Arduino.
  • Presiona el botón Subir en el IDE de Arduino para enviar el código al Arduino Uno R4.
Arduino IDE - Cómo subir código
  • Observa lo que sucede: el servomotor gira lentamente de 0 a 180 grados y luego gira lentamente de 180 a 0 grados.

Explicación del código

Puede ver la explicación en la sección de comentarios del código de Arduino anterior.

Cómo controlar la velocidad de un servomotor

El uso de las funciones map() y millis() nos permite ajustar suavemente la velocidad de un servomotor mientras el resto del código se ejecuta sin interrupciones.

/* * Este código de Arduino UNO R4 fue desarrollado por es.newbiely.com * Este código de Arduino UNO R4 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-servo-motor */ #include <Servo.h> Servo servo; #define MOVING_TIME 3000 // Duration for the servo to move from startAngle to stopAngle unsigned long moveStartTime; // Timestamp when the servo starts moving int startAngle = 30; // Initial angle in degrees int stopAngle = 90; // Final angle in degrees void setup() { servo.attach(9); // Attach the servo on pin 9 to the servo object moveStartTime = millis(); // Initialize timer at the start of setup() // Additional initialization code can be added here } void loop() { unsigned long progress = millis() - moveStartTime; // Calculate elapsed time since start if (progress <= MOVING_TIME) { // During the defined MOVING_TIME period long angle = map(progress, 0, MOVING_TIME, startList and stopAngle); // Calculate intermediate servo angle servo.write(angle); // Set servo position to calculated angle } // Additional repetitive code can be added here }

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!