¿Te has preguntado alguna vez cómo dar vida a tus proyectos de Arduino con movimientos precisos? Los servomotores son la clave para llevar tus ideas al siguiente nivel. En este artículo, te guiaremos a través de un fascinante viaje en el que aprenderás a utilizar un servomotor con Arduino. Te explicaremos de manera clara y sencilla el funcionamiento de estos dispositivos, acompanhado de ejemplos de código que te permitirán ver en acción lo que has aprendido. Prepárate para descubrir un mundo de posibilidades donde tus creaciones no solo cobrarán vida, sino que también se moverán con la elegancia y precisión que siempre has deseado. ¡Comencemos!
¿Quieres aprender a utilizar el servomotor con Arduino pero no sabes por dónde empezar? ¡No te preocupes! En este artículo te explicaremos paso a paso cómo funciona este increíble dispositivo y te proporcionaremos el código necesario para ponerlo en marcha. ¡Prepárate para adentrarte en el apasionante mundo de la programación y la robótica!
Servo Motor es uno de los motores más utilizados en juguetes, máquinas CNC, impresoras 3D para un control preciso. Al final de esta publicación, tendrá una comprensión clara de los servomotores, cómo funcionan y cómo usar un servomotor con Arduino.
¿Cuáles son las diferentes partes de Servo?
El servomotor se compone de 4 partes importantes: un motor de CC, algunos engranajes, un potenciómetro (sensor de posición) y un circuito de control.
>
Y todo este conjunto nos da el control preciso o giro del eje del motor.
NOTA: También puede ver este video «Guía paso a paso del servomotor» para una mejor comprensión o leer el tutorial escrito a continuación:
[arve url=”https://youtu.be/1RWEJFZ9bdo” maxwidth=”555″ aspect_ratio=”4:3″ /]
¿En qué se diferencia Servo de Motor DC?
Suponga que desea realizar un proyecto en el que se necesita un control preciso del motor. Y decide ir con un motor de corriente continua. Luego, al operar el motor de CC, observará algún retraso durante el arranque y la parada del motor.
Debido a esto, es difícil saber cuándo encenderlo y cuándo apagarlo.
Mientras que con un servomotor puede controlar con precisión la rotación o el movimiento del eje según sus requisitos.
¿Cómo funciona un servomotor?
Déjame simplificarte esto explicándote de manera práctica el funcionamiento de un servomotor.
A continuación se muestra un motor de CC. Los engranajes están unidos a su eje como se muestra y, a uno de los engranajes, se conecta la perilla giratoria del potenciómetro.
Sabemos que el potenciómetro tiene 3 terminales, dos terminales finales y un terminal central que se mueve. Terminales finales de la olla. están conectados a 5v y Gnd respectivamente. Mientras que la terminal media va a la terminal -ve de Op-amp o amplificador operacional.
Nota: El trabajo del amplificador operacional es simplemente comparar la diferencia de voltaje entre sus dos terminales, es decir, OP-AMP funciona aquí como un comparador de voltaje. Si hay 5 voltios en su terminal +ve y 3 voltios en su terminal negativo entonces o/p será 5v – 3v = 2 voltios, así de simple.
Ahora, el terminal +ve del opamp está conectado a 5v y el terminal o/p del opamp al motor de CC, mientras que el terminal restante del motor de CC está conectado a tierra.
Supongamos que el terminal central del potenciómetro está en la posición final (GND) de modo que el voltaje en el terminal central sea 0. Entonces O/P será 5 v – 0 v = 5 voltios. Esto significa que hay 5 voltios en el motor de CC. Entonces, el motor de CC comenzará a girar y, por lo tanto, los engranajes y la perilla giratoria.
Y tan pronto como gira la perilla, aumenta la diferencia de voltaje entre la terminal central del potenciómetro y tierra.
Obtenemos algo de voltaje en el terminal -ve del OP-AMP o en el terminal medio del potenciómetro. Supongamos que el voltaje es de 3 voltios, entonces el OP-AMP o/p será de 5v – 3v = 2 voltios. Así que ahora hay 2 voltios en el motor de CC debido a que el motor continúa girando.
Y sucederá lo mismo hasta que la terminal central del potenciómetro alcance el otro punto final (5 voltios) y obtengamos 5 voltios en la terminal negativa del OP-AMP y, por lo tanto, 0 voltios en la salida del OP-AMP. Eso significa 0 voltios en el motor de CC. Debido a que el motor se detendrá.
Nota: Entonces viste cómo todo el conjunto funciona en un ciclo de retroalimentación. Este mecanismo completo de retroalimentación se llama Servomecanismo.
Si desea que el motor gire menos, supongamos que de acuerdo con 3 voltios, el motor se detendrá tan pronto como la diferencia entre los terminales de OP-AMP sea 3V – 3V = 0 voltios, de manera similar para 2 v o 1 voltio. Pero en cada caso, el eje gira menos que en el caso de 5 voltios.
Control PWM del servomotor
En los servomotores, existe un circuito de control perfecto en lugar de OPAMP. Y en lugar de dar voltaje directo, se da una señal PWM para controlar el motor.
En un servomotor, hay tres cables para controlar: el terminal +ve del amplificador operacional y los terminales finales del potenciómetro.
O, en otras palabras, terminal +ve (un extremo de Pot.), terminal Gnd (otro extremo de Pot.) y terminal de control (terminal +ve de OP-AMP).
Y este es el caso de un servomotor real en el que tenemos 3 cables iguales: terminal +ve, terminal Gnd y terminal de control.
Nota: La rotación máxima de un servomotor típico está limitada a 180 grados.
Como ya he mencionado: los servomotores se controlan usando pulsos PWM, la frecuencia de esta señal PWM debe rondar los 50hz. Y el ancho del pulso determina la posición angular del servomotor.
Entonces, si desea que la posición angular sea de 180 grados, la duración del pulso debe ser de alrededor de 2,5 ms, para 90 grados 1,5 ms y para 0 grados 0,5 ms. Para una posición angular distinta de 0, 90 y 180, utilice la duración del pulso en consecuencia.
>
>
Ancho>>
Nota: Tenga en cuenta que el voltaje requerido para ejecutar el servo debe estar entre 4 y 6 voltios.
¿Cómo usar servomotores con Arduino?
El servomotor se puede ejecutar con Arduino utilizando comandos de escritura digital simples que generan pulsos en el pin de E/S digital seleccionado y aquí está el código para el mismo:
Código pin PWM para ejecutar servomotor usando Arduino:
#define servo 9
void setup() {
pinMode(servo, OUTPUT);
}
void loop() {
digitalWrite(servo, HIGH);
delayMicroseconds(550);
digitalWrite(servo, LOW);
delayMicroseconds(19450);
}
>
>¿Cómo conducir un servomotor usando la biblioteca de servos?
Ahora hay una forma más conveniente de hacer funcionar el servomotor que es usando Biblioteca de servomotores. Con esta biblioteca, puede definir fácilmente el grado al que desea que gire su servomotor. Y al usar la biblioteca de servomotores, es muy fácil ejecutar más de 1 servomotor con Arduino. Así que ahora intentemos hacer funcionar el servomotor usando este biblioteca de servomotores.
A) Conducir el servomotor a una posición de grado particular usando Arduino Servo Library:
#include <Servo.h>
Servo servo1;
void setup() {
servo1.attach(6);
}
void loop() {
servo1.write(180);
}
B) Conducir el servomotor en un bucle utilizando Arduino Servo Library:
#include <Servo.h>
Servo servo1;
void setup() {
servo1.attach(9);
}
void loop() {
servo1.write(0);
delay(1000);
servo1.write(90);
delay(1000);
servo1.write(180);
delay(1000);
servo1.write(90);
delay(1000);
}
C) Conducción de dos servomotores en un bucle utilizando Arduino Servo Library:
#include <Servo.h>
Servo servo1;
Servo servo2;
void setup() {
servo1.attach(6);
servo2.attach(9);
}
void loop() {
servo1.write(0);
delay(1000);
servo2.write(0);
delay(1000);
servo1.write(90);
delay(1000);
servo2.write(90);
delay(1000);
servo1.write(180);
delay(1000);
servo2.write(180);
delay(1000);
servo1.write(90);
delay(1000);
servo2.write(90);
delay(1000);
}
En la figura que se muestra a continuación, dos servomotores están conectados a 1 Arduino.
NOTA: Puede ejecutar tantos como desee, pero asegúrese de que si está ejecutando más de 2 servomotores, no use Arduino para suministrar energía a los motores. O no conecte el pin de alimentación de los servomotores a Arduino. Así que siempre use una batería de 6v separada para alimentarlo. Porque Arduino no puede proporcionar suficiente corriente a más de 2 motores.
>
Así que esta fue su «Guía de Arduino Servo Motor en 2019».
Preguntas Frecuentes sobre el uso del servomotor con Arduino
Cómo usar el servomotor con Arduino: código y explicación del funcionamiento
Los servomotores son dispositivos muy utilizados en proyectos de robótica y mecatrónica, ya que permiten controlar con precisión la posición angular de un eje. Cuando se combinan con el Arduino, se pueden realizar una amplia variedad de aplicaciones creativas. A continuación, te responderemos a las preguntas más frecuentes sobre el uso del servomotor con Arduino.
1. ¿Qué es un servomotor?
Un servomotor es un tipo de motor eléctrico que se utiliza para controlar el movimiento angular de un eje específico. Está compuesto por un motor, un sistema de control y un sistema de retroalimentación. La retroalimentación permite al controlador mantener una posición precisa en el eje.
2. ¿Cómo se conecta un servomotor a Arduino?
Para conectar un servomotor a Arduino, necesitas seguir los siguientes pasos:
3. ¿Cómo se programa un servomotor con Arduino?
Para controlar un servomotor con Arduino, puedes utilizar la biblioteca «Servo». Aquí tienes un ejemplo básico de código:
#include <Servo.h>
Servo miServo;
int angulo = 0;
void setup() {
miServo.attach(9);
}
void loop() {
for (angulo = 0; angulo <= 180; angulo += 1) {
miServo.write(angulo);
delay(15);
}
for (angulo = 180; angulo >= 0; angulo -= 1) {
miServo.write(angulo);
delay(15);
}
}
En este ejemplo, utilizamos el pin 9 para controlar el servomotor. El código hace que el servomotor gire progresivamente desde 0° hasta 180° en sentido horario, y luego regrese a 0° en sentido antihorario.
4. ¿Dónde puedo obtener más información sobre servomotores y Arduino?
Si deseas obtener más información sobre servomotores y Arduino, puedes consultar la siguiente fuente:
Servomotor – Wikipedia
En este enlace encontrarás detalles técnicos sobre los servomotores y cómo funcionan, así como información adicional relacionada con Arduino.
Cómo Usar el Servomotor con Arduino: Código y Explicación del Funcionamiento
¿Te has preguntado alguna vez cómo dar vida a tus proyectos de Arduino con movimientos precisos? Los servomotores son la clave para llevar tus ideas al siguiente nivel. En este artículo, te guiaremos a través de un fascinante viaje en el que aprenderás a utilizar un servomotor con Arduino. Te explicaremos de manera clara y sencilla el funcionamiento de estos dispositivos, acompañado de ejemplos de código que te permitirán ver en acción lo que has aprendido.
¿Qué es un Servomotor?
Un servomotor es un dispositivo que permite controlar de manera precisa la posición angular de un eje. Se utiliza ampliamente en robótica, modelismo, y aplicaciones industriales debido a su capacidad para realizar movimientos controlados con alta precisión.
Componentes de un Servomotor
El servomotor se compone de varias partes esenciales:
- Motor de corriente continua.
- Engranajes de reducción.
- Potenciómetro (sensor de posición).
- Circuito de control.
¿Cómo Funciona un Servomotor?
El funcionamiento de un servomotor se basa en la retroalimentación. El potenciómetro mide la posición del eje y ajusta el motor para alcanzar la posición deseada. Esto se realiza a través de señales de modulación por ancho de pulso (PWM), donde el ancho del pulso determina la posición angular del motor. Por ejemplo:
- Para 0 grados: pulso de 0.5 ms.
- Para 90 grados: pulso de 1.5 ms.
- Para 180 grados: pulso de 2.5 ms.
Conexión del Servomotor a Arduino
Para conectar un servomotor a Arduino, necesitarás tres conexiones:
- VCC: Conectar a 5V de Arduino.
- GND: Conectar a tierra.
- Signal: Conectar a un pin digital (ejemplo, pin 9).
Código para Controlar un Servomotor
A continuación se muestra un ejemplo básico de cómo programar un servomotor utilizando la biblioteca de Arduino:
#include <Servo.h>
Servo servo1; // Crear un objeto servo
void setup() {
servo1.attach(9); // Conectar el servomotor al pin 9
}
void loop() {
servo1.write(0); // Mover a 0 grados
delay(1000); // Esperar 1 segundo
servo1.write(90); // Mover a 90 grados
delay(1000); // Esperar 1 segundo
servo1.write(180); // Mover a 180 grados
delay(1000); // Esperar 1 segundo
}
Preguntas Frecuentes sobre el Uso del Servomotor con Arduino
¿Cuál es la diferencia entre un servomotor y un motor de corriente continua?
La principal diferencia radica en el control. Un motor de corriente continua gira continuamente y no tiene un modo de retroalimentación, mientras que un servomotor está diseñado para posicionarse en un ángulo específico y posee un sistema de retroalimentación que le permite corregir su posición.
¿Se pueden controlar múltiples servomotores a la vez?
Sí, puedes controlar múltiples servomotores desde un solo Arduino. Sin embargo, es recomendable utilizar una fuente de alimentación externa si planeas conectar más de dos servos para evitar sobrecargar el Arduino.
¿Qué tipo de servomotores son compatibles con Arduino?
Generalmente, los servomotores de tipo estándar (180 grados) son compatibles con Arduino. Existen también servos continuos que permiten un giro interminable, pero su control es diferente y en ellos no se especifican grados, sino que se les envía un valor de velocidad y dirección.
Referencias Externas
Para más información sobre cómo controlar servomotores, puedes visitar los siguientes enlaces: