Como controlar un servomotor con un potenciómetro y Arduino/Genuino

En muchos proyectos Arduino/Genuino puede ser interesante poder controlar la posición de un servomotor mediante los ajustes de un potenciómetro. Con este sencillo ejemplo podremos controlar robots, brazos roboticos, vehículos y multitud de prototipos.

Aquí te explicamos paso a paso el diseño, los componentes, los códigos, etc. Si quieres aprender y tienes un proyecto en mente y voluntad, encontrarás fácilmente la información que te ayudará a realizar tu proyecto y ejecutarlo fácilmente.




Como sabéis un servomotor, también llamado servo, es un dispositivo similar a un motor de corriente continua que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y mantenerse estable en dicha posición.

Como controlar un servomotor con Arduino y un potenciómetro




La placa Arduino/Genuino lee el valor correspondiente a la posición del potenciómetro (valor entre 0 y 1023) y lo convierte en un valor proporcional a la escala del servomotor (valor entre 0 y 180).

colores-ServoMotor

Los servomotores tienen tres cables: VCC, GND y Señal. El cable de alimentación VCC es típicamente rojo, y debe ser conectado al pin 5V de la placa Arduino. El cable de tierra, GND, suele ser negro o marrón y debe estar conectado a un conector de tierra de la placa Arduino. El cable de señal es normalmente de color amarillo, naranja o blanco y debe ser conectado a un pin digital en la placa Arduino. Tenga en cuenta que algunos servos pueden tener un consumo de energia considerable, por lo que si tienes que utilizar más de uno o dos, es recomendable una fuente de alimentación independiente, es decir, no conectados al pin + 5V en la placa Arduino. Asegúrese de conectar los GND del Arduino y de la fuente de alimentación externa juntos.




Para controlar los servomotores con Arduino disponemos de la Biblioteca “Servo”, que deberemos incluir en nuestros códigos. Esta biblioteca permite a una placa Arduinocontrolar servomotores. Los servos están formados por engranajes y un por eje que puede ser controlado con precisión. Los servos estándar permiten que el eje pueda ser posicionado en varios ángulos, por lo general entre 0 y 180 grados. Los servos de rotación continuas permiten la rotación del eje para ajustarse a diversas velocidades.

 Componentes y materiales




  • Placa Arduino
  • 1 Micro-servomotor
  • 1 Potenciómetro
  • Protoboard
  • Cables de conexión

Para la preparación de este ejemplo hemos creado un sencillo botón con la impresora 3D.

Puedes descargar el archivo STL para imprimirlo tu mismo en este enlace:   boton-potenciometro.rar.

boton-potenciometro-impresora-3d

Esquema y montaje

Como podemos ver en el esquema, conectamos los servos a +5V, a GND, y al pin 9. Esta salida está controlada por la señal recibida en el pin de entrada analógico 0, por medio del potenciómetro.

Tenemos que conectar las dos patas exteriores del potenciómetro a + 5V y a GND, y el pin central lo conectamos a la entrada analógica 0 de la placa Arduino/Genuino.

Código Arduino para controlar un servomotor con un potenciómetro




#include <Servo.h> // Incluimos la biblioteca Servo

Servo servo_1;  // Definimos los servos que vamos a utilizar

int potenciometro_1 = 0;  // Pin usado para conectar el potenciómeto
int valor_potenciometro_1;    // Esta variable definirá la posición del servo

void setup() {
servo_1.attach(9);  // Difinimos el pines de señal para el servo
}

void loop() {
  
valor_potenciometro_1 = analogRead(potenciometro_1);
// leemose valor del potenciometro (valor entre 0 y 1023)

valor_potenciometro_1 = map(valor_potenciometro_1, 0, 1023, 0, 180);
// valor proporcional a la escala del servomotor (valor entre 0 y 180)

servo_1.write(valor_potenciometro_1);

delay(10);
// Esperamos para reiniciar el bucle
}

 

3 comentarios en “Como controlar un servomotor con un potenciómetro y Arduino/Genuino

  1. Buenas!
    Me encanta este proyecto pero me gustaría modificar lo uno poco, haciéndolo un sistema de seguridad para una puerta, sea domestica o de trabajo. Pero he investigado por Internet y lo que encontrado no ha sido muy útil .
    Acaba de empezar mi primer cuatrimestre en la Universidad en Ingeniera Informática, en la materia de introducción a la Computación, me pidieron hacer uno proyecto con Arduino pero nunca he tenido alguna experiencia en este tipo de proyecto.
    Mi pregunta seria ¿ Si puedo implementar en este mismo proyecto un panel de números para digital la contraseña para poder abrir con el servomotor con la puerta?

  2. hola buenos dias, necesitaba ayuda con un proyecto que tengo que realizar en el modulo superior que me encuentro.
    se trata de implantar un sistema de lazo cerrado mediante un controlador pid, para asi regular la posicion de equilibrio de un balancin mediante una rampa movida por un motor de corriente continua
    queria pedir presupuesto

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.