domingo, 24 de marzo de 2024

Cubo de LEDS con Arduino

Este cubo LED utiliza un microcontrolador Arduino Uno para crear un espectáculo de luces en movimiento muy espectacular. Para realizar este proyecto con éxito la paciencia es una de las claves, si sigue el tutorial paso a paso no tendrá ningún problema en desarrollarlo.

Por último, lo más importante en este proyecto es que te diviertas .

¿Qué vamos a necesitar?

  • Arduino Uno (yo he usado Arduino Duemilanove)
  • Cable rígido para unir los diodos en el cubo
  • 64 diodos led (yo usé diodos leds azules)
  • 16 resistencias de 220 Ohmios
  • Pinzas de cocodrilo
  • Un trozo de porexpan
  • Cables de conexión y placas Board para montar el circuito.
  • Alicates de corte y punta plana de precisión.

El diseño

Antes de comenzar la construcción, es importante tener una visión completa de cómo va a funcionar, para que pueda improvisar e identificar los errores a medida que avanzas. Necesitamos controlar los 64 leds del cubo con tan solo 20 pin de la placa de arduno, vamos a estar utilizando una técnica denominada multiplexación. Rompemos el cubo en cuatro capas separadas por lo que sólo necesitamos pines de control para 16 LEDs – de modo para encender un LED específico, debemos activar tanto la capa , y el pin de control , que nos da una necesidad total de 16 +4 pines. Cada capa tiene un cátodo común – la parte negativa del circuito – así que todas las patas negativas se unen entre sí , y se conecta a un solo pin para esa capa .

En el lado (positivo ) de ánodo , cada LED se puede conectar a la correspondiente LED en la capa por encima y por debajo de ella . En esencia , tenemos 16 columnas de las patas positivas y 4 capas de la negativa. El siguiente diagrama en 3D muestra perfectamente la idea :

structural-diagram1

La construcción

Lo primero es tomar el trozo de porexpan y pegar en él la plantilla para poder armar el cubo. A continuación ya podemos ir doblando los cátodos (piernas cortas) de los LED 90 grados y luego soldar a todos juntos para formar un cátodo común. Cada una de las cuatro capas contará con un cátodo común y 16 ánodos individuales (piernas largas).

foto-20-05-13-18-32-43

foto-20-05-13-19-28-58

Debes doblar todas los cátodos de los Leds de manera uniforme, yo me ha ayudado de unos alicates de precisión pequeños, como los de la imagen. Con un poco de paciencia voy soldando de cuatro en cuatro los catodos de los diodos.

El siguiente paso es utilizar un cable para conectar las cuatro filas juntos en una capa, se podría utilizar cuatro tiras de alambre por capa, pero en realidad sólo se necesitan dos iguales – una tras la primera tira de LEDs y un segundo antes de la última tira de LEDs. Yo he usado tres tiras por capa para dar una mayor sensación de cubo unido, en la imagen de abajo podrás observar como quedaría cada capa con un cátodo común y 16 ánodos individuales.

Asegúrese de recortar cualquier exceso de cable colgando sobre el borde de su cubo , también puedes recortar los cuatro cátodos que sobresalen del borde de la capa.

Recuerda que en las soldaduras debes usar el menor contacto y tan poco de soldadura como sea posible. Recuerde, más estaño en cada soldadura no es sinónimo de mayor fuerza en la unión, al contrario podría dar problemas más adelante.

Soldando las cuatro capas.

Ahora que tenemos las cuatro capas individuales, vamos a soldarlas entre si para formar el cubo. Vamos a hacer esto al unir los 16 ánodos de cada capa juntos para que nos quedamos con 16 ánodos comunes y 4 cátodos comunes.

Lo primero que debe hacer es doblar el último mm de cada ánodo hacia el centro del LED, esto le ayudará a unir las capas entre sí. Sólo tiene que hacer esto con tres de sus capas superiores.cube-bend-anode
A partir de aquí tendremos que darnos maña para completar la tarea, podeis usar:

  1. Separdores de cartón entre capas para facilitar la tarea de soldar los 16 ánodos.
  2. Usar pinzas de cocodrilo para sujetar las capas mientras las sueldo.

Mi consejo es que soldar los ánodos de las esquinas juntos primero. Repita esto para las dos capas restantes y su cubo estará completo.

foto-21-05-13-20-35-24

Conexionado y Programa en Arduino

Bueno vamos ahora al conexionado del cubo a la placa arduino y posterior programación, Usamoa las placas board para pinchar el cubo, y conectamos a cada uno de los 16 ánodos cómunes una resistencia de 220 Oh, que a su vez se conectarán a los puertos de Arduino, como se muestran en el gráfico siguiente. A su vez cada capa que forman los cátodos comunes se conectarán a los puertos A2. A3, A4 y A5.

conexion-anodos

foto-21-05-13-23-04-27

Una vez realizadas las conexiones me puedo descargar cualquiera de los dos programas adjuntos, cada uno de ellos muestran animaciones diferentes.

foto-23-01-14-15-42-47

Si usted desea hacer sus propias animaciones , sigue leyendo y voy a explicar cómo funciona.

Así , cuando se abrió el código en el software de Arduino, te habrás dado cuenta de la gran bloque de código en el medio que parecía un poco a esto.

cubecode1

Este gran bloque de código en el medio es donde se desarrollan los patrones de encendio de los leds del cubo. La manera más fácil de pensar en ella es como una animación . Cada cambio en el cubo representa un fotograma de la animación, y cada línea de código representa un fotograma.

En cada línea hay 64 bits de 1 y 0 , se dividió en 16 bloques de 4 bits cada uno, los cuatro primeros nibbles (cuartetos de bits) corresponden a la capa 1, los siguientes a la capa 2 y asi hasta la cuatro. Si hay un 1, entonces eso significa que un LED se encendió, si hay un 0, entonces no va a lucir.

Por ejemplo si tenemos esta línea:

B1000,B1000,B1000,B1000, B0000,B0000,B0000,B0000B0000,B0000,B0000,B0000B0000,B0000,B0000,B0000, 10,

He separado por colores cada capa, de forma que el color negro corresponde a la capa 1(la inferior), la rojo a la dos, verde tres y azul la cuarta capa. Bien en las capas 2, 3 y 4 todo está a cero significa que todos los leds de esas capas están apagados, sin embargo si observamos la capa 1 (la inferior) vemos que está encendido el primer led de cada nibble (cuarteto), lo que quiere decir que lucirán los leds de la fila inferior del fondo. El último valor de la fila indica el tiempo que permanece la secuencia.

foto-23-01-14-09-35-40

Trata de probar con sus propias animaciones, mi consejo es utilizar los comentarios para darse un recordatorio de lo que hace cada animación. Usted puede escribir un comentario en el programa escribiendo «/ /» y luego el comentario.

foto-21-05-13-23-44-35-1

En esta web: http://www.robota.nl/en/blog/led-cube-4x4x4-pattern-designer/led-cube-simulation-and-pattern-generator.html puedes hacerte tus propios patrones de encendido de los leds, con un poco de paciencia e imaginación, pueden quedar unos resultados espectaculares, si quieres en los comentarios puedes enviar los tuyos para que los podamos probar.

Video de Resultado





Invernadero con Arduino

Introducción y antecedentes

Desde el año 2009 la seguridad alimentaria y nutrición (SAN) ha sido una prioridad, por lo que se creó el Consejo Nacional de Seguridad Alimentaria y Nutricional (CONASAN) y su Comité Técnico Nacional (COTSAN) como entidades encargadas de la gestión de una política nacional en el tema, partiendo del reconocimiento del derecho a la alimentación como un derecho fundamental de toda persona.

Con este nuevo enfoque de la SAN, se busca ampliar la disponibilidad y el acceso a los alimentos, al mismo tiempo que se orienta el consumo alimentario y se sugiere formas más equitativas de producir y comercializar los alimentos.

A través del proyecto se hace una propuesta para automatizar un invernadero, lo que facilitaría la producción de los alimentos, haciendo uso de elementos de electrónica de hardware libre, por medio de arduino y una serie de sensores que permiten medir las variables del ambiente y activen una serie de dispositivos que logran mantener el ambiente en condiciones óptimas para el crecimiento de los cultivos.

Se describe el proceso utilizado para la construcción del invernadero, así como las pruebas realizas con los diferentes sensores y dispositivos de acción que permitieron el manejo controlado de las condiciones climáticas.

Justificación

Cada vez más se hacen evidentes los cambios climáticos que afectan los cultivos tradicionales y ponen en relieve el problema de la seguridad alimentaria y nutrición, pues a pesar de los esfuerzos por incentivar la producción de alimentos, siempre hay déficit. Por eso la necesidad de diseñar soluciones, que auxiliándose de la tecnología, faciliten los procesos de producción de alimentos, de ahí surge la idea de invernaderos automatizados como el propuesto, que controle las variables ambientales fundamentales para el crecimiento adecuado de las plantas utilizando hardware libre como arduino y una serie de sensores que accionen los dispositivos eléctricos automáticamente.

Objetivos

Objetivo General:

  • Contribuir con la seguridad alimentaria y nutricional por medio de la propuesta de un invernadero automatizado, que permita el monitoreo y modificación de variables climáticas, facilitando la producción de alimentos en ambientes controlados.

Objetivos Específicos:

  • Diseñar una propuesta de invernadero que por medio de sensores y componentes electrónicos manejados a través de arduino que realicen  las acciones necesarias para el manejo de las condiciones climáticas.
  • Integrar la informática a través de la programación con dispositivos electrónicos basados en hardware libre y componentes eléctricos de forma eficiente, para la creación de invernaderos automatizados.

 

Metodología

Para el desarrollo del invernadero automatizado se han utilizado diferentes materiales:

  • Módulo de madera, que representa a escala un invernadero
  • Arduino mega, para controlar los sensores
  • Pantalla LCD para mostrar los indicadores de las variables ambientales
  • Sensor de temperatura
  • Sensor de humedad del ambiente
  • Sensor de humedad del suelo
  • Sensor de intensidad luminosa
  • Bombillos
  • Ventiladores de computadora
  • Switches
  • Bomba, para el sistema de riego
  • Cables de diferentes tipos para las conexiones
  • Breadboard
  • Tierra
  • Plantas

Equipos:

  • Fuente
  • Tester
  • Taladro
  • Computadora

Se realizó un diseño de la maqueta en el software  Sketchup, para tener una idea clara de las dimensiones y distribución de los componentes que se utilizaron.

Se procedió a realizar la programación  para manejar cada sensor, lo que implicaba programar los niveles necesarios de acuerdo a los criterios correspondientes según la naturaleza de cada uno,  luego se agregó en la programación el código necesario  para que permitiera realizar  las acciones que le correspondería hacer como encender  y apagar los ventiladores o activar y desactivar el sistema de riego del cultivo o encender y apagar los bombillos ya sea con el  propósito de mejorar los niveles de luminosidad o la temperatura.

Luego de realizado el modelo de invernadero, incluyendo la pintura,  adecuación de espacios  y considerando que se habían hecho las pruebas de los sensores, se definió la forma de cubrirlo, considerando el espacio para los dispositivos que fueron instalados, además del llenado de la tierra.

Se procedió a ensamblar cada uno de ellos según el detalle:

Primero se colocó el sensor de temperatura, se instalaron los cables y dos ventiladores, que se activan  cuando hay mucha temperatura, uno inyectará aire del ambiente  y el otro será un extractor del aire caliente, además se colocaron dos bombillos que se activan cuando hay muy baja temperatura. Para el manejo de los dispositivos eléctricos se tuvo que utilizar un módulo de relés, pues el voltaje que se maneja es muy superior al que controla el arduino, para el caso de los bombillos grandes su alimentación es AC.

Se instaló la pantalla LCD lo que permite visualizar los resultados de las mediciones obtenidas por los sensores. Por lo  que se programó que los sensores mandaran esos datos, así cada vez que ase agregaran había que actualizar el código para ir integrando las salidas mostradas.

Seguidamente se ubicó el sensor de humedad de suelo, así como el sistema de riego, esta fase fue bastante delicada, porque eso implicó la ubicación de la bomba de agua, así como la tubería apropiada  para que al momento de activar el sistema permitiera regar adecuadamente las plantas, la acción de la bomba depende de los niveles que el sensor reporta según cómo fue programado.

En el caso del sensor de luz, se colocó en la parte superior para poder medir la cantidad de luz que entra al invernadero, pues si ese valor es menor del necesario se activan una serie de bombillos pequeños para mejorar la luminosidad.

Se realizaron las pruebas tanto unitarias por sensor como en su totalidad a manera de garantizar un funcionamiento óptimo, es decir que cada sensor mida las variables ambientales de manera adecuada, que sean mostradas en pantalla y sobre todo que accione los dispositivos eléctricos según corresponda y que los desactive oportunamente. En dichas pruebas se encontraron algunos detalles los cuales fueron identificados y corregidos tanto a nivel de programación como de ubicación y acoplamiento en la maqueta.

La integración de los códigos de programación para garantizar el buen funcionamiento de todo el sistema fue muy fundamental, porque eso permite que el invernadero sea realmente automático, facilitando la producción de los cultivos.

Resultados y discusión

La utilización de hardware libre promueve el desarrollo de aplicaciones en diferentes áreas, en este caso ha facilitado el diseño y desarrollo de un modelo a escala de un invernadero, porque se considera que el tema de la seguridad alimentaria y nutrición son de vital importancia, no solo por la situación climática que cada vez parece más preocupante por la falta de lluvia, sino también porque las tierras que tradicionalmente se han utilizado para la agricultura no están dando los resultados  esperados y bajo las condiciones controladas de los invernadero es posible mejorar la producción de alimentos, sobre todo con la propuesta realizada ya que facilita la automatización de las acciones que permiten controlar las condiciones ambientales.

Tomando en consideración que los problemas de nutrición tienen repercusiones directas en la salud, crecimiento y desarrollo de las personas (como lo establece el resumen de la situación alimentaria y nutricional de El Salvador), es necesario plantear soluciones aplicadas a esta área.

La combinación de la informática a través de la programación  y la electrónica  basada en la filosofía del hardware libre a la cual pertenece  la placa arduino, dio como resultado el proyecto del invernadero automatizado.

De manera tradicional el desarrollo tecnológico ha beneficiado con  la automatización de procesos de producción industrial, en donde se han desarrollado máquinas robotizadas para ensamblar piezas, etc, pero para sectores como el agrícola se han visto menos favorecidos en la creación de tecnología relacionada al desarrollo de software y hardware para promover este sector, de ahí la importancia de haber desarrollado  este proyecto, que tienen un trabajo integrado de la parte de la computación, por medio de la programación de los códigos, la utilización de componentes electrónicos basados en la filosofía del hardware libre, la cual incluye la idea de compartir los conocimientos para que sean mejor aprovechados por otros que también tengan la iniciativa de utilizarlos y finalmente el uso de los dispositivos eléctricos fundamentales para permitir realizar acciones, movimientos, cambios o alteraciones en las condiciones ambientales dentro del invernadero; todo lo anterior unido a la creatividad  y el diseño de un modelo que integre armoniosamente todos los componentes para el logro de los resultados esperados.

La placa arduino mega (Ver Figura 1), la cual es un dispositivo, capaz de controlar una gran cantidad de variables análogas y salida digitales a través de sus pines, los cuales conectados a sensores que miden las variables ambientales hacen funcionar los actuadores, los cuales se encienden y apagan de acuerdo a las condiciones medidas y lo establecido en la programación.

La electrónica en donde se incluye el arduino mega y los sensores utilizados logran medir las condiciones ambientales  del invernadero, pero esos componentes por sí solos no pueden realizar cambios, por eso fue necesario incluir los dispositivos eléctricos como bombillos, ventiladores y bomba, los cuales por su diseño requieren voltajes superiores a los que un arduino maneja en salida, los cuales son de 3.3 y 5v, así que para lograr una manipulación de los dispositivos eléctricos se utilizaron relés que permiten activar o desactivar en paso de corriente de equipos de mayor voltaje, sin poner en riesgo el circuito electrónico y los sensores. Esta alimentación se logró a través de fuentes de voltaje con salidas de 12V, para la mayoría de los dispositivos en DC, pero en el caso de los bombillos para generar calor utilizan la corriente alterna (AC), por lo tanto disponen de un suministro directo desde un toma corriente, este último aspecto resulta delicado por el manejo de 110V desde la red eléctrica, por lo cual es importante utilizar los materiales adecuados y los mecanismos de aislación de las líneas vivas de energía.

