martes, 20 de febrero de 2024

PRÁCTICA 4 : SERVOMOTORES

 SERVOMOTOR DE 180º

Comenzamos a trabajar con actuadores en Arduino, en este caso con servomotores.

Los actuadores son componentes que, a partir de un valor digital, pueden variar nuestro entorno, por ejemplo, a través de movimientos. Más adelante veremos también cómo producir sonidos, medir temperaturas o la intensidad de la luz.

Un servomotor es un dispositivo similar a un motor que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación (en nuestro caso de 0º a 180º, aunque los hay de 360º) y mantenerse en dicha posición. A través de su programación, podremos alterar tanto su velocidad como su ángulo. Una sencilla aplicación a nuestro mundo real sería una barrera en un paso a nivel (parking, vía de tren…), en este caso modificaríamos su valor desde 0º a 90º > 90º a 0º para  levantar > bajar la barrera.

.

Parking and Access Control Systems

.

A veces necesitamos librerías (programas ya hechos por terceros) que nos aporten funcionalidades o nos simplifiquen la programación. En definitiva lo que hacen estas librerías es ampliar el “medio ambiente” de actuación de nuestra placa Arduino aportando funcionalidades extra, por ejemplo para actuadores que no viene predefinidos de serie.

Arduino cuenta con un buen número de ellas, pero en ocasiones es necesario descargarlas o crear las nuestras propias. Cuando se da este caso tendremos que instalarlas para poder ejecutarlas. Puedes ampliar esta información visitando el siguiente enlace.

En este RETO vamos a utilizar una librería que viene por defecto en el IDE (Integrated Development Environmet) de Arduino, la denominada librería Servo“ (Servo.h).

Nuestro servomotor tiene 3 cables: positivo o tensión (rojo), negativo o masa (negro o marrón oscuro) y señal digital, en este caso salida (amarillo) [es importante tener claros los conceptos y no confundir una entrada digital -como el botón- con una salida digital -como el servo-]. Pues bien, esta salida digital recibirá los grados en los que se posicionará la biela de nuestro servo.

El esquema del montaje es como se puede ver a continuación:

.

Montaje servomotor 180 arduino

.

Para comprobar su correcto montaje podemos cargar el ejemplo situado en EJEMPLOS > SERVO > SWEEP y comprobar cómo nuestro servo gira su biela 180º. Podemos ver en el código cómo hace uso de las estructuras de control For para construir bucles de repetición de instrucciones.

Prestaremos especial atención a la función myservo.write(pos) de la librería “Servo” que va a ser la encargada de hacer que nuestra biela se posicione en un rango de posibilidad de 0º a 180º, en la posición que determine la variable “pos”.

IMPORTANTE RECORDATORIO:

Indicar que la instrucción: int pos = 0; cumple una doble función, por una parte le está indicando a nuestro microcontorlador que reserve un espacio de memoria para ocuparlo con el dato de esta variable [si hubiera sido un número constante habríamos escrito const int] y por otra parte está inicializando ese valor de tipo número entero y, en este caso concreto, asignándole el valor inicial de cero. 

Una vez comprobado que funciona bien, podemos añadir nuevas instrucciones para que nuestra biela vaya directamente a las posiciones 0º, 90º y 180º y entonces produzca un movimiento continuo colocándose en esos 3 ángulos sucesivamente. Bastaría con duplicar la instrucción myservo.write(pos) y variar los valores de la variable “pos”.


Una vez ya controlado nuestro servo, vamos a la  construcción del PARKING DOMÓTICO, tendremos que realizar el montaje y añadir la programación de los tres leds y dos botones en nuestra placa de prototipado dejando un buen espacio en el medio que lo destinaremos más adelante a conectar y cablear el DISPLAY, tal y como se muestra aquí. El objetivo de nuestro código, de momento, será que nuestros elementos se comporten de la siguiente manera:

Estado normal: Semáforo en rojo y barrera bajada > si pulsamos botón de entrada (o de salida) > el semáforo cambiará de color > la barrera subirá > tiempo de espera para que cruce el vehículo > un parpadeo del led verde avisará de que se termina el tiempo de cruce > la barrera bajará lentamente volviendo a su posición inicial al mismo tiempo que un parpadeo del led amarillo avisa de su bajada > el semáforo cambiará de color volviendo a estar en rojo y recuperando su estado normal.

  

semáforo, servo 180º y botones para parking domótico con arduino

 


No hay comentarios: