You are on page 1of 9

Arduino es una plataforma de hardware libre, basada en una placa con unmicrocontrolador y

un entorno de desarrollo, diseada para facilitar el uso de la electrnica en proyectos


multidisciplinares.
2

3

El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos
deentrada/salida.
4
Los microcontroladores ms usados son
el Atmega168, Atmega328,Atmega1280, ATmega8 por su sencillez y bajo coste que permiten
el desarrollo de mltiples diseos. Por otro lado el software consiste en un entorno de
desarrollo que implementa el lenguaje de programacin Processing/Wiring y el cargador de
arranqueque es ejecutado en la placa.
4

Desde octubre de 2012, Arduino se usa tambin con microcontroladoras CortexM3 de ARM de
32 bits,
5
que coexistirn con las ms limitadas, pero tambin econmicas AVR de 8 bits. ARM
y AVR no son plataformas compatibles a nivel binario, pero se pueden programar con el
mismo IDE de Arduino y hacerse programas que compilen sin cambios en las dos plataformas.
Eso s, las microcontroladoras CortexM3 usan 3,3V, a diferencia de la mayora de las placas
con AVR que generalmente usan 5V. Sin embargo ya anteriormente se lanzaron placas
Arduino con Atmel AVR a 3,3V como la Arduino Fio y existen compatibles de Arduino Nano y
Pro como Meduino en que se puede conmutar el voltaje.
Arduino se puede utilizar para desarrollar objetos interactivos autnomos o puede ser
conectado a software tal como Adobe Flash, Processing, Max/MSP, Pure Data). Las placas se
pueden montar a mano o adquirirse. El entorno de desarrollo integrado libre se puede
descargar gratuitamente.
Arduino puede tomar informacin del entorno a travs de sus entradas analgicas y digitales,
puede controlar luces, motores y otros actuadores. El microcontrolador en la placa Arduino se
programa mediante el lenguaje de programacin Arduino (basado en Wiring) y el entorno de
desarrollo Arduino (basado en Processing). Los proyectos hechos con Arduino pueden
ejecutarse sin necesidad de conectar a un computador.
El proyecto Arduino recibi una mencin honorfica en la categora de Comunidades Digital en
el Prix Ars Electrnica de 2006.
6

7

8

ndice
[ocultar]
1 Historia
2 Aplicaciones
3 Esquema de conexiones
o 3.1 Entradas y salidas
4 Especificaciones
5 Lenguaje de programacin Arduino
o 5.1 Funciones bsicas y operadores
5.1.1 Sintaxis Bsica
5.1.2 Estructuras de control
5.1.3 Variables
5.1.3.1 Constantes
5.1.3.2 Tipos de datos
5.1.3.3 Conversin entre tipos
5.1.3.4 Cualificadores y mbito de las variables
5.1.3.5 Utilidades
5.1.4 Funciones Bsicas
5.1.4.1 E/S Digital
5.1.4.2 E/S Analgica
5.1.4.3 E/S Avanzada
5.1.4.4 Tiempo
5.1.4.5 Matemticas
5.1.4.6 Trigonometra
5.1.4.7 Nmeros aleatorios
5.1.4.8 Bits y Bytes
5.1.4.9 Interrupciones externas
5.1.4.10 Interrupciones
5.1.4.11 Comunicacin por puerto serie
5.1.5 Manipulacin de puertos
o 5.2 AVR Libc
5.2.1 Interrupciones
5.2.2 Temporizadores
5.2.3 Manipulacin de puertos
5.2.4 Establecer Bits en variables
o 5.3 Diferencias con Processing
5.3.1 Arreglos
5.3.2 Impresin de cadenas
o 5.4 Ejemplo sencillo de programacin en Arduino
6 Bibliotecas en Arduino
o 6.1 Serial
o 6.2 EEPROM
o 6.3 Ethernet
o 6.4 Firmata
o 6.5 LiquidCrystal
o 6.6 Servo
o 6.7 SoftwareSerial
o 6.8 Stepper
o 6.9 Wire
o 6.10 Creacin de bibliotecas
6.10.1 Ejemplo de biblioteca
7 Instalacin en diferentes entornos
o 7.1 Windows
o 7.2 GNU/Linux
8 Equipo de desarrollo
9 Pduino
10 Minibloq
11 Physical Etoys
12 Vase tambin
13 Referencias
14 Bibliografa
15 Enlaces de externos
Historia[editar]
Arduino se inici en el ao 2005 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.
9

