You are on page 1of 11

Arduino (en EEUU, Genuino a nivel internacional) es una compaa de hardware libre

y una comunidad tecnolgica que disea y manufactura placas de desarrollo de


hardware y software, compuesta respectivamente por circuitos impresos que integran un
microcontrolador y un entorno de desarrollo (IDE), en donde se programa cada placa.
Arduino se enfoca en acercar y facilitar el uso de la electrnica y programacin de
sistemas embebidos en proyectos multidisciplinarios1 2 . Toda la plataforma, tanto para
sus componentes de hardware como de software, son liberados con licencia de cdigo
abierto que permite libertad de acceso a ellos3 .
El hardware consiste en una placa de circuito impreso con un microcontrolador,
usualmente Atmel AVR, puertos digitales y analgicos de entrada/salida,4 , los cuales
pueden conectarse a placas de expansin (shields), que amplan las caractersticas de
funcionamiento de la placa Arduino. Asimismo, posee un puerto de conexin USB
desde donde se puede alimentar la placa y establecer comunicacin con el computador.
Por otro lado, el software consiste en un entorno de desarrollo (IDE) basado en el
entorno de Processing y lenguaje de programacin basado en Wiring, as como en el
cargador de arranque (bootloader) que es ejecutado en la placa.4 El microcontrolador de
la placa se programa mediante un computador, usando una comunicacin serial
mediante un convertidor de niveles RS-232 a TTL serial.
La primera placa Arduino fue introducida en 2005, ofreciendo un bajo costo y facilidad
de uso para novatos y profesionales. Buscaba desarrollar proyectos interactivos con su
entorno mediante el uso de actuadores y sensores. A partir de octubre de 2012, se
incorporaron nuevos modelos de placas de desarrollo que usan microcontroladores
Cortex M3, ARM de 32 bits,5 que coexisten con los originales modelos que integran
microcontroladores AVR de 8 bits. ARM y AVR no son plataformas compatibles en
cuanto a su arquitectura y por lo que tampoco lo es su set de instrucciones, pero se
pueden programar y compilar bajo el IDE predeterminado de Arduino sin ningn
cambio.
Las placas Arduino estn disponibles de dos formas: ensambladas o en forma de kits
"Hazlo t mismo" (por sus siglas en ingls "DIY"). Los esquemas de diseo del
Hardware estn disponibles bajo licencia Libre, con lo que se permite que cualquier
persona pueda crear su propia placa Arduino sin necesidad de comprar una prefabricada.
Adafruit Industries estim a mediados del ao 2011 que, alrededor de 300,000 placas
Arduino haban sido producidas comercialmente y en el ao 2013 estim que alrededor
de 700.000 placas oficiales de la empresa Arduino estaban en manos de los usuarios.
Arduino se puede utilizar para desarrollar objetos interactivos autnomos o puede ser
conectado a software tal como Adobe Flash, Processing, Max/MSP, Pure Data, etc. Una
tendencia tecnolgica es utilizar Arduino como tarjeta de adquisicin de datos
desarrollando interfaces en software como JAVA, Visual Basic y LabVIEW 6 . Las
placas se pueden montar a mano o adquirirse. El entorno de desarrollo integrado libre se
puede descargar gratuitamente.
El proyecto Arduino recibi una mencin honorfica en la categora de Comunidades
Digitales en el Prix Ars Electrnica de 2006 7 8 9 .

Placa Arduino RS23210

ndice

1 Historia

2 Hardware

3 Equipo de desarrollo

4 Aplicaciones

5 Esquema de conexiones
o 5.1 Entradas y salidas

6 Especificaciones

7 Lenguaje de programacin Arduino


o 7.1 Funciones bsicas y operadores

7.1.1 Sintaxis bsica

7.1.2 Estructuras de control

7.1.3 Variables

7.1.3.1 Constantes

7.1.3.2 Tipos de datos

7.1.3.3 Conversin entre tipos

7.1.3.4 Cualificadores y mbito de las variables

7.1.3.5 Utilidades

7.1.4 Funciones bsicas

7.1.4.1 E/S digital

7.1.4.2 E/S analgica

7.1.4.3 E/S avanzada

7.1.4.4 Tiempo

7.1.4.5 Matemticas

7.1.4.6 Trigonometra

7.1.4.7 Nmeros aleatorios

7.1.4.8 Bits y Bytes

7.1.4.9 Interrupciones externas

7.1.4.10 Interrupciones

7.1.4.11 Comunicacin por puerto serie

7.1.5 Manipulacin de puertos

