Tutorial 10: Servomotores

10-1

Objetivo

En la siguiente practica vamos a conocer que es un servomotor y como utilizarlo programándolo de una manera sencilla y con muchas aplicaciones.

Materiales

1 Arduino uno

1 Cable AB

1 Servomotor estándar (en esta práctica, HS-325HB)

Cables de conexión.

¿Qué es un servomotor?

Básicamente un servomotor es un motor de corriente continua con un potenciómetro que le permite saber la posición en la que se encuentra y así poder controlarla.

10-2

Un servo suele estar formado por:

Una potenciómetro .Un circuito de control..

Un motor de CC.

Un circuito de control.

Habitualmente los servos tiene un margen de operación, es decir, pueden moverse entre 0º y ángulo dado, que suele ser de 180º, pero existen modelos comerciales de todas la características imaginables (incluyendo servos de 360º).

Normalmente estos pequeños servos funcionan sobre 5V y el control se realiza mediante una señal de control PWM, en la que el ancho el pulso indica el ángulo que deseamos adopte el eje.

Dependiendo del tamaño del servo y su consumo es posible que no puedas alimentarlo desde tu placa arduino, en ese caso es necesaria una fuente de 5V independiente para poder moverlo, en mi caso uso un servo HS-325HB este solo tiene 3kg de torque en 4.8v  por lo que consume poca corriente y se puede alimentar directamente por el Arduino. Sobre el peso que pueden levantar normalmente los servos indican el par o torque que pueden realizar podemos buscar el modelo que tenemos y revisar la hoja con sus especificaciones en internet. Y saber si lo podemos conectar directamente al  arduino o si necesitamos alimentarlo externamente.

Conexión.

untitled-sketch_bb

  • Rojo – Alimentación(Normalmente 5 V aunque pueden ser mas)
  • Negro o Marrón -GND
  • Blanco o Naranja – Señal de control (pulso enviado al servomotor)

En este caso no necesitamos la breadboard, podemos conectar directamente el servo al arduino, nuevamente recalcamos que debemos buscar las especificaciones de nuestro servo, para saber si nuestro arduino podrá “levantarlo” o no.

Código

10-3

Lo primero que debemos hacer es importar la librea necesaria para usar los servomotores, luego declaramos el nombre del servomotor, (su declaración es diferente a la de un pin normal) para declararlo usaremos la función Servo luego en el void Setup vamos a escribir dos configuraciones, la primera será decirle en que pin ira el servo( a diferencia de otros componentes de entrada o salida, el pin se declara aquí.) en este caso según la conexión lo pondremos en el pin 3 debemos conectar los servomotores en los pines PMW porque los manejaremos de forma análoga, y los otros pines no lo soportan por eso debemos usar los que están marcados con un “~”  los pines 3, 5, 6, 9, 10, 11.

Posteriormente le escribiremos una configuración inicial al servomotor, le diremos que escriba la posición 0, para que el servomotor se ubique en su grado 0, y así poder comenzar en orden la rutina que hará con el código siguiente.

Por ultimo en el void loop, vamos a llamar al servo por su nombre, servo_motor y luego lo hacemos escribir write e indicamos la posición en grados que deseamos en un rango de 0 a 180 grados. Agregamos una pequeña espera  delay entre los cambios para que se vea de una manera mas suave.

Ejemplo 2

10-4

En este ejemplo configuramos igual, pero agregaremos una variable, llamada pos y estará igualada a 0. Esta indicara la posición incial del servo.

En el void loop, utilizaremos un buble For  para poder aumentar y disminuir los grados de su posición progresivamente.

Primero creamos el for para el aumento, con los paramentros de la variable y su valor inicial,  luego donde se detendrá, y si aumenta o disminuye utilizanto + /-  y también de cuantos grados será el aumento o disminucion, en este caso será de 1 en 1. Por ultimo ponemos el tiempo que se tardara por grado, pondremos un valor pequeño para que sea un poco rápida la transición.

Descarga la version Pdf: tutorial-10-servomotores

Descarga el código de arduino:tutorial-10

 

Comentarios

  1. By Walter Cortez Blanco

Deja un comentario