De conformidad con el Reglamento (UE) 2016/679 del Parlamento Europeo y del Consejo de 27 de abril de 2016 relativo a la protección de las personas físicas en lo que respecta al tratamiento de datos personales y a la libre circulación de estos datos y (Reglamento General de Protección de Datos) ofrecemos la posibilidad de aceptar o no el uso de cookies mientras navega por nuestro sitio web. Puede obtener más información en nuestra web
El espacio exclusivo de robótica educativa
Todo sobre productos Mobile, Connect, Outdoor y Robótica Educativa
Proyecto 2 Arm Robot: control de un servomotor
Published in Robótica - 17 Agosto 2017

Aprende a controlar la posición de un servomotor utilizando la librería que ofrece Arduino para programar Servomotores.

Material:

  • 1 — Servomotor
  • 1 — Placa Build&Code UNO

¿Qué es un Servomotor?

Un motor eléctrico es una máquina que transforma la energía eléctrica en energía mecánica rotativa continua. Un servomotor es un motor de corriente continua pero en vez de conseguir un giro continuo, está diseñado para conseguir que gire un determinado ángulo en respuesta a una señal de control, y que se mantenga fijo en esa posición.

Esta señal de control es dada por los pines digitales PWM. Para controlar el servomotor se le envía pulsos cada 20 ms es decir a 50Hz. La anchura del pulso es lo que determinará el ángulo de giro, es decir lo que se conoce como PWM. Esta anchura varía según el servomotor pero normalmente va entre 0.5 y 2.5 ms aunque puede variar. Esto hace que el servomotor tenga un margen de operación, por lo que se puede mover entre 0º (pulso con una anchura de 0.5ms) y un máximo, que suele ser, de 180º (pulso con una anchura de 2,5ms).

Los servomotores pequeños, como los del kit Arm Robot funcionan con 5V y el control se realiza mediante un pin digital PWM de la placa Build&Code UNO, en la que la anchura del pulso determinará el ángulo que adopte el servo.

Un servo tiene 3 pines: 1 rojo (5V), 1 marrón o negro (Ground) y 1 amarillo o blanco (Control).

Circuito:

El color negro es el GND, conectalo al GND de la placa Build&Code UNO.

El color rojo son los 5V, conectalo al 5V de la placa Build&Code UNO.

El colors naranja es la señal, conectalo al pin digital 6, que és una salida PWM.

Programa en código Arduino IDE

Usa tu primera Librería de Arduino: Servo

La librería Servo es una librería estándar de Arduino, por lo que viene incluida cuando instalas la IDE de Arduino.


Para usar la librería, puedes llamarla desde el menú Programa \ Importar Librería \ Servo. O también puedes llamara si escribes lo siguiente en la primera línea de código:

#include

Para aprender a usar una librería debes leer la documentación en la que se detalla la forma de usarla, qué funciones hay disponibles, parámetros con los que trabajar, etc.

La primera instrucción que debes escribir después de llamar a la librería es:

Servo servo1;

Para poder utilizar la librería debes crear un objeto tipo Servo que puedes llamar servo1, aunque puedes llamarla como quieras.

Una vez hayas creado el objeto (y puedes crear tantos como necesites, para manejar varios servos a la vez) tienes que incluir una línea en la función setup() para informar que vas a conectar un servo físico a un pin físico del Arduino para controlarlo y asociar este servo al objeto creado. En este caso el pin 9:

servo1.attach(9);

Para mover el servo, tan solo tendrás que escribir la posición a la que quieras que se mueva en grados:

servo1.write( angulo);

Siendo Angulo el valor en grados de la posición a la que quieras que se mueva, de 0 a 180º.

#include <Servo.h>

Servo motor1; // DECLARAR SERVO 1
int grados1 = 0; // GRADOS DEL SERVO 1

void setup() { 
motor1.attach (9); // PIN DIGITAL PWM 9 DONDE ESTÁ CONECTADO EL SERVO 1
}

void loop() {

grados1 = 0;
motor1.write (grados1); // ENVIAR LOS GRADOS AL SERVO 1
delay(1000);	// ESPERA 1 SEGUNDO EN LA POSICIÓN FIJADA

grados1 = 60;
motor1.write (grados1); 
delay(1000);

grados1 = 120;
motor1.write (grados1);
delay(1000);

grados1 = 180;
motor1.write (grados1); 
delay(1000);

grados1 = 120;
motor1.write (grados1); 
delay(1000);

grados1 = 60;
motor1.write (grados1); 
delay(1000);
}

Código mBlock:

 

Volver al índice de proyectos del Arm Robot.

Sobre la placa Build&Code 4in1:

Descubre más kits Ebotics:

 

Escribe un comentario
* Campos obligatorios