o 7.2 AVR Libc

7.2.1 Interrupciones

7.2.2 Temporizadores

7.2.3 Manipulacin de puertos

7.2.4 Establecer Bits en variables

o 7.3 Diferencias con Processing

7.3.1 Arreglos

7.3.2 Impresin de cadenas

o 7.4 Ejemplo sencillo de programacin en Arduino

8 Bibliotecas en Arduino

o 8.1 Serial
o 8.2 EEPROM
o 8.3 Ethernet
o 8.4 Firmata
o 8.5 LiquidCrystal
o 8.6 Servo
o 8.7 SoftwareSerial
o 8.8 Stepper
o 8.9 Wire
o 8.10 Creacin de bibliotecas

8.10.1 Ejemplo de biblioteca

9 Ejemplos de Cdigo

10 Instalacin en diferentes entornos


o 10.1 Windows
o 10.2 GNU/Linux

11 Otras interfaces de programacin


o 11.1 Pduino
o 11.2 Minibloq
o 11.3 Physical Etoys

12 Vase tambin

13 Referencias
o 13.1 Bibliografa

14 Enlaces de externos

Historia

Arduino se inici en el ao 2006 como un proyecto para estudiantes en el Instituto


IVREA, en Ivrea (Italia). En ese tiempo, los estudiantes usaban el microcontrolador
BASIC Stamp, cuyo coste era de 100 dlares estadounidenses, lo que se consideraba
demasiado costoso para ellos. Por aquella poca, uno de los fundadores de Arduino,
Massimo Banzi, daba clases en Ivrea.11
El nombre del proyecto viene del nombre del Bar di Re Arduino (Bar del Rey Arduino)
donde Massimo Banzi pasaba algunas horas. El rey Arduino fue rey de Italia entre los
aos 1002 y 1014. En la creacin de este proyecto contribuy el estudiante colombiano
Hernando Barragn, quien desarroll la tarjeta electrnica Wiring, el lenguaje de
programacin y la plataforma de desarrollo.12 Una vez concluida dicha plataforma, los
investigadores trabajaron para hacerlo ms ligero, ms econmico y disponible para la
comunidad de cdigo abierto (hardware y cdigo abierto). El instituto finalmente cerr
sus puertas, as que los investigadores, entre ellos el espaol David Cuartielles,
promovieron la idea.11 Banzi afirmara aos ms tarde, que el proyecto nunca surgi
como una idea de negocio, sino como una necesidad de subsistir ante el inminente cierre
del Instituto de diseo Interactivo IVREA. Es decir, que al crear un producto de
hardware abierto, este no podra ser embargado.
Posteriormente, Google colabor en el desarrollo del Kit Android ADK (Accesory
Development Kit), una placa Arduino capaz de comunicarse directamente con telfonos
mviles inteligentes bajo el sistema operativo Android para que el telfono controle
luces, motores y sensores conectados de Arduino.13 14
Para la produccin en serie de la primera versin se tom en cuenta que el coste no
fuera mayor de 30 euros, que fuera ensamblado en una placa de color azul, deba ser
Plug and Play y que trabajara con todas las plataformas informticas tales como
MacOSX, Windows y GNU/Linux. Las primeras 300 unidades se las dieron a los
alumnos del Instituto IVREA, con el fin de que las probaran y empezaran a disear sus
primeros prototipos.
En el ao 2005, se incorpor al equipo el profesor Tom Igoe,12 que haba trabajado en
computacin fsica, despus de que se enterara del mismo a travs de Internet. Igoe
ofreci su apoyo para desarrollar el proyecto a gran escala y hacer los contactos para
distribuir las tarjetas en territorio estadounidense. En la feria Maker Fair de 2011 se
present la primera placa Arduino 32 bit para realizar tareas ms pesadas.15

Hardware
Los modelos de Arduino se categorizan en placas de desarrollo, placas de expansin
(shields), kits, accesorios e impresoras 3d .
Placas
Arduino Galileo16 , Arduino Uno, Arduino Leonardo, Arduino Due, Arduino
Yn, Arduino Tre (En Desarrollo), Arduino Zero, Arduino Micro, Arduino
Esplora, Arduino Mega ADK, Arduino Ethernet, Arduino Mega 2560, Arduino
Robot, Arduino Mini, Arduino Nano, LilyPad Arduino Simple, LilyPad Arduino
SimpleSnap, LilyPad Arduino, LilyPad Arduino USB, Arduino Pro Mini,
Arduino Fio, Arduino Pro, Arduino MKR1000/Genuino MKR1000, Arduino
MICRO/Genuino MICRO, Arduino 101/Genuino 101, Arduino Gemma.