Figura 1. Esquema de la placa arduino mega 2560

 Como se dijo antes los sensores necesitan activar o desactivar una serie de dispositivos eléctricos, cada uno de los cuales tiene el voltaje y corriente necesario para que funcione, pero espera la señal que el circuito electrónico le envíe, en general a la salida en otros dispositivos se le llama actuadores, los cuales se describen en la Tabla 1.

Tabla 1. Sensores y  las acciones que realiza dependiendo de los niveles programados

SensorActuador
Humedad del sueloCuando haya muy poca humedad se activará el sistema de riego consistente en una bomba que a través de la tubería suministra el agua, lo que garantiza el nivel adecuado de humedad de las plantas.
Humedad ambienteMuestra en pantalla el resultado.
TemperaturaSi la temperatura está muye levada, entonces acciona dos ventiladores, uno para inyectar aire del ambiente y el otro para extraer el aire caliente del interior.

Si la temperatura está muy baja, entonces se encienden dos bombillos con el propósito de aportar calor. Todo se activa mientras se está fuera de los niveles establecidos

LuzCuando haya muy poca luz se encenderán unos pequeños bombillos distribuidos en el invernadero para que esté iluminado y compense la falta de luminosidad necesaria.

Los resultados obtenidos responden tanto a la lógica de programación como al diseño establecido tanto a nivel de circuito (Ver Figura 2), como al diseño en físico (ver Figura 3)

circuito_bb

 

 

 

 

 

 

 

 

Sin título

Figura 3. Vista panorámica lateral del modelo de invernadero.

 

Con el desarrollo del modelo del invernadero se pudieron obtener los siguientes resultados:

  • Un control automatizado de las condiciones ambientales dentro del invernadero, considerando los sensores y actuadores descritos anteriormente y de los cuales se presenta un detalle individual de resultados para una mejor comprensión de cómo es que trabaja.
  • Se pueden visualizar los resultados de los valores medidos por los sensores a través de pantallas LCD, lo que facilita tomar decisiones de parte de los especialistas, considerando también que según la programación de los sensores el circuito toma decisiones de acuerdo a los activadores que controla, pero sin duda que la intervención humana, pudiera también ser necesaria para efectos de monitorización de las variables ambientales, por eso el resultado de cada medición de los sensores es mostrado en pantalla (Ver Figura 4).

Sin título

  • El sensor de temperatura el cual se muestra en la Figura 5, hace activar un par de ventiladores, uno de los cuales hace ingresar aire desde el exterior y el otro está colocado de forma tal que expulse el aire caliente que esté dentro del invernadero en el caso de exceso de temperatura. De igual manera si ésta baja demasiado, se encenderán dos bombillos grandes para suministrar calor.

Sin título

Figura 5. Ubicación del sensor de temperatura y de uno de los ventiladores

  • El sensor de humedad del suelo está colocado dentro de la tierra (ver Figura 6) en el invernadero de manera que pueda medir de forma apropiada los niveles, para que con base a esos resultados se active la bomba y se efectúe el regado en el cultivo. Esto se hace por medio de una serie de tuberías colocadas de forma tal que permita cubrir el área total de la siembra.

Sin título

Figura 6. Ubicación del sensor de humedad del suelo

  • El sensor de humedad del aire mostrará al igual que el resto los resultados en pantalla, para monitorear esta variable.
  • En lo referido al sensor de luz (ver Figura 7), el cual fue colocado en la parte superior para medir la intensidad de luz, el cual hace encender unos pequeños bombillos, para compensar esa falta.

Sin título

