PROYECTO Nº 3: Controlar un servomotor

Usa tu primera librería de Arduino, llamada Servo, para controlar un servomotor del Arm Robot. Al tratarse de una librería estándar de Arduino, la encontrarás incluida cuando instales el programa.

NIVEL DE DIFICULTAD: Principiante.

DURACIÓN DE LA ACTIVIDAD:  20 min.

MATERIALES:

  • 1 Servomotor
  • 1 Placa Build&Code UNO
  • 1 Placa sensor Build&Code
  • 1 cable USB – USB tipo B
  • 1 Ordenador

¿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.

arm-robot-Actividad-1-servomotor

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.5 ms) 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 servomotor tiene 3 pines: 1 rojo (5V), 1 marrón o negro (Ground) y 1 amarillo o blanco (Control).

CONEXIONES:

  1. El cable marrón corresponde al GND del servomotor. Conéctalo a la G del puerto digital 6 de la placa sensor Build&Code UNO.
  2. El cable rojo corresponde a los 5V. Conéctalo a la V del puerto digital 6 de la placa sensor Build&Code UNO.
  3. El color naranja corresponde a la señal. Conéctalo a la S del puerto digital 6 de la placa sensor Build&Code.

CÓDIGO DE PROGRAMACIÓN

Puedes realizar esta actividad utilizando el software Arduino y otros software de programación por bloques compatibles. A continuación encontrarás el código de programación necesario.

Código Arduino

  1. Descarga el software Arduino y realiza en proceso de instalación.
    1.2 Ejecuta el programa Arduino.
    1.3 Configura el programa para grabar programas en la placa controladora Build&Code UNO. Encontrarás las instrucciones para hacerlo en la guía de Primeros Pasos del Arm Robot.
  2. 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. También puedes llamarla si escribes lo siguiente en la primera línea de código:
    #include <Servo.h>
  3. Para poder utilizar la librería debes crear un objeto tipo Servo. La primera instrucción que debes escribir después de llamar a la librería es:
    Servo servo1;
    En este caso, Servo es el tipo y el objeto se llama Servo1. Puedes llamar al objeto como tu prefieras.
  4. 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 6:
    servo1.attach(6);
  5. 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);
    “Angulo” es 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 (6); // PIN DIGITAL PWM 6 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 para software de programación por bloques compatible

  1. Descarga el software y realiza el proceso de instalación.
    1.2 Ejecuta el software de programación por bloques compatible.
    1.3 Configura el programa para cargar programas en la placa controladora Build&Code UNO. Encontrarás las instrucciones para hacerlo en la guía de Primeros Pasos del Arm Robot.
  2. Abre el programa y, una vez en él, copia el siguiente código: Usa la siguiente imagen como guía:

RESULTADO DEL EJERCICIO

Has aprendido a utilizar la librería Servo.h en el software de programación Arduino IDE. Una vez instalada la librería, podrás programar y controlar el servomotor en Arduino IDE y en el software de programación visual por bloques compatible.

6 0

0