Arduino: Introducción

Vamos a conocer la plataforma de prototipado de electrónica abierta ARDUINO, basada en software y hardware libre.

  1. Arduino
  2. Ecosistema de Arduino
    1. Hardware
    2. Entorno de desarrollo
    3. Software
    4. Soporte en red
  3. Conceptos básicos sobre Arduino
    1. Qué es un microcontrolador
    2. Funcionamiento
    3. Entradas y salidas
    4. Arduino UNO: Conexiones
  4. Prácticas con Arduino UNO
    1. 1: Hola Mundo
    2. 2: Semáforo. Secuencias y repeticiones

Arduino

  • Arduino es una plataforma de prototipado de electrónica abierta.
  • Se basa en software y hardware libre: Nos da libertad para ejecutarlo con cualquier propósito, estudiar cómo está hecho y modificarlo, redistribuir copias.
  • Es flexible y de fácil uso.

Ecosistema de Arduino

Hardware

  • Placa microcontroladora de entradas y salidas.
  • Arduino UNO es el modelo más popular.
  • Tenemos componentes de electrónica discreta y módulos en placas presoldadas que conectan los pines.

Entorno de desarrollo

  • Necesario para escribir código, depurarlo, compilarlo y cargarlo en la placa, y comunicarnos con la placa.
IDE oficial de Arduino
IDE de «diode«

Software

  • Lenguaje con el que se programan las placas de entradas y salidas.
  • Basado en C++, programación orientada a objetos con dos estructuras fundamentales: setup y loop.
  • Gran cantidad de librerías que aumentan las funcionalidades y permiten controlar los dispositivos de forma sencilla.

Soporte en red

  • La web de Arduino nos muestra gran cantidad de información: Lenguaje de programación, proyectos, guías, hardware,…

Conceptos básicos sobre Arduino

Qué es un microcontrolador

  • Es un circuito integrado y programable.
  • Posee todos los componentes del ordenador: CPU, memoria, almacenamietno y dispositivos de entrada y salida.
  • Arduino utiliza un ATmega328, que cuenta con 300 millones de transistores.
  • Son importantes por ser económicos, flexibles (facilidad de programación) y tener una gran velocidad de operación. Ha dado lugar a una revolución tecnológica, propiciando que se incluyan en gran cantidad de dispositivos.

Funcionamiento

  • Lectura de entradas > Procesado de la información > Decisión de la actuación > Actuación sobre las salidas.

Entradas y salidas

  • Una señal analógica varía de forma continua entre un mínimo y un máximo, pudiendo tomar todos los valores intermedios.
  • Una señal digital es aquella que solamente toma dos valores: uno mínimo y otro máximo.
  • Ventajas de los sistemas digitales:
    • Rapidez de procesamiento y transmisión sencilla de datos.
    • Fácilmente programables con lenguajes de alto nivel.
    • Almacenamiento sencillo de información y sin límites.
    • Menos susceptibles al ruido, pues pueden detectarse valores ruidosos.
    • Menor costo.
    • Capacidad de integración dado su pequeño tamaño.
    • Diseño modular.
  • Desventajas de los sistemas digitales:
    • Nuestro mundo es analógico, por lo que esos valores deben convertise en digitales.

Arduino UNO: Conexiones

Prácticas con Arduino UNO

1: Hola Mundo

  • Nos introduce en la estructura del código de Arduino.
  • Es un recurso al que podemos recurrir para comprobar que el sistema compila y carga correctamente en la placa.
  • Nos iniciamos en este lenguaje desde la perspectiva de «aprender haciendo».

La finalidad de nuestro sistema es encender y apagar un LED de forma repetitiva o cíclica.

Hardware: Esquema

El código de Arduino se divide en 3 partes:

  1. La primera se encarga de las variables globales.
  2. La segunda, el setup, posee la característica de que se ejecuta una sola vez. Se utilizará para realizar la configuración del sistema.
  3. La tercera es el Loop, que se ejecuta de forma cíclica y es donde colocaremos el cuerpo de nuestro programa.

Este es el diagrama de flujo del programa que vamos a realizar, que consta de los siguientes elementos:

