LA LIBRERÍA Servo

Facebooktwittergoogle_pluslinkedinmailFacebooktwittergoogle_pluslinkedinmail

La librería Servo implementa la clase del mismo nombre, destinada a facilitar la comunicación de Arduino con servomotores. La clase Servo (y, por tanto, cualquier objeto que instanciemos a partir de la misma) cuenta con los siguientes métodos:

El constructor

Esta es una clase cuyo constructor puede parecer un poco atípico, ya que no recibe argumentos ni se incluyen los paréntesis propios de la sintaxis de uso de los métodos. Lo único que se hace es declarar un objeto de la clase Servo, así:

Servo MiMotorServo;

EL MÉTODO attach()

Lo hemos usado en este montaje. Recibe como argumento un número de pin digital, y establece dicho pin como de control de un servomotor, de modo que, conectando el cable de control (generalmente blanco o amarillo) a dicho pin, podremos controlar el servomotor.

EL MÉTODO write()

Recibe como argumento un valor entre 0 y 179, que envía al cable de control del servomotor, lo que hace que este gire su eje hasta el ángulo indicado. También lo hemos usado en el sketch del artículo 09.

EL MÉTODO writeMicroseconds()

Este es un nombre un poco desafortunado para el método, porque da a entender que tiene algo que ver con tiempo. Realmente se refiere a transmitir un valor entre 1000 y 2000, para colocar el eje del servomotor en una posición específica, dentro del ángulo de 180 grados que puede girar. Por ejemplo MiMotorServo.writeMicroseconds(1500); colocaría el eje a la mitad de su recorrido de giro. Con el valor 1000 se colocaría totalmente a la izquierda y con el valor 2000 totalmente a la derecha. Sin embargo, algunos fabricantes desarrollan servomotores que aceptan otros valores límite (entre 700 y 2300, p.e.), por lo que no es muy fiable usar este método, salvo que tengamos la hoja de especificaciones (lo que se conoce como datasheet) del servomotor concreto que estemos empleando (no todos los fabricantes especifican este dato, como puede verse en esta datasheet).

EL MÉTODO read()

Permite determinar el ángulo en el que se encuentra el eje de un servomotor en un momento dado. No recibe argumentos y devuelve un valor entre 0 y 179. Se usa como en la siguiente línea de ejemplo:

angulo = MiMotorServo.read();

En la variable angulo se almacena un valor que corresponde con la posición del eje.

EL MÉTODO attached()

Recibe como argumento un número de pin, y devuelve un valor booleano (true o false), según el motor esté o no asociado a dicho pin. Se usa como en la siguiente línea de ejemplo:

asociado = MiMotorServo.attached(9);

Si el objeto MiMotorServo está asociado al pin 9, la variable adquiere un valor true; en caso contrario, la variable recibe un valor false. La variable empleada (en este caso, asociado) debe haber sido definida previamente (a ser posible, en la primera sección, donde se definen las variables y constantes) como de tipo booleano, así:

boolean asociado = false;

EL MÉTODO detach()

Es el contrario del método attach(). Desasocia el servomotor de su pin. No recibe argumento, porque desasocia el cable de control del servomotor del pin al que hubiera sido asociado previamente con attach(). No devuelve valor alguno. Su uso sería así:

MiMotorServo.detach();

     

Un comentario:

  1. Pingback: ARD09 – Servomotores » eldesvandejose.com

Deja un comentario

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