Figura 7. Sensor de LDR, ubicado en la parte superior.

  • La integración de todos los componentes permitieron obtener un invernadero que trabaje de manera automática accionando los dispositivos necesarios para controlar el ambiente (ver Figura 8), algo necesario para el crecimiento de ciertos cultivos.

Sin título

Figura 8. Representación de la integración del modelo con los componentes

Como consideraciones finales en la parte de discusión es de tomar en cuenta:

  • Es importante tomar en cuenta la ubicación física de los sensores, porque eso facilita la obtención de valores con mucha más exactitud y sean más significativos. Esto implica seleccionar el tipo de cableado que permite la conducción de las señales eléctricas, para este caso en su mayoría fue utilizado cable UTP categoría 6, el cual facilita este proceso, pues se procuró aprovechar el hecho que ya tiene 8 hilos de cobre dentro para hacer llegar conjuntamente varias conexiones a través del mismo cable, aportando a la estética en el modelo. Además de la selección de los otros cables de conexión para un voltaje más alto, sobre todo en el caso de los que conducen 110 voltios.
  • El desarrollo de este tipo de proyectos incluye la integración de conocimientos de muchas áreas: informática, electrónica, electricidad y además del componente de creatividad, elemento muy propio de la ingeniería. Sin duda esta interdisciplinariedad ayuda en el diseño y construcción de propuestas de solución más allá de una sola rama del saber, pues esta integración de los conocimientos permite un aporte mucho más significativo, no solo desde la perspectiva científica o tecnológica, sino también por el aporte a nivel social que se hace, al interesarse por temas como el de la seguridad alimentaria y en este caso en la propuesta de un modelo a escala que representa cómo ayudar con la producción de alimentos en ambientes controlados, pero que ese control no es de forma tradicional, quizás algo más propio de la ingeniería agronómica, sino integrando tecnología, para optimizar los proceso de producción de alimentos.
  • Tomando en consideración que  dentro de las líneas estratégicas  de la política nacional de seguridad alimentaria y nutrición se incluyen:
    • Fomentar la agricultura familiar, que promueva el mejoramiento de los sistemas actuales de producción de alimentos y la diversificación agropecuaria, respetuosa del medio ambiente, con participación significativa de mujeres y jóvenes.
    • Apoyar actividades rentables de diversificación agropecuaria que favorezcan la disponibilidad de alimentos y la generación de empleo digno.
    • Incrementar e innovar los servicios de investigación y asistencia técnica orientados a mejorar y disminuir costos, promoviendo el uso de la agroecología y de tecnologías limpias, y garantizar el acceso pleno y equitativo a estos, por todas y todos los integrantes del grupo familiar, disminuyendo las brechas de género.

 

Puede decirse que la propuesta y resultados de este proyecto están justamente enmarcados en las líneas que rigen las políticas públicas que están encaminadas a garantizar la disponibilidad, acceso y consumo. Esperando con ello que el aporte sea tomado en consideración como mecanismo combinado de varias disciplinas del saber, pueda contribuir como una opción viable, que implementada contribuya con una mejor alimentación y nutrición para los salvadoreños, debido a la urgencia de buscar estrategias sostenibles y rentables en la producción de alimentos.

Conclusiones

El diseñar una propuesta de un invernadero que funcione de manera automatizada utilizando arduino, sensores, pantalla LCD y en general electrónica basada en hardware libre,   ha sido de mucha satisfacción sobre todo porque se sabe de la necesidad que hay en el país de promover la producción de alimentos, tal como lo establece la política nacional  de seguridad alimentaria y nutricional.

El aplicar la tecnología ha facilitado controlar el ambiente y condiciones necesarias para que  el invernadero funcione, activando y desactivando dispositivos eléctricos como bombillos, motores, ventiladores. Es así como la informática y la electrónica pueden contribuir a solucionar problemas.

Controlar un servomotor a través de un potenciómetro en ARDUINO

Materiales

  • Una tarjeta Arduino Uno-R3 o Arduino Mega 2560.
  • Un cable USB impresora.
  • Un computador.
  • Cables para el montaje del circuito.
  • Tarjeta Protoboard.
  • Un Potenciómetro rotatorio.
  • Un servomotor.
