Controlar servomotor con Arduino creatividad codificada

Controlar servomotor con Arduino

Arduino

Controlar un servomotor es muy sencillo, con la ayuda de Arduino, ya que este posee una librer铆a llamada <Servo.h>, con la cual podemos realizar proyectos como brazos rob贸ticos, dom贸tica, sistemas automatizados, etc.

驴Qu茅 es un servomotor?

Es un motor de corriente continua que en su interior tiene una caja reductora y su respectivo controlador electr贸nico que nos permite trabajar con una precisi贸n en grados, su rango en grados puede ser de 180 贸 360, esto depende del servomotor que usemos.

驴C贸mo funciona un servomotor?

Estos servomotores funcionan con se帽ales PWM, y as铆 variar la posici贸n del eje del servomotor modificando el duty.

Su ciclo de trabajo de estos servomotores es de 0.5 ms a 2.5 ms, si configuramos el servomotor a 0.5 ms se posicionara a 0 grados y 2.5 ms estar谩 a 180 grados, y la divisi贸n de la diferencia entre estos n煤meros representara el restos de los valores en grados que el servomotor puede trabajar, estos datos no es el mismo para todos, suele variar seg煤n el fabricante.

servomotor

Conexi贸n de un servomotor

Un servomotor presenta tres cables, la principal es para recibir la se帽al PWM, los colores de los cables cambian seg煤n el fabricante, pero normalmente el cable de la se帽al PWM es de color amarillo, naranja o blanco, los otros dos cables son de alimentaci贸n.

Librer铆a servo de Arduino

Esta libreria de Arduino puede controlar 12 servomotores en Arduino Uno

Arduino Mega puede controlar hasta 48 servomotores, pero debemos contar con una fuente de alimentaci贸n externa para los servomotores.

La libreria <servo.h> hace uso del timer 2 de 16 bits lo que quiere decir que no podemos realizar ninguna operaci贸n con este Timer.

Para usar esta librer铆a debemos incluir la siguiente instrucci贸n

#include <Servo.h>

Cuando a帽adimos la librer铆a 鈥渟ervo鈥 de Arduino, reci茅n haremos uso de todas las funciones disponibles en esta librer铆a.

Funciones de la librer铆a servo

Para utilizar estas funciones previamente debemos declarar un objeto del tipo servo.

Servo servo1;

Con estas funciones podremos realizar pr谩cticamente cualquier proyecto con Arduino que incluya el manejo de servomotores.

servo1.attach()

Esta funci贸n nos permite declarar el pin que vamos a utilizar para hacer la conexi贸n del servomotor,en muchos casos es necesario calibrar el siclo de trabajo esta funci贸n nos permite opcionalmente hacerlo como un par谩metro.

Esta funci贸n puede tener uno o tres par谩metros, el primer par谩metro se usa para declarar el pin que vamos a usar, el segundo y tercer par谩metro es el duty m铆nimo y m谩ximo soportado por el servomotor.

Estos datos se la mide en microsegundos y la podemos obtener en la hoja de datos de nuestro servomotor, estos datos son necesarios para calibrar de manera correcta nuestro servomotor, si no se declara el ancho de pulso m铆nimo sera 544 que ser谩 usada para obtener 0 grados y 2400  como ancho de pulso m谩ximo para obtener los 180 grados.

servo1.attach(pin, m铆nimo, m谩ximo);
servo1.attach(9, 600, 2300);

servo1.write()

Esta funci贸n solo tiene un par谩metro y se la usa para declarar el 谩ngulo al cual queremos posicionar el eje del servomotor en Arduino.

servo1.write(90);

servo1.writeMicroseconds()

Esta funci贸n trabaja con los microsegundos para determinar los grados del servomotor, estos datos se obtiene de la hoja de datos del servomotor, por ejemplo si el servomotor trabaja de 1000 a 2000 microsegundos, 1000 representara a 0 grados, 1500 representara a 90 grados y 2000 representara a 180 grados.

servo1.writeMicroseconds(1500);

servo1.read()

Como dice su nombre nos permite leer el 谩ngulo actual del eje del servomotor.

servo1.read();

servo1. attached()

Gracias a esta funci贸n podemos verificar si el pin est谩 declarado para enviar la se帽al al servomotor, y as铆 podemos realizar alguna tarea extra en caso de que no est茅 declarado el pin, nos retorna dato booleana, donde 鈥true鈥 quiere decir que est谩 declarado el pin y 鈥渇alse鈥 en caso de no estar declarado.

servo1.attached();

servo1.detach()

Desvincula el pin asignado para enviar la se帽al al servomotor.

servo1.detach();

1 comentario sobre “Controlar servomotor con Arduino

驴Qu茅 te pareci贸 el art铆culo?

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

  * He le铆do y acepto la pol铆tica de privacidad

驴Qu茅 hacemos con tus datos?

Creatividad Codificada como responsable tratar谩 tus datos con la finalidad de gestionar tu participaci贸n en nuestro blog informativo. Puedes acceder, rectificar y suprimir tus datos, as铆 como ejercer otros derechos consultando la informaci贸n adicional y detallada sobre protecci贸n de datos en nuestra Pol铆tica de Privacidad