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
}

 

Deja un comentario

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