Un servomotor (también llamado servo) es un dispositivo similar a un motor de corriente continua pero que tiene la capacidad de ubicarse en una posición específica dentro de su rango de operación. Además, puede mantenerse estable en dicha posición ya que dispone de un circuito electrónico de control. Dependiendo del tipo de servomotor, este  puede ser controlado tanto en velocidad como en posición.
Los servomotores hacen uso de la modulación por ancho de pulsos (PWM) para controlar la dirección o posición de los motores de corriente continua. La mayoría trabaja en la frecuencia de los cincuenta hertz, así las señales PWM tendrán un periodo de veinte milisegundos. La electrónica dentro del servomotor responderá al ancho de la señal modulada. Si los circuitos dentro del servomotor reciben una señal de entre 0,5 a 1,4 milisegundos, éste se moverá en sentido horario; entre 1,6 a 2 milisegundos moverá el servomotor en sentido antihorario; 1,5 milisegundos representa un estado neutro para los servomotores estándares.

Montaje de la práctica

Con el fin de comprender de una manera más fácil el funcionamiento del circuito, así como verificar todas las conexiones existentes.
Los servomotores tienes tres cables: alimentación (rojo), tierra (que puede ser negro o marrón) y señal (que puede ser blanco o amarillo). Normalmente cable señal va a un pin en arduino que permita señales con PWM.

Figura 1. Montaje del circuito en el programa Fritzing.


De la figura se puede observar que el cable rojo va conectado al pin de 5V la cual  envía la alimentación al servomotor. El cable amarillo que sale del servo al Arduino va conectado al pin 9. Se eligió el pin 9 ya que en la tarjeta Arduino al lado del pin hay un símbolo ( ̴ ) , esos puertos o pines que tienen al lado este tipo de símbolo nos permiten mandar señal modulada. Luego el cable blanco que sale del potenciómetro al Arduino va conectado al pin A5 y finalmente los cables rojos desde el servo al potenciómetro hasta llegar al Arduino van conectados a tierra.
 
Figura 2. Servomotor utilizado en la práctica.

Luego de conocer como se construye el circuito en el programa Fritzing, se  desarrolla el programa en el IDE de Arduino.

