La plataforma Arduino es un sistema microcontrolador monoplaca, de hardware libre, de fácil uso y bajo costo, desarrollado inicialmente para facilitar el uso de la electrónica en diseños artísticos e interactivos y la aplicación de esta por personas no expertas. Actualmente hay más de 20 modelos de plataformas Arduino con diferencias en cuanto a características y posibilidades, número de entradas/salidas, microcontrolador, etc., pero compatibles entre sí, manteniendo una compatibilidad de abajo arriba, esto es, una aplicación que funciona en una plataforma, funcionará en otra más compleja, (superior), y que por tanto incluya las características de la primera.
Arduino encuentra un uso amplio en la enseñanza: en materias relacionadas con la robótica, el control, la adquisición de datos, los diseños interactivos, etc., a pesar de ser una plataforma sencilla y fácil de manejar por usuarios con poca experiencia en el campo de la electrónica, sus potencialidades pueden ser aprovechadas para realizar proyectos que tengan valor desde el punto de vista ingenieril.
Como te mencionaba la plataforma Arduino cuenta con una gran variedad de placas y modelos, en este post nos referimos a la placa de Arduino UNO, siendo esta una de las más simples y baratas del mercado y para usos básicos y de aprendizaje no presenta muchas limitantes.
La placa tiene un tamaño de 75x53mm. Su unidad de procesamiento consiste en un micro-controlador ATmega328. Puede ser alimentada mediante USB o alimentación externa y contiene terminales tanto analógicos como digitales.
Microcontrolador | ATmega328 |
---|---|
Voltaje operativo | 5V |
Voltaje de entrada(recomendado) | 7-12V |
Voltaje de entrada (límites) | 6-20V |
Terminales digitales E/S | 14 (de los cuales 6 proporcionan salida PWM) |
Terminales de entrada analógica | 6 |
Corriente continua para terminales E/S | 40 mA |
Corriente continua para terminales de 3.3V | 50 mA |
Memoria Flash | 32 KB de los cuales 0.5 KB son para el bootloader |
SRAM | 2 KB |
EEPROM | 1 KB |
Velocidad del reloj | 16 MHz |
En la siguiente figura se muestra la ubicación de los componentes más importantes que componen la placa Arduino Uno.
El IDE de Arduino cuenta con todas las herramientas necesarias para programar la placa. El lenguaje de programación que se utiliza es C. A continuación una breve descripción:
Para programar nuestra primera placa crearemos un nuevo sketch (así se suele denominar a los archivos de Arduino con extensión .ino
). Para hacer esto hay varias maneras:
Ctrl + N
Luego de creado le aparecerá un documento en blanco en el cual se escribirá el código. Todo código de Arduino consta de tres partes principales:
setup
loop
Si se desean utilizar librerías de terceros se deben importar con la directiva include
.
El setup
es un método void
el cual se ejecuta una única vez al alimentar la placa Arduino. En este bloque de código se deberán configurar todas las condiciones iniciales de nuestro proyecto (configuración de los puertos y registros, inicialización de variable entre otras)
El loop
es un método también void
el cual se estará ejecutando repetidamente mientras la placa este en funcionamiento o, no se este ejecutando ninguna rutina de interrupción. En este método deberá estar toda la lógica funcional de nuestro proyecto.
A continuación veremos el hola mundo en Arduino
int LED = 13;
void setup() {
pinMode(LED, OUTPUT);
}
void loop(){
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
}
Primero declaramos una variable de tipo entero en la cual almacenaremos la referencia al puerto digital número 13 (todos los puertos pueden ser referenciados por su indicador o por el registro asociado). Este puerto esta conectado eléctricamente con un Diodo Led de la propia placa Arduino (No necesitas conectar un led al puerto 13 para ver el efecto, si lo haces es recomendado limitar la corriente con una resistencia de 320 ohm).
En el método setup
usaremos la función pinMode
para especificar el modo de funcionamiento del puerto. Esta función establece un puerto como solo entrada o solo salida. Recibe dos parámetros:
El modo puede ser:
INPUT
Establece el puerto como entrada (inhabilita explícitamente los pullups internos).OUTPUT
Establece el puerto como salida.INPUT_PULLUP
Habilita las resistencias internas de pullup.En el caso del ejemplo se traduce a usar el pin 13 como salida.
En el método loop
usaremos dos funciones: La primera digitalWrite
y la segunda delay
digitalWrite(pin, constante)
Esta función recibe dos parámetros: la referencia al puerto y una constante. En esencia esta método establece un potencial en el pin en cuestión según sea la constante pasada como parámetro. La constante puede ser HIGH
, establece 5V o 3,3V (según la configuración establecida) en el pin, esto representa un nivel alto. También puede ser LOW
para establecer 0V en el pin, representando un nivel bajo o (tierra).delay(n)
Esta función establece una pausa de n milisegundos. En el ejemplo lo que se hace es encender y apagar el led del pin 13 con un periodo de 500 ms.
Para enviar el código a la placa conectamos el Arduino a un puerto USB. En el menú "Herramientas/Tarjetas" seleccionamos Arduino Uno. Luego en el menú "Herramientas/Puerto Serial" deberá aparecer el nombre del puerto al que se asoció la placa. Por último cargaremos el código en el Arduino con una de las siguientes maneras:
Ctrl+U
Luego en el Área de mensajes se mostrará todo el proceso y si no ocurrió ningún error deberás estar viendo un LED intermitente.
Hasta aquí este post introductorio, en otros artículos te mostraré ejemplos prácticos del uso de esta tecnología.