zfgs

CONOCIENDO ARDUINO

Cuando vemos un Arduino por primera vez, la pregunta que se nos viene a la mente es: “¿Y qué puedo hacer yo con esto?”. La mejor respuesta es que las posibilidades que ofrece una tarjeta Arduino dependen de la imaginación del que la utiliza. Toma de datos con sensores, robots siguelíneas, brazos robóticos, comunicación mediante wifi o bluetooth, robots teledirigidos, pantallas LCD… La lista de proyectos es interminable. Pero para empezar a hacer cosas más complejas, es necesario tener unas nociones básicas sobre las características de estas placas y su funcionamiento.

¿Qué es una tarjeta Arduino?

Una tarjeta Arduino es una placa de desarrollo hardware, que puede ser programada por el usuario para controlar otros dispositivos electrónicos y digitales. Se basan en un microprocesador ATMEL programable desde el IDE (software libre distribuido por la propia compañía Arduino). Puedes descargarlo desde este link oficial. Existe una gran variedad de placas, cada una con características distintas en función del tipo de proyecto al que están orientadas. Las más usadas son:

  • Arduino UNO: la más recomendable para empezar por su versatilidad y simplicidad de uso. Pueden encontrarse placas no originales por unos 5 u 8€, siendo las de marca Arduino mucho más caras (en torno a 15€). Existen kits muy económicos que incluyen componentes como sensores, motores y cables que te vendrán muy bien para aprender y empezar tus primeros proyectos.
  • Arduino NANO: similar a la UNO, pero de menor tamaño y capacidad de memoria, entre otras cosas. Muy recomendable para proyectos pequeños, que no requieran demasiadas conexiones. Su precio ronda los 3€.
  • Arduino Mega: para proyectos más complejos que requieran de mayor velocidad, número de pines, memoria, etc. Pueden encontrarse por unos 10 o 15€.

Puedes encontrar más información en la página oficial de Arduino.

Arduino UNO: primer vistazo

Centrémonos entonces en nuestro Arduino UNO. Como hemos dicho, las placas Arduino se basan en un microprocesador que el usuario programa para controlar una serie de dispositivos conectados a las entradas y salidas del micro (pines de la tarjeta). Las placas UNO tienen integrado un procesador ATMEGA 328P. Pueden encontrarse con encapsulado DIP o SMD (más actuales):

xggh

La comunicación con el ordenador se realiza por el puerto USB (gris metálico) de Arduino. Este se usa cuando queremos cargar nuestro programa o para intercambiar datos con la tarjeta desde el monitor del IDE. La parte de la placa pegada a este puerto se encarga de “traducir” la información que llega por el USB a formato serial, que es el tipo de comunicación que entiende el microprocesador. El USB también proporciona alimentación a la placa cuando está conectado.

En la parte inferior izquierda, se encuentra la parte de alimentación, consistente en un puerto Jack (negro) y una serie de circuitos que se encargan de regular el voltaje a los 5V que necesita la placa. La clavija Jack acepta una tensión de entre 6 y 12V, siendo entre 9 y 12V lo recomendado. Por último, en la parte superior izquierda se encuentra el botón de RESET (rojo), que al ser pulsado reinicia la tarjeta.

Descripción de pines

Los pines de la tarjeta son las conexiones que utilizaremos para controlar los dispositivos que se deseen. Es muy importante recalcar que el voltaje que soportan es de 0 a 5V. Además, estos pines sólo están preparados para intensidades de hasta 40mA. Es conveniente tener esto en cuenta para no dañar la placa. A continuación, se describen los pines básicos que tienes que conocer para empezar a usar tu Arduino:

  • Entradas y Salidas Digitales: son los numerados del 2 al 13. Permiten enviar y recibir señales digitales, es decir, ‘1’ o ‘0’ (5 o 0 voltios respectivamente). 
agg

Pueden configurarse como entradas o salidas mediante la función pinMode(PIN, modo), donde ‘PIN’ es el número de pin que deseamos configurar, y ‘modo’ es la configuración que queremos darle (INPUT para entrada, OUTPUT para salida). Esto debe hacerse en la función setup(), en la que se realiza la configuración básica de nuestro Arduino. Un ejemplo de inicialización de pines sería este:

void setup() {
pinMode(12,INPUT);
pinMode(13,OUTPUT);
}

Para leer o escribir por un pin digital se utilizan las funciones digitalRead(PIN, valor) y digitalWrite(PIN, valor). El valor puede ser un entero 1 o 0, o bien puede usarse las expresiones HIGH y LOW para mayor claridad. Dentro de los pines digitales, algunos tienen funcionalidades añadidas que es muy importante conocer:

a) LED 13: el pin 13 lleva conectado internamente un LED, indicado con la letra L. Se ilumina cuando la salida es HIGH. Es el que se utiliza en el ejemplo de programa Blink incluido en el IDE. Puedes visitar nuestro Tutorial 1 – Blink, en el que explicamos el programa y las conexiones necesarias. Un ejemplo de uso de este LED es, en la función setup(), programar un parpadeo que indique el inicio del programa, o cualquier otro proceso que sea bueno monitorizar (inicio de calibración de sensores en un robot siguelíneas, por ejemplo).

efsf