Placas de expansin (shields)


Arduino GSM Shield, Arduino Ethernet Shield, Arduino WiFi Shield, Arduino
Wireless SD Shield, Arduino USB Host Shield, Arduino Motor Shield, Arduino
Wireless Proto Shield, Arduino Proto Shield.
Kits
The Arduino Starter Kit, Arduino Materia 101.
Accesorios
TFT LCD Screen, USB/Serial Light Adapter, Arduino ISP, Mini USB/Serial
Adapter.
Impresoras 3d
Arduino Materia 101.

Equipo de desarrollo
El ncleo del equipo de desarrollo de Arduino est formado por Massimo Banzi, David
Cuartielles, Tom Igoe, Gianluca Martino, David Mellis y Nicholas Zambetti.

Aplicaciones
La plataforma Arduino ha sido usada como base en diversas aplicaciones electrnicas:

Xoscillo: Osciloscopio de cdigo abierto17

Equipo cientfico para investigaciones18

Arduinome: Un dispositivo controlador MIDI19

OBDuino: un econmetro que usa una interfaz de diagnstico a bordo que se


halla en los automviles modernos

SCA-ino: Sistema de cmputo automotriz capaz de monitorear sensores como el


TPS, el MAP y el 02S y controlar actuadores automotrices como la bobina de
ignicin, la vlvula IAC y aceleradores electrnicos

Humane Reader: dispositivo electrnico de bajo coste con salida de seal de TV


que puede manejar una biblioteca de 5000 ttulos en una tarjeta microSD20

The Humane PC: equipo que usa un mdulo Arduino para emular un
computador personal, con un monitor de televisin y un teclado para
computadora21

Ardupilot: software y hardware de aeronaves no tripuladas

ArduinoPhone: un telfono mvil construido sobre un mdulo Arduino22 23

Mquinas de control numrico por computadora (CNC)

Open Theremn Uno: Versin digital de hardware libre del instrumento


Theremn

Impresoras 3D

Esquema de conexiones
Entradas y salidas
Poniendo de ejemplo al mdulo Diecimila, este consta de 14 entradas digitales
configurables como entradas y/o salidas que operan a 5 voltios. Cada contacto puede
proporcionar o recibir como mximo 40 mA. Los contactos 3, 5, 6, 9, 10 y 11 pueden
proporcionar una salida PWM (Pulse Width Modulation). Si se conecta cualquier cosa a
los contactos 0 y 1, eso interferir con la comunicacin USB. Diecimila tambin tiene 6
entradas analgicas que proporcionan una resolucin de 10 bits. Por defecto, aceptan de
0 hasta 5 voltios (aunque es posible cambiar el nivel ms alto utilizando el contacto Aref
y algn cdigo de bajo nivel).

Especificaciones
Las especificaciones de los distintos modelos de placas Arduino se resumen en la
siguiente tabla:
Volt Volt
Frecu
Entra
Interfaz
aje aje
Entradas
P
Mem
Microcon
encia
das
UA
Cargad de
Modelo
de del
/salidas
W
oria
trolador
de
anal
RT
or
progra
entr siste
digitales
M
flash
reloj
gicas
macin
ada ma

Arduino AT91SA 5- 3,3 84MH


54*
Due M3X8E 12V V z

12

12 4

512K
Due
b

Arduino
ATmega3 716MH
Leonard
5V
20*
2U4
12V
z
o

12

32Kb

Nativa
USB

Leonard Nativa
o
USB

Arduino ATmega3 716MH


5V
14
Uno - R3 28
12V
z

USB va
Optiboo
32Kb
ATMega
t
16U2

RedBoar ATmega3 716MH


5V
14
d
28
15V
z

32Kb

Optiboo USB va
t
FTDI

Arduino
Uno
ATmega3 716MH
SMD
5V
14
28
12V
z
(desconti
nuado)
Arduino
Uno ATmega3 716MH
5V
14
(desconti 28
12V
z
nuado)
Arduino
Duemila
ATmega3
nove
28
(desconti
nuado)
Arduino
Bluetoot
ATmega3
h
28
(desconti
nuado)

32Kb

USB va
Optiboo
ATMega
t
8U2

USB va
Optiboo
32Kb
ATMega
t
8U2

716MH
5V
14
12V
z

32Kb

Atmega USB va
BOOT FTDI

1,216MH
5,5 5V
14
z
V

