Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
EL ARDUINO
Sandoval Sara, David Vásquez
sbsandovals@utn.edu.ec;jdvasquezm@utn.edu.ec
Resumen— En este artículo se analizará el Arduino, historia, Los principales responsables de la idea y diseño de Arduino fueron
funcionamiento, especificaciones de hardware y software, tipos de Massimo Banzi, David Cuartielles, David Mellis, Tom Igoe y Gianluca
Arduino, tipo de conexiones, aplicaciones, interfases de programación, Martino.
etc.
Lo que nos facilita en el diseño de proyectos electrónicos.
B. FUNCIONAMIENTO
El Arduino es una placa basada en un microcontrolador ATMEL.
Abstract— This article will analyze the Arduino, history,
functioning, hardware and software specifications, types of
Los microcontroladores son circuitos integrados en los que se
microcontrollers, type of connections, applications, programming
pueden grabar instrucciones, las cuales las escribes con el lenguaje
interfaces, which facilitates us in the design of electronic projects.
de programación que puedes utilizar en el entorno Arduino IDE.
Estas instrucciones permiten crear programas que interactúan con
Palabras clave: los circuitos de la placa.
microcontrolador, hardware, software, interfases de
programación. El microcontrolador de Arduino posee lo que se llama una interfaz
de entrada, que es una conexión en la que podemos conectar en la
placa diferentes tipos de periféricos. La información de estos
I. INTRODUCCIÓN
periféricos que conectes se trasladará al microcontrolador, el cual
se encargará de procesar los datos que le lleguen a través de ellos.
Arduino es una herramienta la cual realiza que los ordenadores puedan
sentir y controlar el mundo físico a través de tu ordenador personal. Es
una plataforma de desarrollo basada en una placa electrónica de Las funciones de Arduino, como ocurre con la mayoría de las placas
hardware y software libre que incorpora un microcontrolador re- de microcontroladores, se pueden resumir en 3 factores:
programable y una serie de pines hembra, diseñada para facilitar el uso
de la electrónica en proyectos multidisciplinares. 1. Cuenta con una interfaz de entrada. Esta puede estar
directamente unida a los periféricos, o conectarse a ellos a
El hardware libre son los dispositivos cuyas especificaciones y través de puertos.
diagramas son de acceso público, de manera que cualquiera puede
replicarlos. Esto quiere decir que Arduino ofrece las bases para que 2. La interfaz de entrada tiene como objetivo trasladar la
cualquier otra persona o empresa pueda crear sus propias placas, información al microcontrolador. El microcontrolador es la
pudiendo ser diferentes ellas, pero igualmente funcionales al partir de pieza que se encarga de procesar esos datos. Además, varía
la misma base. dependiendo de las necesidades del proyecto en el que se
desee usar la placa, y existe una gran variedad de fabricantes
El software libre son los programas informáticos cuyo código es y versiones disponibles.
accesible por cualquiera para que quien quiera pueda utilizarlo y
modificarlo. Arduino ofrece la plataforma Arduino IDE (Entorno de 3. También cuenta con interfaz de salida. Este se encarga de
Desarrollo Integrado), que es un entorno de programación con el que llevar la información procesada a los periféricos autorizados
cualquiera puede crear aplicaciones para las placas Arduino, de manera de hacer el uso final de esos datos. En algunos casos puede
que se les puede dar todo tipo de utilidades. tratarse de otra placa en la que se centraliza y procesa la
información de forma totalmente renovada, o sencillamente,
puede ser una pantalla o un altavoz encargado de mostrar la
II. DESARROLO DE CONTENIDOS versión final de los datos.
Características de un Microcontrolador:
Otros pines
También tenemos otros pines como los GND (tierra), 5V que
proporciona 5 Voltios, 3.3V que proporciona 3.3 Voltios, los pines
REF de referencia de voltaje, TX (transmisión) y RX (lectura) también
usados para comunicación serial, RESET para resetear, Vin para
alimentar la placa y los pines ICSP para comunicación SPI.
Alimentación
Como hemos visto el pin Vin sirve para alimentar la placa pero lo más
normal es alimentarlo por el jack de alimentación usando una tensión
de 7 a 12 Voltios. También podemos alimentarlo por el puerto USB
pero en la mayoría de aplicaciones no lo tendremos conectado a un Fig. 2. Hardware del Arduino.
ordenador.
Software
Comunicación
En nuestros tutoriales nos comunicaremos con Arduino mediante USB
para cargar los programas o enviar/recibir datos. Sin embargo no es la El software de Arduino es un IDE, entorno de desarrollo integrado
única forma que tiene Arduino de comunicarse. Cuando insertamos una (siglas en inglés de Integrated Development Environment). Es un
shield ésta se comunica con nuestra placa utilizando los pines ICSP programa informático compuesto por un conjunto de herramientas de
(comunicación ISP), los pines 10 a 13 (también usados para programación.
comunicación ISP), los pines TX/RX o cualquiera de los digitales ya
que son capaces de configurarse como pines de entrada o salida y El IDE de Arduino es un entorno de programación que ha sido
recibir o enviar pulsos digitales. empaquetado como un programa de aplicación; es decir, consiste en un
editor de código, un compilador, un depurador y un constructor de
Universidad Técnica del Norte
interfaz gráfica (GUI). Además incorpora las herramientas para cargar o Pines de entradas análogas: 6
el programa ya compilado en la memoria flash del hardware.
o Corriente DC por cada pin I/O: 40 mA
o Corriente DC en el pin de 3.3 V: 50 mA
o EEPROM: 4 KB (ATmega328)
Arduino MICRO
o Microcontrolador: ATmega328
o Voltaje de funcionamiento: 5 V
o Pines I/O digitales: 14 (de los cuales 6 proveen salida Fig. 5. Arduino MICRO.
PWM)
o Microcontrolador: ATmega32u4
Universidad Técnica del Norte
o Canales PWM: 7
o SRAM: 2 KB (ATmega32u4)
o EEPROM: 1 KB (ATmega32u4)
o Pines I/O digitales: 14 (de los cuales 6 proveen salida o Ethernet: IEEE 802.3 10/100Mbit/s
PWM)
o WiFi: IEEE 802.11b/g/n
o Pines de entradas análogas: 8
o USB Tipo A: 2.0
o Corriente DC por cada pin I/O: 40 mA
o Lector de tarjeta: sólo Micro-SD
o Memoria Flash: 16 KB de los cuales 2 KB son utilizados
o RAM: 64 MB DDR2
por el bootloader
o Memoria Flash:16 MB
o SRAM: 1 KB
Arduino YUN
o EEPROM: 512 bytes
Velocidad de reloj: 16
Universidad Técnica del Norte
Los sensores utilizados en los proyectos que vamos a utilizar
son de salida analógica, es decir proporcionan una variación
de voltaje dentro de un rango (normalmente de 0 a +5V)
dependiendo de lo que varíe la magnitud física medida.
Muchos sensores son resistivos (luz, temperatura, humedad
), es decir que varían su resistencia eléctrica con la magnitud
física, pero mediante un sencillo montaje de divisor de
tensión conseguimos una variación de voltaje apta para
Arduino. Estos montajes los veremos en las prácticas del
manual.
Una vez realizadas las conexiones, si midiéramos la salida
del sensor con un voltímetro nos daría un valor decimal, por
ejemplo, un nivel de luz “intermedio” (rango de 0 a 5V) de
Fig.8 . Arduino YUN. un sensor de luz podría dar 3,3 voltios. Este tipo de
información el microcontrolador no la entiende tal cual, sólo
es capaz de interpretar números binarios (“0” ó “1”) por lo
o Microcontrolador AVR Arduino: ATmega32u4 que para traducir los valores analógicos dispone
internamente de un conversor analógico – digital que hará la
o Voltaje de funcionamiento: 5 V conversión entre los dos sistemas, de forma que podremos
tener valores discretos de la medida de los
o Pines I/O digitales: 20 sensores analógicos.
o Canales PWM: 7 Las entradas digitales son útiles cuando las señales a leer son
valores discretos. Por ejemplo, queremos poner un pulsador
o Pines de entradas análogas: 12 o un interruptor que encienda un led. Hacemos un montaje
que cuando se pulse, entren 5 voltios en el pin digital de
entrada y cuando no se pulse que “entren” 0 voltios. De esta
o Corriente DC por cada pin I/O: 40 mA
manera la lectura del pin digital de entrada será “HIGH” con
5 voltios o “LOW” con 0 voltios.
o Corriente DC en el pin de 3.3 V: 50 mA
Son salidas digitales que simulan una salida analógica. Las
o Memoria Flash: 32 KB (de los cuales 4 KB son utilizados siglas significan Modulación por Ancho de Pulso (Pulse
por el bootloader Width Modulation) o proporcionan una onda cuadrada con
un nivel alto (+5V) de “cierta”duración.
Es muy útil para activar servomotores y llevarlos a una
o SRAM: 2.5 KB
posición determinada o variar la luminosidad de un led. Lo
puedes ver más explicado en la siguiente sección.
o EEPROM: 1 KB
F. BENEFICIOS
o Velocidad de reloj: 16 MHz
Ejemplos:
Fig.8 . Diseño en Arduino de un juego de sogatira.
1. Arranque y parada de motor DC controlado
H. LENGUAJE DE PROGRAMACIÓN ARDUINO
Mover un motor DC de 9V usando un integrado L293D (Quadruple
La plataforma Arduino se programa mediante el uso de un lenguaje
Half-H driver). Para controlar la velocidad del motor se usará un
propio basado en el lenguaje de programación de alto nivel Processing.
potenciómetro conectado al pin A0. Además se usarán dos botones,
Sin embargo, es posible utilizar otros lenguajes de programación y
uno conectado al pin digital 4 para controlar el sentido de giro del
aplicaciones populares en Arduino, debido a que Arduino usa la
motor y otro conectado al pin digital 5 que controlará el encendido y
transmisión serial de datos soportada por la mayoría de los lenguajes
apagado del motor. Con cada pulsación encendemos y apagamos el
mencionados. Para los que no soportan el formato serie de forma
motor o usamos una dirección de giro u otra con el otro botón.
nativa, es posible utilizar software intermediario que traduzca los
mensajes enviados por ambas partes para permitir una comunicación
Sobre este montaje, añadir una rampa de arranque y otra de parada fluida. Algunos ejemplos son:
cuando se detecte el encendido y apagado. También añadir una rampa
de parada y arranque cuando se detecte un cambio de sentido. Añadir 3DVIA Virtools: aplicaciones interactivas y de tiempo real.
un botón de parada de emergencia, que al pulsarlo, se pare el motor
inmediatamente. Adobe Director
BlitzMax (con acceso restringido)
C, C++, C#
Cocoa/Objective-C (para Mac OS X)
Flash (mediante ActionScript)
Gambas
Isadora (Interactividad audiovisual en tiempo real)
Instant Reality (X3D)
Java
Liberlab (software de medición y experimentación)
Mathematica
Matlab
III. CONCLUSIONES
IV. RECOMENDACIONES
V. BILIOGRAFÍA