Y este es el código de Arduino:

  • La primera parte suele estar dedicada a comentarios explicativos del funcionamiento del programa. Para hacer comentarios de tipo párrafo utilizaremos: /* */
    Los comentarios de línea irán precedidos de: //
  • A continuación, encontraremos la declaración de variables globales. En el caso, hemos declarado la variable ledPin y le hemos asociado el Pin 13.
  • Le sigue la función Setup. En el caso mostrado, al utilizar una salida digital, debemos configurarla, ya que los elementos digitales pueden ser tanto de entrada como de salida. Para ello nos valdremos de la instrucción pinMode. Nos pide el Pin y asociar un valor de salida o de entrada.
  • Pasamos al Void Loop, el cuerpo de nuestro programa. Para establecer 5V, utilizaremos la función digitalWrite, con el Pin del LED y los valores alto o bajo. Para esperar un segundo utilizaremos la función delay (en milisegundos). Volvemos a utilizar digitalWrite para establecer 0V, en este caso la constante LOW. Para volver a esperar un segundo volvemos a utilizar delay. Con esto terminaría la función loop, que se volvería a ejecutar.

Una variable es un espacio de memoria en el que almacenamos un valor. Las variables contribuyen a la legibilidad del código. Por lo tanto, deben elegirse nombres significativos. En el caso de que cambiemos los pines de conexión, nos servirá para realizar los cambios fácilmente.

Para cargar el programa desde el IDE de Arduino:

Simuación en IDE Arduino
Simulación en diode

Esta es la simulación con DIODE:

Recuerda:

* Utilizar nombres de variables significativas.
* Terminar cada una de las isntrucciones en punto y coma (;)
* Abrir y cerrar los bloques con una llave ( { } ).
* Utilizar la tabulación para facilitar la lectura del programa.

Propuestas de actividad:
* Cambia los tiempos de parpadeo.
* Que parpadee al ritmo del corazón.
* ¿A qué velocidad deja de verse el parpadeo del LED?
* ¿Cómo podemos hacer que sólo parpadee una vez?
* Crear variables para el tiempo de parpadeo.
* Decrementar el tiempo de parpadeo en cada iteración.

2: Semáforo. Secuencias y repeticiones

La finalidad de nuestro sistema es realizar una secuencia de luces que simule un semáforo de coches.

Salidas digitales:

  • Disponemos de los pines digitales (entradas y salidas) que van del 0 al 13. Las entradas analógicas (6) son configurables como digitales si fuera necesario.

Configuración de Entrada o Salida:

  • Los pines deben ser configurados en el setup mediante la instrucción pinMode, indicando el número del pin al que vamos a conectar nuestro componente y el valor. El valor puede tomar la constante OUTPUT o INPUT. Por defecto están configurados como entradas.

DigitalWrite: activando/desactivando la salida:

  • Para establecer un valor de 0V ó 5V utilizamos la instrucción digitalWrite, indicando una vez más el pin y el valor, que puede tomar las constantes LOW y HIGH.

Esquema:

Este es el código:

Aquí está la simulación:

Propuestas de actividad:
* Simplificar el código eliminando instrucciones innecesarias.
* Introducir un parpadeo en el LED azul.
* Usa la instrucción for para hacer parpadear el LED azul.
* Acelera el parpadeo del LED.

En esta versión, se eliminaron comentarios y se redujeron algunos tiempos de espera a 1 segundo, ya que la secuencia de luces del semáforo no requiere de tiempos de espera más largos. Además, se eliminó la inicialización de los LEDs como LOW ya que esto es redundante con las instrucciones digitalWrite que se utilizan más adelante para apagar las luces.
En este ejemplo, se agregó un bucle for dentro del bucle loop que enciende y apaga el LED amarillo tres veces con un tiempo de espera de 500 milisegundos entre cada encendido y apagado. De esta manera, se crea un efecto de parpadeo en el LED amarillo.
En este ejemplo, se disminuyó el tiempo de espera entre encender y apagar el LED azul de 500ms a 100ms, lo que hace que el parpadeo sea más rápido. Además, se aumentó el número de veces que el LED azul se enciende y apaga a 5 para hacer más evidente el efecto de parpadeo.

Deja un comentario

Comments (

0

)

Diseña un sitio como este con WordPress.com
Comenzar