32Kb

Serial
Atmega
Bluetoot
BOOT
h

Cabecer
a
Atmega
32Kb
compati
BOOT
ble con
FTDI

Cabecer
a
Atmega
32Kb
compati
BOOT
ble con
FTDI

Cabecer
a
Atmega
32Kb
compati
BOOT
ble con
FTDI

USB va
256K STK50
ATMega
b
0v2
16U2

Arduino
3,35
Pro ATmega3
3,3
-12
8MHz 14
3.3V/8M 28
V
V
Hz

Arduino
Pro ATmega3 5 16MH
5V
14
5V/16M 28
12V
z
Hz

Ethernet
Pro ATmega3 716MH
5V
14
(desconti 28
12V
z
nuado)

Arduino
ATmega2 716MH
Mega
5V
54
560
12V
z
2560 R3

16

14 4

Arduino
Mega ATmega2 7- 5V 16MH 54
2560 560
12V

16

14 4

256K STK50 USB va


ATMega

(desconti
nuado)

Arduino
Mega ATmega1 716MH
5V
54
(desconti 280
12V
z
nuado)

Mega ATmega2 3,3- 3,3


8MHz 54
Pro 3.3V 560
12V V

16

16

0v2

8U2

14 4

128K STK50 USB va


b
0v2
FTDI

14 4

Cabecer
a
256K STK50
compati
b
0v2
ble con
FTDI

Mega ATmega2 516MH


5V
54
Pro 5V 560
12V
z

16

14 4

Cabecer
a
256K STK50
compati
b
0v2
ble con
FTDI

Arduino
Mini 04 ATmega3 716MH
5V
14
(desconti 28
9V
z
nuado)

32Kb

Atmega Cabecer
BOOT a Serial

Arduino ATmega3 716MH


5V
14
Mini 05 28
9V
z

32Kb

Atmega Cabecer
BOOT a Serial

Cabecer
a
Atmega
32Kb
compati
BOOT
ble con
FTDI

Cabecer
a
Atmega
32Kb
compati
BOOT
ble con
FTDI

Arduino
3,35
Pro Mini ATmega3
3,3
8MHz 14
3.3V/8M 28
V
12V
Hz

Arduino
Pro Mini ATmega3 5 16MH
5V
14
5V/16M 28
12V
z
Hz
Arduino
Fio ATmega3 3,35 3,3 8MHz 14
28P
V
12V

32Kb Atmega Cabecer


BOOT a
compati
ble con
FTDI o

inalmbr
ica va
XBee1

Mega
ATmega2 3,3- 3,3
Pro Mini
8MHz 54
560
12V V
3.3V

16

14 4

Cabecer
a
256K STK50
compati
b
0v2
ble con
FTDI

Pro
Micro ATmega3 516MH
5V
12
5V/16M 2U4
12V
z
Hz

32Kb

DiskLo Nativa
ader
USB

Pro
3,35
Micro ATmega3
3,3
8MHz 12
3.3V/8M 2U4
V
12V
Hz

32Kb

DiskLo Nativa
ader
USB

Cabecer
a
Atmega
32Kb
compati
BOOT
ble con
FTDI

02

Cabecer
a
Atmega
32Kb
compati
BOOT
ble con
FTDI

LilyPad
Arduino
2,7ATmega3
3,3
328
5,5
8MHz 14
28
V
Main
V
Board

LilyPad
2,7Arduino ATmega3
3,3
5,5
8MHz 9
Simple 28
V
V
Board

Los modelos Arduino Diecimila, Arduino Duemilanove y Arduino Mega estn basados
en los microcontroladores ATmega168, ATmega328 y ATmega1280
ATmega168
Voltaje operativo
Voltaje de entrada
recomendado
Voltaje de entrada
lmite
Entradas y salidas
digitales
Entradas
analgicas

ATmega328

ATmega1280

5V

5V

5V

7-12 V

7-12 V

7-12 V

6-20 V

6-20 V

6-20 V

14 (6 proporcionan
PWM)

14 (6 proporcionan
PWM)

54 (14 proporcionan
PWM)

16

Intensidad de
corriente

40 mA

16KB (2KB
Memoria Flash reservados para el
bootloader)
SRAM
1 KB
EEPROM
512 bytes
Frecuencia de reloj 16 MHz

40 mA

40 mA

32KB (2KB
reservados para el
bootloader)
2 KB
1 KB
16 MHz

128KB (4KB
reservados para el
bootloader)
8 KB
4 KB
16 MHz

You might also like