Controlar un servomotor con un potenciómetro: Tutorial paso a paso

En este proyecto lo que vamos a ver es cómo podemos controlar la posición de un servomotor con un potenciómetro. Este proyecto nos puede ser útil para controlar la dirección de un coche que construyamos o para el control de acceso de una puerta ya que podemos hacer un cierre electrónico.

¿Te animas a probarlo?

Componentes necesarios

Todos los componentes están disponibles en shop.flexbot.es

¿Qué es un Servomotor?

Servomotor

Un servomotor es un tipo especial de motor en el que se puede controlar los grados de rotación del eje.

Este tipo de motor está compuesto por un motor DC normal y corriente acoplado a una caja de engranajes. Gracias a esta caja de engranajes podemos controlar la posición que queremos que tenga el servomotor.

Los servomotores normalmente tienen tres cables, el de potencia, tierra y señal. El cable de alimentación suele ser rojo y se tiene que conectar al pin de 5V de nuestra placa Arduino, el cable de tierra suele ser de color negro o marrón y se tiene que conectar a alguno de los pines de GND de la placa Arduino y por último el cable de señal suelen ser de color amarillo o naranja y este va conectado al pin digital de la placa.

¿Qué es un potenciómetro?

Potenciómetro 10KOhm

Un potenciómetro es una resistencia variable que nosotros podemos controlar modificando su intensidad. Concretamente el potenciómetro que vamos a usar es lineal de 10 kΩ. Normalmente tiene 3 patillas, una es la de corriente (5V), otra la de tierra (GND) y la última ira conectada a uno de los pines analógicos de la placa Arduino (para este ejemplo usaremos al A0).

Esquema del circuito para controlar un servomotor

  1. Conectaremos el servomotor de la siguiente manera:
  • VCC (cable rojo) -> 5v
  • GND (cable marrón o negro) -> GND
  • Señal (cable amarillo o naranja)  -> D9

Conexión servomotor

2. Para el potenciómetro si ponemos las patillas mirando en contra de nosotros quedarían las conexiones de la siguiente manera:

  • VCC (pin colocado mas a la izquierda) -> 5V
  • GND (pin colocado mas a la derecha) -> GND
  • Señal (pin del centro) -> A0

Conexión potenciómetro

3. Si combinamos el servomotor y el potenciómetro nos tiene que quedar un circuito así:

Conexión servomotor y potenciómetro

De una manera más esquemática el circuito debería verse así:

Hora de programar

Este el el código que debemos reproducir:


#include //Incluimos la libreria del motor
Servo servoMotor; // Creamos el objeto motor para poder controlarlo

int potenciometroPin = 0; // Establecemos el pin analogico para controlar el potenciometr
int val; // variable para leer los valores del potenciometro

void setup() {
servoMotor.attach(9); // establecemos el pin del motor en el pin digital 9
}

void loop() {
val = analogRead(potenciometroPin); // leemos el valor del potenciometro (valor entre 0 y 1023)
val = map(val, 0, 1023, 0, 180); // transformamos el valor del potenciometro para usarlo en el motor (valor entre 0 y 180)
servoMotor.write(val); // una vez transformado el valor, se lo mandamos al servomotor para moverlo
delay(15); // Esperamos la respuesta del servomotor
}

Puedes descargar el fichero dando click aquí.

Una vez completado todo solo queda ver el resultado final. 

¿Te ha gustado este tutorial paso a paso sobre cómo controlar un servomotor con un potenciómetro?

¡¡Sigue las novedades de Flexbot en Facebook y Twitter!!!

Related Post

Pulsera con luz LED sin cables: tutorial paso a pa... ¿Se puede crear una pulsera con luz LED y sin cables? La respuesta es un sí rotundo, y en este tutorial paso a paso vas a comprobar lo sencillo y rápi...
Anime japonés de robots: qué es el género Mecha A colación del Día del niño te venimos a presentar el género Mecha del anime japonés. Si has levantado las cejas con sorpresa sigue leyendo porque te ...
Mujeres informáticas que debes conocer: 5 nombres ... Hay mujeres informáticas que han aportado muchísimo en su campo profesional, y queremos darte nombres y apellidos para contribuir con su visibilizació...
 

Deja un comentario

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