No obstante, este LED no está conectado al pin 13 en todas las tarjetas, pudiendo variar según el modelo. Para evitar errores, se usa la variable LED_BUILTIN, que toma un valor distinto según el modelo de tarjeta que estemos usando.

b) Pines PWM: estos pines pueden ser utilizados como salidas analógicas. Están indicados con el símbolo ~ (virgulilla de la ñ). Son el 3, 5, 6, 9, 10 y 11Utilizan tecnología PWM (Pulse Width Modulation, Modulación por Ancho de Pulso). Esto consiste en enviar pulsos cuya duración depende del voltaje que se desee. Así, pulsos de mayor duración darán tensiones más altas que los pulsos de menor duración.

gfioo

Para escribir un valor analógico en un pin PWM se utiliza la función analogWrite(PIN, valor), donde el valor es un número entero entre 0 y 255 (de 0 a 5v). Esto puede utilizarse para regular la luminosidad de un led o para regular la velocidad de un motor.

c) Pines de Interrupciones: son los pines 2 y 3. Las interrupciones son señales que, al ser detectadas, hacen que el micro abandone momentáneamente sus tareas y pase a ejecutar una función que ha sido programada por el usuario. Esto permite tener una respuesta mucho más rápida a ciertos eventos que pueden ser urgentes, como por ejemplo pulsadores de seguridad o finales de carrera. No obstante, a nivel básico no es necesario conocer el uso de interrupciones.

  • Entradas Analógicas: son los pines que comienzan con una ‘A’ mayúscula. Hay seis, y van del A0 al A5. Se encuentran en la parte inferior derecha:
xghh

Se utilizan para realizar lecturas de sensores analógicos, por ejemplo, un sensor de temperatura o sensores de distancia. Para ello se utiliza la función analogRead(PIN), que devuelve un valor entre 0 y 1023. Como puede observarse, la resolución que se obtiene en las entradas analógicas (0 – 1023) es mayor que la que se puede obtener en las salidas PWM (0 – 255). Es importante recordar que los pines de PWM sólo funcionan como entradas y salidas digitales, o como salidas analógicas, y no confundirlos con las entradas analógicas. Además, las entradas analógicas también pueden ser utilizadas como entradas digitales.

  • Pines de Alimentación: estos pines son los destinados a proporcionar o a recibir la tensión de alimentación. Se encuentran en la parte inferior de la placa. También hay un pin GND junto a los pines digitales. Es muy importante prestar atención a las conexiones que en estos se realizan, pues un cortocircuito o una mala conexión puede dañar permanentemente la placa
fzg

En primer lugar, los pines GND (ground) son los pines de tierra. A ellos ha de ir conectada la referencia de tensión (0v, generalmente indicada con cable negro). A estos pines hay que conectar todas las tierras de los dispositivos que vayamos a conectar, para que todos tengan la misma referencia de tensión. No hacer esto es un error muy común. Antes de encender la alimentación, es importante comprobar que todo está bien conectado.

En segundo lugar, los pines de 5V y 3.3V proporcionan tensión procedente del regulador de voltaje de la placa mencionado anteriormente. Pueden utilizarse para alimentar los sensores que conectemos. La mayoría de estos sensores requieren 5V, pero hay que asegurarse de qué tensión necesita cada componente para estar seguros de no dañarlo. 

En la figura se muestra un ejemplo de conexión de un sensor de distancia SHARP. El pin rojo (alimentación de 5V) se conecta a la salida de 5Vde la tarjeta, el negro (tierra) se conecta a GND. Por último, el amarillo (salida analógica del sensor) se conecta a una de las entradas analógicas de la tarjeta.

Conviene no abusar de estos pines, pues su potencia es limitada (entre 1000 y 800mA a 5V como máximo). Para aplicaciones que requieran de mucha potencia (motores, por ejemplo) es recomendable utilizar alimentación externa a la placa. Es muy importante tener cuidado al realizar las conexiones y no conectar GND a 5V, pues se hace un cortocircuito y se quema la placa. Aunque parezca evidente, es muy común equivocarse al conectarlos cuando no se está familiarizado con la placa, pues los pines están muy juntos y pueden confundirse unos con otros.

Por último, el pin Vin puede utilizarse para alimentar la tarjeta mediante una fuente de alimentación externa. Está conectado al Jack de alimentación, a excepción de un diodo de protección con el que el Jack sí cuenta. Por tanto, desde este se puede alimentar a la placa con una tensión de entre 6 y 12v. Además. Es importante saber que, si se alimenta la tarjeta desde el Jack, en Vin se tendrá la tensión de entrada de alimentación. Por ello es muy importante no confundirlo con el pin de 5V. De todos modos, por seguridad, es preferible usar el Jack a ser posible.

  • Pines de comunicación serial: son los pines 0 y 1 (RX para lectura y TX para escritura) están conectados al puerto serie del micro. Por este motivo, conviene no utilizarlos para otros propósitos si se van a intercambiar datos con el ordenador o al subir el programa. Se utilizan en aplicaciones como, por ejemplo, comunicarse con un módulo bluetooth o wifi, que pueden empezar a usarse cuando se tenga algo más de práctica con este tipo de proyectos.

Con esto termina el tutorial de presentación de Arduino. Puedes consultar nuestro tutorial anterior sobre nuestra amiga la Protoboard y os esperamos en el siguiente Reset Tutorial. ¡Hasta pronto!

Ir a la sección de Tutoriales Web