Binary Coffee

Primeros pasos con Arduino

c++ arduino electronic

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.

Conociendo la electrónica

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.

Arduino UNO

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.

Partes de la placa Arduino UNO

IDE Arduino

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:

IDE de Arduino

Hola mundo en Arduino

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:

  1. Archivo/Nuevo
  2. Ctrl + N
  3. Click sobre el icono de documento

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:

  1. Declaración de librerías.
  2. setup
  3. 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:

  1. Referencia al puerto
  2. Modo

El modo puede ser:

  1. INPUT Establece el puerto como entrada (inhabilita explícitamente los pullups internos).
  2. OUTPUT Establece el puerto como salida.
  3. 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

  1. 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).
  2. 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:

  1. Presionar el botón Cargar.
  2. Archivo/Cargar
  3. 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.

Opiniones
noavatar
https://i1.wp.com/arduinofacil.com/wp-content/uploads/2018/12/led-parpadeo.gif?resize=300%2C208&ssl=1
noavatar
No has visto nunca un diodo LED parpadear?. Este post lo hice dirigido principalmente a personas que se quieran iniciar en el tema y porque pienso realizar una serie de artículos sobre esta tecnología y necesitaba empezar desde las bases.
noavatar
algun video, un gif, una foto? algo mostrando la magia?