Código IDE Arduino:
– Se debe seleccionar en la IDE de Arduino el tipo de tarjeta con el que vamos a trabajar siendo Arduino Uno-R3 o Arduino Mega 2560.
– Se selecciona el Puerto Serial, es decir el puerto USB se va a conectar la tarjeta Arduino con el computador.
– Se realiza el código:
  • Inicialmente debemos identificar el programa que se esta desarrollando, por tanto se asigna un nombre al programa, esto se hace empleando el símbolo //. Tambien permite colocar comentarios a lo largo del código para poder facilitar la comprensión de la instrucción que realiza cada línea
  • Se deben declarar las variables globales que serán utilizadas en el programa. Antes de eso debemos llamar a un paquete dentro de la IDE de Arduino llamado Servo (#include<Servo.h>), con esta instrucción se cargan comandos que trabajan solamente con este tipo de dispositivo; a esto se le llama programación orientada a objetos. El comando para llamar al  paquete es #include, y luego se indica el nombre del paquete.
  • Luego es necesario crear un objeto del tipo Servo (Servo myServo;), además se declara la constante de tipo entero llamada PotPin y se le asigna el pin A5. Seguidamente, se declara de tipo entero el valor que ya vaa a leer el potenciómetro PotVal. Por último, se declara una variable angle de tipo entero, ya que se va a emplear un potenciómetro rotatorio y se requiere  saber en qué posición está midiendo el potenciómetro en 0 grados, 180 grados, etc.
  • Seguidamente se realiza la declaración de las configuraciones de las variables o la inicialización de la comunicación serie dentro de los corchetes que delimitan el bloque de programa void setup (). Se debe indicar al programa donde está conectado el servomotor mediante la instrucción myServo.attach(9);
  • , es decir, esa señal que se le suministra estará en el pin 9. Para la realización de esta práctica, se trabaja con la monitor o puerto serie, es decir, la comunicación de datos con el computador. Para abrir el puerto serie, se utiliza el comando Serial.begin(9600) indicando dentro de los paréntesis la velocidad de comunicación con el computador, esta generalmente es 9600 bits por segundo, aunque otras tasas pueden ser soportadas.
  • Luego de inicializada la comunicación serie, se procede con el bloque de programación que se encuentra ubicado en el interior de los corchetes del comando void loop () el cual se ejecuta continuamente leyendo las entradas y generando las salidas. En las primeras instrucciones del bloque de programa se quiere leer la señal enviada por el Potenciómetro al pin A5 y mostrar a través del monitor la señal captada. Para realizar estas acciones, primero se necesita declarar una variable la cual será llamada PotVal. Para ejecutar la lectura de la señal, se realiza mediante el comando PotVal=analogRead(PotPin); (debido a que se trata de una señal analógica), indicándole además el pin en el que debe leer la entrada, la cual se almacena en la variable PotVal. Posteriormente se empleara la funciónSerial.print() para imprimir el valor medido a través del monitor, en el interior de los paréntesis se debe colocar el valor, si se quieren escribir palabras o frases estas deben ir delimitadas mediante los comillas, es decir Serial.print(“PotVal:”);. Seguidamente para que pueda mostrar el valor de la señal debemos imprimir la variable, es decir Serial.print(PotVal);
  • Para  mostrar en el monitor el valor del ángulo correspondiente con la posición en que se encuentra el potenciómetro se utiliza la rutina para “mapear”, es decir, que el leerá la señal de cero (0) a 1023;  y un ángulo de cero (0) hasta 179.  Se utiliza el valor guardado en la variable PotVal la cual está a una escala de cero (0) a 1023 y se requiere  a una escala de cero (0) a 179. Se mapea mediante el comando angle=map(PotVal,0,1023,0,179);. Se utilizará nuevamente el comando Serial.print ();
  • para permitir la visualización de los datos. Para enseñar el valor medido a través del monitor, en el interior de los paréntesis se debe colocar el valor, si se quieren escribir palabras o frases estas deben ir delimitadas mediante los comillas, es decir Serial.print (“angle= “), y luego para que pueda mostrar el valor de la señal debemos leer la variable, es decir Serial.println (angle). Note que  println se utiliza para indicar que el siguiente valor a imprimir en el puerto serial lo realice en la siguiente línea.
  • Para la práctica se debe indicar que los valores del ángulo los enviará al servomotor a través del comandomyServo.write(angle). Por ultimo, se indica un delay para poder dar tiempo a visualizar  los valores verdaderos enviados al monitor serial.
  • Finalmente se debe verificar que al final de cada instrucción se haya colocado el respectivo punto y coma, de lo contrario habrán errores a la hora de compilar.
  • Una vez compilado el programa se ejecuta el mismo. Si las conexiones se hicieron de manera correcta el señor capta y envía las señal a la tarjeta y esta posteriormente al monitor. Sin embargo, para poder observar estos datos es necesario activar el monitor serial, esto se realiza oprimiendo click izquierdo en la barra de herramientas del IDE de Arduino que señaliza el monitor serial en la parte superior derecha (Figura 3).
NOTA: Para quel IDE de Arduino pueda entender los comandos es necesario que al final de cada instrucción se coloque punto y coma (;).
En la siguiente algoritmo se muestra como quedo plasmado en el IDE de Arduino, los procedimientos anteriormente señalados:

// Uso de potenciometro y señales analógicas
#include<Servo.h>
Servo myServo;
int const PotPin=A5;
int PotVal;
int angle;
void setup(){
myServo.attach(9);
Serial.begin(9600);
}
void loop(){
PotVal=analogRead(PotPin);
Serial.print("PotVal:");
Serial.print(PotVal);
angle=map(PotVal,0,1023,0,179);
Serial.print ("angle= ");
Serial.println (angle);
myServo.write(angle);
delay (15);
}


Cubo de LEDS con Arduino

Este cubo LED utiliza un microcontrolador Arduino Uno para crear un espectáculo de luces en movimiento muy espectacular. Para realizar este ...