El nombre del proyecto viene del nombre del Bar di Re Arduino (Bar del Rey Arduino) donde
Massimo Banzi pasaba algunas horas. En su creacin, contribuy el estudiante colombiano
Hernando Barragn, quien desarroll la tarjeta electrnica Wiring, el lenguaje de programacin
y la plataforma de desarrollo.
10
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.
9
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, ste 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.
11

12

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 IVRAE, 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,
10
que haba trabajado en
computacin fsica, despus de que se enterara del mismo a travs de Internet. l 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 trabajar tareas ms pesadas.
13

Aplicaciones[editar]
El mdulo Arduino ha sido usado como base en diversas aplicaciones electrnicas:
Xoscillo: Osciloscopio de cdigo abierto.
14

Equipo cientfico para investigaciones.
15

Arduinome: Un dispositivo controlador MIDI.
16

OBDuino: un econmetro que usa una interfaz de diagnstico a bordo que se halla en los
automviles modernos.
Humane Reader: dispositivo electrnico de bajo coste con salida de seal de TV que
puede manejar una biblioteca de 5000 ttulos en una tarjeta microSD.
17

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

Ardupilot: software y hardware de aeronaves no tripuladas.
ArduinoPhone: un telfono mvil construido sobre un mdulo Arduino.
19

20

Esquema de conexiones[editar]
Entradas y salidas[editar]
Poniendo de ejemplo al mdulo Diecimila, ste 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, 8, 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[editar]
Las especificaciones de los distintos modelos de placas Arduino se resumen en la siguiente
tabla:
Modelo
Microcont
rolador
Volt
aje
de
entr
ada
Volt
aje
del
siste
ma
Frecue
ncia
de
Reloj
Digi
tal
I/O
Entrad
as
Anal
gicas
P
W
M
UA
RT
Mem
oria
Flas
h
Cargad
or
Interfaz
de
Program
acin
Arduino
Due
AT91SAM3
X8E
5-
12V
3,3V 84MHz 54* 12 12 4
512K
b
Due
Nativa
USB
Arduino
Leonardo
ATmega32
U4
7-
12V
5V 16MHz 20* 12 7 1 32Kb
Leonard
o
Nativa
USB
Arduino
Uno - R3
ATmega32
8
7-
12V
5V 16MHz 14 6 6 1 32Kb Optiboot
USB via
ATMega
16U2
RedBoard
ATmega32
8
7-
15V
5V 16MHz 14 6 6 1 32Kb Optiboot
USB
via FTDI
Arduino
Uno SMD
(desconti
nuado)
ATmega32
8
7-
12V
5V 16MHz 14 6 6 1 32Kb Optiboot
USB via
ATMega
8U2
Arduino
Uno
(desconti
nuado)
ATmega32
8
7-
12V
5V 16MHz 14 6 6 1 32Kb Optiboot
USB via
ATMega
8U2
Arduino
Duemilan
ove
(desconti
nuado)
ATmega32
8
7-
12V
5V 16MHz 14 6 6 1 32Kb
Atmega
BOOT
USB via
FTDI
Arduino
Bluetooth
(desconti
nuado)
ATmega32
8
1,2-
5,5V
5V 16MHz 14 6 6 1 32Kb
Atmega
BOOT
SerialBlu
etooth
Arduino
Pro
3.3V/8MH
z
ATmega32
8
3,35
-12V
3,3V 8MHz 14 6 6 1 32Kb
Atmega
BOOT
Cabecer
a
compatib
le con
FTDI
Arduino
Pro
5V/16MHz
ATmega32
8
5 -
12V
5V 16MHz 14 6 6 1 32Kb
Atmega
BOOT
Cabecer
a
compatib
le con
FTDI
Ethernet
Pro
(desconti
nuado)
ATmega32
8
7-
12V
5V 16MHz 14 6 6 1 32Kb
Atmega
BOOT
Cabecer
a
compatib
le con
FTDI
Arduino
Mega
2560 R3
ATmega25
60
7-
12V
5V 16MHz 54 16 14 4
256K
b
STK500
v2
USB via
ATMega
16U2
Arduino
Mega
2560
(desconti
nuado)
ATmega25
60
7-
12V
5V 16MHz 54 16 14 4
256K
b
STK500
v2
USB via
ATMega
8U2
Arduino
Mega
(desconti
nuado)
ATmega12
80
7-
12V
5V 16MHz 54 16 14 4
128K
b
STK500
v2
USB via
FTDI
Mega Pro
3.3V
ATmega25
60
3,3-
12V
3,3V 8MHz 54 16 14 4
256K
b
STK500
v2
Cabecer
a
compatib
le con
FTDI
Mega Pro
5V
ATmega25
60
5-
12V
5V 16MHz 54 16 14 4
256K
b
STK500
v2
Cabecer
a
compatib
le con
FTDI
Arduino
Mini 04
(desconti
nuado)
ATmega32
8
7-9V 5V 16MHz 14 6 8 1 32Kb
Atmega
BOOT
Cabecer
a Serial
Arduino
Mini 05
ATmega32
8
7-9V 5V 16MHz 14 6 8 1 32Kb
Atmega
BOOT
Cabecer
a Serial
Arduino
Pro Mini
3.3V/8MH
z
ATmega32
8
3,35
-12V
3,3V 8MHz 14 6 6 1 32Kb
Atmega
BOOT
Cabecer
a
compatib
le con
FTDI
Arduino
Pro Mini
5V/16MHz
ATmega32
8
5 -
12V
5V 16MHz 14 6 6 1 32Kb
Atmega
BOOT
Cabecer
a
compatib
le con
FTDI
Arduino
Fio
ATmega32
8P
3,35
-12V
3,3V 8MHz 14 8 6 1 32Kb
Atmega
BOOT
Cabecer
a
compatib
le con
FTDI o
Inalmbri
ca via
XBee
1

Mega Pro
Mini 3.3V
ATmega25
60
3,3-
12V
3,3V 8MHz 54 16 14 4
256K
b
STK500
v2
Cabecer
a
compatib
le con
FTDI
Pro Micro
5V/16MHz
ATmega32
U4
5-
12V
5V 16MHz 12 4 5 1 32Kb
DiskLoa
der
Nativa
USB
Pro Micro
3.3V/8MH
z
ATmega32
U4
3,35
-12V
3,3V 8MHz 12 4 5 1 32Kb
DiskLoa
der
Nativa
USB
LilyPad
Arduino
328 Main
Board
ATmega32
8
2,7-
5,5V
3,3V 8MHz 14 6 6 1 32Kb
Atmega
BOOT
Cabecer
a
compatib
le con
FTDI
LilyPad
Arduino
Simple
Board
ATmega32
8
2,7-
5,5V
3,3V 8MHz 9 4 5 0
2
32Kb
Atmega
BOOT
Cabecer
a
compatib
le con
FTDI
Los modelos Arduino Diecimila, Arduino Duemilanove y Arduino Mega estn basados en los
microcontroladores ATmega168, ATmega328 y ATmega1280

ATmega168 ATmega328 ATmega1280
Voltaje operativo 5 V 5 V 5 V
Voltaje de
entrada
recomendado
7-12 V 7-12 V 7-12 V
Voltaje de
entrada lmite
6-20 V 6-20 V 6-20 V
Contactos de 14 (6 14 (6 54 (14
entrada y salida
digital
proporcionan PWM) proporcionan PWM) proporcionan PWM)
Contactos de
entrada analgica
6 6 16
Intensidad de
corriente
40 mA 40 mA 40 mA
Memoria Flash
16KB (2KB reservados
para el bootloader)
32KB (2KB reservados
para el bootloader)
128KB (4KB reservados
para el bootloader)
SRAM 1 KB 2 KB 8 KB
EEPROM 512 bytes 1 KB 4 KB
Frecuencia de
reloj
16 MHz 16 MHz 16 MHz
Lenguaje de programacin Arduino[editar]
La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el
lenguaje de programacin de alto nivelProcessing. Sin embargo, es posible utilizar otros
lenguajes de programacin y aplicaciones populares en Arduino,
21
debido a que Arduino usa
la transmisin serial de datos soportada por la mayora de los lenguajes mencionados. Para
los que no soportan el formato serie de forma nativa, es posible utilizar software intermediario
que traduzca los mensajes enviados por ambas partes para permitir una comunicacin fluida.
Algunos ejemplos son:
3DVIA Virtools: aplicaciones interactivas y de tiempo real.
Adobe Director
BlitzMax (con acceso restringido)
C
C++ (mediante libSerial o en Windows)
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 medicin y experimentacin)
Mathematica
Matlab
MaxMSP: Entorno grfico de programacin para aplicaciones musicales, de audio y
multimedia
Minibloq: Entorno grfico de programacin, corre tambin en las computadoras OLPC
Perl
Php
Physical Etoys: Entorno grfico de programacin usado para proyectos de robtica
educativa
Processing
Pure Data
Python
Ruby
Scratch for Arduino (S4A): Entorno grfico de programacin, modificacin del entorno para
nios Scratch, del MIT)
Squeak: Implementacin libre de Smalltalk
SuperCollider: Sntesis de audio en tiempo real
VBScript
Visual Basic .NET
VVVV: Sntesis de vdeo en tiempo real

You might also like