Sei sulla pagina 1di 13

Crear una cuenta Acceder

Artculo Discusin

Leer Editar Ver historial

Buscar

Arduino
Portada
Portal de la comunidad
Actualidad
Cambios recientes
Pginas nuevas
Pgina aleatoria
Ayuda
Donaciones
Notificar un error
Imprimir/exportar
Crear un libro
Descargar como PDF
Versin para imprimir
Herramientas
Lo que enlaza aqu
Cambios en
enlazadas
Subir archivo
Pginas especiales
Enlace permanente
Informacin de la
pgina
Elemento de Wikidata
Citar esta pgina
En otros idiomas
Alemannisch

Azrbaycanca

Catal
etina
Dansk
Deutsch

English
Esperanto
Eesti
Euskara

Suomi
Franais
Galego

Hrvatski
Magyar
Bahasa Indonesia
slenska
Italiano

Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno
de desarrollo, diseada para facilitar el uso de la electrnica en proyectos multidisciplinares.2 3

Arduino

El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida.4 Los
microcontroladores ms usados son el Atmega168, Atmega328, Atmega1280, y 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 arranque
que es ejecutado en la placa.4 Se programa en el ordenador para que la placa controle los componentes
electrnicos.
Desde octubre de 2012, Arduino se utiliza 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.

Tipo

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.

[editar datos en Wikidata]

"Arduino Uno" Revisin 3


Placa computadora (microcontrolador
de placa simple)
Pgina www.arduino.cc
web

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 ordenador.
Tambin cuenta con su propio software que se puede descargar de su pgina oficial que ya incluye
los drivers de todas las tarjetas disponibles lo que hace ms fcil la carga de cdigos desde el
computador.
El proyecto Arduino recibi una mencin honorfica en la categora de Comunidades Digital en el Prix
Ars Electrnica de 2006 6 7 8 .
Placa Arduino RS2321

Nederlands
Norsk bokml
Polski
Portugus
Romn

Simple English
Slovenina
Slovenina
Shqip
/ srpski
Svenska

Trke

Ting Vit

Editar enlaces

converted by W eb2PDFConvert.com

ndice
1 Historia
2 Productos
3 Aplicaciones
4 Esquema de conexiones
4.1 Entradas y salidas
5 Especificaciones
6 Lenguaje de programacin Arduino
7 Interfaz con otro software
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
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
7.3 Diferencias con Processing
7.3.1 Arreglos
7.3.2 Impresin de cadenas
7.4 Ejemplo sencillo de programacin en Arduino
8 Bibliotecas en Arduino
8.1 Serial
8.2 EEPROM
8.3 Ethernet
8.4 Firmata
8.5 LiquidCrystal
8.6 Servo
8.7 SoftwareSerial
8.8 Stepper
8.9 Wire
8.10 Creacin de bibliotecas
8.10.1 Ejemplo de biblioteca
9 Ejemplos de Cdigo
10 Instalacin en diferentes entornos
10.1 Windows
10.2 GNU/Linux
11 Equipo de desarrollo
12 Pduino
13 Minibloq
14 Physical Etoys
15 Vase tambin
16 Referencias
17 Bibliografa
18 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

converted by W eb2PDFConvert.com

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 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,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

Productos [editar]
Los modelos en venta de Arduino se categorizan en 4 diferentes productos: placas, escudos, kits y accesorios.
Placas:
Arduino Uno
Arduino Leonardo
Arduino Due
Arduino Yn
Arduino Tre (En Desarrollo)
Arduino Zero (En venta en la tienda de EEUU )
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
Escudos (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

Aplicaciones [editar]
La plataforma 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
Impresoras 3D.

Esquema de conexiones

[editar]

converted by W eb2PDFConvert.com

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, 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

[editar]

Las especificaciones de los distintos modelos de placas Arduino se resumen en la siguiente tabla:

Microcontrolador

Voltaje Voltaje
Frecuencia Digital Entradas
Memoria
de
del
PWM UART
de Reloj
I/O Analgicas
Flash
entrada sistema

AT91SAM3X8E

5-12V

3,3V

84MHz

54*

12

12

512Kb

Due

Nativa USB

Arduino
Leonardo

ATmega32U4

7-12V

5V

16MHz

20*

12

32Kb

Leonardo

Nativa USB

Arduino Uno R3

ATmega328

7-12V

5V

16MHz

14

32Kb

Optiboot

USB via
ATMega16U2

RedBoard

ATmega328

7-15V

5V

16MHz

14

32Kb

Optiboot

USB via FTDI

Arduino Uno
SMD
ATmega328
(descontinuado)

7-12V

5V

16MHz

14

32Kb

Optiboot

USB via
ATMega8U2

Arduino Uno
ATmega328
(descontinuado)

7-12V

5V

16MHz

14

32Kb

Optiboot

USB via
ATMega8U2

Arduino
Duemilanove ATmega328
(descontinuado)

7-12V

5V

16MHz

14

32Kb

AtmegaBOOT USB via FTDI

Arduino
Bluetooth
ATmega328
(descontinuado)

1,2-5,5V 5V

16MHz

14

32Kb

AtmegaBOOT

Modelo

Arduino Due

Cargador

Interfaz de
Programacin

Serial
Bluetooth

Arduino Pro
3.3V/8MHz

ATmega328

3,35 12V

3,3V

8MHz

14

32Kb

Cabecera
AtmegaBOOT compatible con
FTDI

Arduino Pro
5V/16MHz

ATmega328

5 - 12V

5V

16MHz

14

32Kb

Cabecera
AtmegaBOOT compatible con
FTDI

7-12V

5V

16MHz

14

32Kb

Cabecera
AtmegaBOOT compatible con
FTDI

ATmega2560

7-12V

5V

16MHz

54

16

14

256Kb

STK500v2

USB via
ATMega16U2

Arduino Mega
2560
ATmega2560
(descontinuado)

7-12V

5V

16MHz

54

16

14

256Kb

STK500v2

USB via
ATMega8U2

Arduino Mega
ATmega1280
(descontinuado)

7-12V

5V

16MHz

54

16

14

128Kb

STK500v2

USB via FTDI

Ethernet Pro
ATmega328
(descontinuado)
Arduino Mega
2560 R3

Mega Pro 3.3V

ATmega2560

3,3-12V 3,3V

8MHz

54

16

14

256Kb

STK500v2

Cabecera
compatible con
FTDI

Mega Pro 5V

ATmega2560

5-12V

5V

16MHz

54

16

14

256Kb

STK500v2

Cabecera
compatible con
FTDI

Arduino Mini 04
ATmega328
(descontinuado)

7-9V

5V

16MHz

14

32Kb

AtmegaBOOT

Cabecera
Serial

Arduino Mini 05 ATmega328

7-9V

5V

16MHz

14

32Kb

AtmegaBOOT

Cabecera
Serial

Arduino Pro
ATmega328
Mini 3.3V/8MHz

3,3512V

3,3V

8MHz

14

32Kb

Cabecera
AtmegaBOOT compatible con
FTDI

converted by W eb2PDFConvert.com

Arduino Pro
Mini 5V/16MHz

ATmega328

5 - 12V

5V

16MHz

14

32Kb

Cabecera
AtmegaBOOT compatible con
FTDI

Arduino Fio

ATmega328P

3,3512V

3,3V

8MHz

14

32Kb

Cabecera
compatible con
AtmegaBOOT FTDI o
Inalmbrica via
XBee1

Mega Pro Mini


3.3V

ATmega2560

3,3-12V 3,3V

8MHz

54

16

14

256Kb

STK500v2

Cabecera
compatible con
FTDI

Pro Micro
5V/16MHz

ATmega32U4

5-12V

5V

16MHz

12

32Kb

DiskLoader

Nativa USB

Pro Micro
3.3V/8MHz

ATmega32U4

3,3512V

3,3V

8MHz

12

32Kb

DiskLoader

Nativa USB

LilyPad Arduino ATmega328


328 Main Board

2,7-5,5V 3,3V

8MHz

14

32Kb

Cabecera
AtmegaBOOT compatible con
FTDI

LilyPad Arduino
ATmega328
Simple Board

2,7-5,5V 3,3V

8MHz

02

32Kb

Cabecera
AtmegaBOOT compatible 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

5V

5V

5V

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 entrada y salida


digital

14 (6 proporcionan PWM)

14 (6 proporcionan PWM)

54 (14 proporcionan PWM)

Contactos de entrada analgica 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 nivel Processing que es similar
a C++.

Interfaz con otro software

[editar]

Es posible comunicar una aplicacin que corra sobre Arduino con otros dispositvos que corran otros lenguajes de programacin y aplicaciones populares,
21 debido a que Arduino usa la transmisin serial de datos, la cul es soportada por la mayora de los lenguajes que se mencionan acontinuacin. Y 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 de lenguajes 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

converted by W eb2PDFConvert.com

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

Funciones bsicas y operadores [editar]


Arduino est basado en C y soporta todas las funciones del estndar C y algunas de C++.22 A continuacin se muestra un resumen con la estructura y
sintaxis del lenguaje Arduino:
Sintaxis bsica [editar]
Delimitadores:;, {}
Comentarios: //, /* */
Cabeceras: #define, #include
Operadores aritmticos: +, -, *, /, %
Asignacin: =
Operadores de comparacin: ==, !=, <, >, <=, >=
Operadores Booleanos: &&, ||, !
Operadores de acceso a punteros: *, &
Operadores de bits: &, |, ^, ~, <<, >>
Operadores compuestos:
Incremento y decremento de variables: ++, -Asignacin y operacin: +=, -=, *=, /=, &=, |=
Estructuras de control [editar]
Condicionales: if, if...else, switch case
Bucles: for, while, do. while
Bifurcaciones y saltos: break, continue, return, goto
Variables [editar]
En cuanto al tratamiento de las variables tambin comparte un gran parecido con el lenguaje C.
Constantes [editar]
HIGH/LOW: representan los niveles alto y bajo de las seales de entrada y salida. Los niveles altos son aquellos de 3 voltios o ms.
INPUT/OUTPUT: entrada o salida.
false (falso): Seal que representa al cero lgico. A diferencia de las seales HIGH/LOW, su nombre se escribe en letra minscula.
true (verdadero): Seal cuya definicin es ms amplia que la de false. Cualquier nmero entero diferente de cero es "verdadero", segn el lgebra de
Boole, como en el caso de -200, -1 o 1. Si es cero, es "falso".
Tipos de datos [editar]
void, boolean, char, unsigned char, byte, int, unsigned int, word, long, unsigned long, float, double, string, array.
Conversin entre tipos [editar]
Estas funciones reciben como argumento una variable de cualquier tipo y devuelven una variable convertida en el tipo deseado.
char(), byte(), int(), word(), long(), float()
Cualificadores y mbito de las variables [editar]
static, volatile, const
Utilidades [editar]
sizeof()
Funciones bsicas [editar]
E/S digital [editar]
pinMode(pin, modo)
digitalWrite(pin, valor)
int digitalRead(pin)
E/S analgica [editar]
analogReference(tipo)
int analogRead(pin)
analogWrite(pin, valor)
E/S avanzada [editar]
shiftOut(dataPin, clockPin, bitOrder, valor)

converted by W eb2PDFConvert.com

unsigned long pulseIn(pin, valor)


Tiempo [editar]
unsigned long millis()
unsigned long micros()
delay(ms)
delayMicroseconds(microsegundos)
Matemticas [editar]
min(x, y), max(x, y), abs(x), constrain(x, a, b), map(valor, fromLow, fromHigh, toLow, toHigh), pow(base, exponente), sqrt(x)
Trigonometra [editar]
sin(rad), cos(rad), tan(rad)
Nmeros aleatorios [editar]
randomSeed(semilla), long random(mx), long random(mn, mx)
Bits y Bytes [editar]
lowByte(), highByte(), bitRead(), bitWrite(), bitSet(), bitClear(), bit()
Interrupciones externas [editar]
attachInterrupt(interrupcin, funcin, modo)
detachInterrupt(interrupcin)
Interrupciones [editar]
interrupts(), noInterrupts()
Comunicacin por puerto serie [editar]
Las funciones de manejo del puerto serie deben ir precedidas de la palabra "Serial" aunque no necesitan ninguna declaracin en la cabecera del
programa. Por esto se consideran funciones base del lenguaje.23 Estas son las funciones para transmisin serial:
begin(), available(), read(), flush(), print(), println(), write()
Manipulacin de puertos [editar]
Los registros de puertos permiten la manipulacin a ms bajo nivel y de forma ms rpida de los contactos de entrada/salida del microcontrolador de las
placas Arduino.24 Los contactos elctricos de las placas Arduino estn repartidos entre los registros B(0-7), C (analgicos) y D(8-13). Mediante estas
variables ser observado y modificado su estado:
DDR[B/C/D]: Data Direction Register (o direccin del registro de datos) del puerto B, C D. Es una variable de Lectura/Escritura que sirve para
especificar cuales contactos sern usados como entrada y salida.
PORT[B/C/D]: Data Register (o registro de datos) del puerto B, C D. Es una variable de Lectura/Escritura.
PIN[B/C/D]: Input Pins Register (o registro de pines de entrada) del puerto B, C D. Variable de slo lectura.
Por ejemplo, para especificar los contactos 9 a 13 como salidas y el 8 como entrada (puesto que el puerto D usa los pines de la placa Arduino 8 al 13
digitales) bastara utilizar la siguiente asignacin:

DDRD = B11111110;
Como se ha podido comprobar, el conocimiento del lenguaje C, permite la programacin en Arduino debido a la similitud entre ste y el lenguaje nativo del
proyecto, lo que implica el aprendizaje de algunas funciones especficas de que dispone el lenguaje del proyecto para manejar los diferentes parmetros.
Se pueden construir aplicaciones de cierta complejidad sin necesidad de muchos conceptos previos.

AVR Libc [editar]


Los programas compilados con Arduino (salvo en las placas con CorteX M3) se enlazan contra AVR Libc22 por lo que tienen acceso a algunas de sus
funciones. AVR Libc es un proyecto de software libre con el objetivo de proporcionar una biblioteca C de alta calidad para utilizarse con el compilador GCC
sobre microcontroladores Atmel AVR. Se compone de 3 partes:
avr-binutils
avr-gcc
avr-libc
La mayora del lenguaje de programacin Arduino est escrita con constantes y funciones de AVR y ciertas funcionalidades slo se pueden obtener
haciendo uso de AVR.25
Interrupciones [editar]
Las seales de interrupcin son las siguientes:
cli(): desactiva las interrupciones globales
sei(): activa las interrupciones
Esto afectar al temporizador y a la comunicacin serial. La funcin delayMicroseconds() desactiva las interrupciones cuando se ejecuta.
Temporizadores [editar]
La funcin delayMicroseconds() crea el menor retardo posible del lenguaje Arduino que ronda los 2s. Para retardos ms pequeos se debe utilizar la
llamada de ensamblador 'nop' (no operacin). Cada sentencia 'nop' se ejecutar en un ciclo de mquina (16 MHz) de aproximadamente 62,5ns.
Manipulacin de puertos [editar]
La manipulacin de puertos con cdigo AVR es ms rpida que utilizar la funcin digitalWrite() de Arduino.
Establecer Bits en variables [editar]

converted by W eb2PDFConvert.com

cbi y sbi son mecanismos estndar (AVR) para establecer o limpiar bits en PORT y otras variables.

Diferencias con Processing [editar]


La sintaxis del lenguaje de programacin Arduino es una versin simplificada de C/C++ y tiene algunas diferencias respecto de Processing.26 27 Debido a
que Arduino est basado en C/C++ mientras que Processing se basa en Java, existen varias diferencias en cuanto a la sintaxis de ambos lenguajes y el
modo en que se programa:
Arreglos [editar]
Arduino

Processing

int bar[8];
bar[0] = 1;

int[] bar = new int[8];


bar[0] = 1;

int foo[] = { 0, 1, 2 };
int foo[] = { 0, 1, 2 };

o bien

int[] foo = { 0, 1, 2 };

Impresin de cadenas [editar]


Arduino

Processing

Serial.println("hello world");

println("hello world");

int i = 5;
Serial.println(i);

int i = 5;
println(i);

int i = 5;
Serial.print("i = ");
Serial.print(i);
Serial.println();

int i="5;"
println("i =" + i);

Ejemplo sencillo de programacin en Arduino [editar]


El primer paso antes de comprobar que la instalacin es correcta y empezar a trabajar con Arduino, es usar ejemplos prcticos que vienen disponibles con
el dispositivo. Se recomienda abrir el ejemplo led_blink el cual crea una intermitencia por segundo en un led conectado en el pin 13.
El cdigo necesario es el siguiente:

# define LED_PIN 13
void setup () {
// Activado del contacto 13 para salida digital
pinMode (LED_PIN, OUTPUT);
}
// Bucle infinito
void loop () {
// Encendido del diodo LED enviando una seal alta
digitalWrite (LED_PIN, HIGH);
// Tiempo de espera de 1 segundo (1000 ms)
delay (1000);
// Apagado del diodo LED enviando una seal baja.
digitalWrite (LED_PIN, LOW);
// Tiempo de espera de 1 segundo
delay (1000);
}

Bibliotecas en Arduino

[editar]

Las bibliotecas estndar que ofrece Arduino son las siguientes:28

Serial [editar]
Lectura y escritura por el puerto serie.

EEPROM [editar]
Lectura y escritura en el almacenamiento permanente.29
read(), write()

converted by W eb2PDFConvert.com

Ethernet [editar]
Conexin a Internet mediante Arduino Ethernet Shield. Puede funcionar como servidor que acepta peticiones remotas o como cliente. Se permiten hasta
cuatro conexiones simultneas.30 Los comandos usados son los siguientes:
Servidor: Server(), begin(), available(), write(), print(), println()
Cliente: Client(), connected(), connect(), write(), print(), println(), available(), read(), flush(), stop()

Firmata [editar]
Es una biblioteca de comunicacin con aplicaciones informticas utilizando el protocolo estndar del puerto serie.31

LiquidCrystal [editar]
Control de LCDs con chipset Hitachi HD44780 o compatibles.32 La biblioteca soporta los modos de 4 y 8 bits.

Servo [editar]
Biblioteca para el control de servo motores.33 A partir de la versin 0017 de Arduino la biblioteca soporta hasta 12 motores en la mayora de las placas
Arduino y 48 en la Arduino Mega. Estos son los comandos usados:
attach(), write(), writeMicroseconds(), read(), attached(), detach()

SoftwareSerial [editar]
Comunicacin serie en contactos digitales.34 Por defecto Arduino incluye comunicacin slo en los contactos 0 y 1 pero gracias a esta biblioteca puede
realizarse esta comunicacin con los restantes.

Stepper [editar]
Control de motores paso a paso unipolares o bipolares.35
Stepper(steps, pin1, pin2), Stepper(steps, pin1, pin2, pin3, pin4), setSpeed(rpm), step(steps)

Wire [editar]
Envo y recepcin de datos sobre una red de dispositivos o sensores mediante Two Wire Interface (TWI/I2C).36
Las bibliotecas Matrix y Sprite de Wiring son totalmente compatibles con Arduino y sirven para manejo de matrices de diodos LED. Tambin se ofrece
informacin sobre diversas bibliotecas desarrolladas por diversos colaboradores que permiten realizar muchas tareas.

Creacin de bibliotecas [editar]


Los usuarios de Arduino tienen la posibilidad de escribir sus propias bibliotecas.37 Ello permite disponer de cdigo que puede reutilizarse en otros
proyectos, mantener el cdigo fuente principal separado de las bibliotecas y la organizacin de los programas construidos es ms clara.
Ejemplo de biblioteca [editar]
El siguiente ejemplo permite el envo de caracteres mediante el cdigo Morse:
Se crea el archivo Morse.h que incluye la definicin de la clase Morse que tiene 3 funciones: un constructor (Morse()), una funcin para enviar 1 punto
(dot()) y una funcin para enviar una raya (dash()). La variable _pin permite indicar el contacto a usar.

/*
Morse.h - Biblioteca para el envo de Cdigo Morse.
Creado por David A. Mellis, el 2 de noviembre de 2007.
Liberado al dominio pblico.
*/
# ifndef Morse_h
# define Morse_h
# include "WProgram.h"
class Morse
{
public:
Morse(int pin);
void dot();
void dash();
private:
int _pin;
};
# endif
Debe ser creado el archivo Morse.cpp con el cdigo, es decir con la implementacin de los mtodos declarados:

/*
Morse.cpp - Biblioteca para el envo de Cdigo Morse.
Creado por David A. Mellis, el 2 de noviembre de 2007.
Liberado al dominio pblico.
*/
# include "WProgram.h"
# include "Morse.h"
Morse::Morse(int pin)
{

converted by W eb2PDFConvert.com

pinMode(pin, OUTPUT);
_pin = pin;
}
void Morse::dot()
{
digitalWrite(_pin, HIGH);
delay(250);
digitalWrite(_pin, LOW);
delay(250);
}
void Morse::dash()
{
digitalWrite(_pin, HIGH);
delay(1000);
digitalWrite(_pin, LOW);
delay(250);
}
La biblioteca creada as puede ser usada mediante el comando #include. Si se desea enviar una peticin de auxilio SOS por el contacto 13 bastara con
llamar a Morse(13) y ejecutar la siguiente secuencia:

morse.dot(); morse.dot(); morse.dot();


morse.dash(); morse.dash(); morse.dash();
morse.dot(); morse.dot(); morse.dot();

Ejemplos de Cdigo

[editar]

La pgina de Arduino cuenta con una serie de ejemplos para comenzar a entender su funcionamiento, con componentes base tales como Pantallas,
LEDs, Potenciometros, etc.
Ejemplo de parpadeo de LED

/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
This example code is in the public domain.
*/
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000);
// wait for a second
digitalWrite(led, LOW);
// turn the LED off by making the voltage LOW
delay(1000);
// wait for a second
}

Ejemplo de lectura de Potenciometro

/*
ReadAnalogVoltage
Reads an analog input on pin 0, converts it to voltage, and prints the result to the serial monitor.
Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.
This example code is in the public domain.
*/
// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = sensorValue * (5.0 / 1023.0);
// print out the value you read:
Serial.println(voltage);
}

converted by W eb2PDFConvert.com

Instalacin en diferentes entornos

[editar]

Windows [editar]
Los pasos a seguir son los siguientes:
Descargar las versiones ms reciente de Java Runtime Enviroment (J2RE) y del IDE
Arduino.
Instalar los controladores FTDI USB, con la placa Arduino conectada.
Ejecutar el IDE Arduino para abrir la interfaz y configurar el puerto USB donde est
conectada la placa.

GNU/Linux [editar]
Para instalar Arduino en un sistema GNU/Linux necesitamos los siguientes programas para
resolver las dependencias:
Sun java runtime, jre.
avr-gcc, compilador para la familia de microcontroladores avr de atmel.
avr-libc, libc del compilador avr-gcc.
En algunas distribuciones conviene desinstalar, si no es necesario, el programa "brltty" que
permite el acceso al terminal a personas invidentes. Para concluir, se descarga el framework
de Arduino, se descomprime y ejecuta.

Equipo de desarrollo

[editar]

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

Pduino

Interfaz del entorno de desarrollo Arduino en el Sistema


Operativo Windows.

[editar]

Pduino nace de la fusin de los proyectos Pure Data y Arduino. Ambos proyectos de fuente
abierta permiten trabajar con interfaz grfica. Cargando el firmware de Pure Data (PD) a la
placa Arduino se puede acceder a ella mediante el lenguaje de programacin grfico.

Minibloq

[editar]

Minibloq es un entorno grfico de programacin que puede generar cdigo nativo de Arduino y
escribirlo directamente en la memoria flash de la placa. Tiene un modo que permite visualizar
el cdigo generado, el cual tambin puede ser copiado y pegado en el Arduino-IDE, para los
usuarios que intentan hacer el pasaje de una herramienta grfica a la programacin en
sintaxis C/C++. Minibloq es de uso libre y sus fuentes tambin estn disponibles gratuitamente.
Una caracterstica importante, es que puede correr tambin en la computadora porttil OLPC,
mediante el software Wine.

Physical Etoys

[editar]

Physical Etoys es una extensin libre y gratuita que permite que diversos dispositivos
electrnicos como Lego NXT, las placas Arduino, Sphero, Kinect, Joystick Wiimote, entre otros,
puedan ser programados fcilmente y que interacten entre s gracias a su sistema de
bloques.
En el caso de Arduino, Physical Etoys ofrece dos modos de programacin:

Interfaz del entorno de desarrollo Arduino S.O. GNU/Linux.

1. El modo "directo", en el cual los programas se ejecutan en la computadora del usuario y


las rdenes se transmiten inmediatamente a travs del puerto serie.
2. El modo "compilado", en el cual los programas se traducen a C++ y se bajan a la placa,
para luego ejecutarse de manera independiente de la computadora.
El modo "directo" permite modificar los programas y ver los cambios producidos de manera
inmediata en el comportamiento del robot, lo cual facilita la programacin, sobre todo al
usuario inexperto. Asimismo, permite ver constantemente los valores de los sensores y utilizar
el robot, por ejemplo, como para adquirir datos.
El modo "compilado", por su parte, elimina el retardo que introduce la comunicacin con la
computadora, lo cual lo hace preferible para el desarrollo de tareas autnomas, en las cuales
la velocidad de respuesta del robot debe ser ptima.

Vase tambin
BASIC Stamp
Impresin 3D
Gumstix
Minibloq
MiniPC
OOPIC
PICAXE
Raspberry Pi
Physical Etoys

[editar]
Patch Pduino.

converted by W eb2PDFConvert.com

Robot
X10

Referencias
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.

16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.

[editar]

Placa Arduino Serial


Interview with Casey Reas and Ben Fry .
[1]
a b Project homepage .
Arduino Due is finally here .
http://www.aec.at/en/prix/honorary2006.asp
Pantalla de Minibloq.
Ars Electrnica Archiv (en alemn). Consultado el 18 de febrero de 2009.
Ars Electronica Archiv / ANERKENNUNG (en alemn). Consultado el 18 de febrero de
2009.
a b David Kushner (26 Oct 2011). The Making of Arduino . IEEE Spectrum.
a b Algo de Historia para comenzar . Consultado el 22 de diciembre de 2013.
Google presenta ADK, interfaz basada en Arduino para Android . BricoGeek.com. 12 de
mayo de 2011. Consultado el 22 de diciembre de 2013.
Accessory Development Kit 2012 Guide (en ingls). Consultado el 22 de diciembre de
2013.
Terrence O'Brien (19 de septiembre de 2011). Arduino brings the (new) goods to Maker Faire
New York, welcomes ARM into the fold (en ingls). Consultado el 22 de diciembre de 2013.
Xoscillo: A software oscilloscope that acquires data using an Arduino or a parallax. (en
ingls). Consultado el 22 de diciembre de 2013.
Joshua M. Pearce (14 de septiembre de 2012). Building Research Equipment with Free,
Open-Source Hardware (en ingls). Washington, EE.UU.: American Association for the
Advancement of Scienc. p. 3. doi:10.1126/science.1228183 . Consultado el 22 de diciembre de
Combinacin de una computadora de bajo costo OLPC, el
software Minibloq y una placa Arduino.
2013.
Peter Kirn (20 de agosto de 2008). Aug 20 2008 Arduinome: An Arduino-Based Monome
Clone, Behind the Scenes (en ingls). Consultado el 22 de diciembre de 2013.
Humane Reader (en ingls). Consultado el 22 de diciembre de 2013.
The Humane PC (en ingls). Consultado el 22 de diciembre de 2013.
ArduinoPhone (en ingls). Consultado el 22 de diciembre de 2013.
Esteban Zamorano (28 de noviembre de 2013). Construye tu propio celular por USD$200 gracias a Arduino .
Consultado el 22 de diciembre de 2013.
Interfacing with Other Software . http://arduino.cc (en ingls). Consultado el 22 de diciembre de 2013.
a b Language Reference . http://arduino.cc (en ingls). Consultado el 22 de diciembre de 2013.
Serial . http://www.arduino.cc (en ingls). Consultado el 22 de diciembre de 2013.
Proyecto de un semforo realizado
Port Registers . http://www.arduino.cc (en ingls). Consultado el 22 de diciembre de 2013.
con Arduino y Physical Etoys.
AVR Code . http://www.arduino.cc (en ingls). Consultado el 22 de diciembre de 2013.
Arduino/Processing Language Comparison . http://www.arduino.cc (en ingls). Consultado el 22 de diciembre
de 2013.
Language Reference(API)/Processing 2+ . http://processing.org/ (en ingls). Consultado el 22 de diciembre de 2013."
Arduino - Libraries . http://arduino.cc/ (en ingls). Consultado el 22 de diciembre de 2013.
EEPROM Library . http://www.arduino.cc (en ingls). Consultado el 22 de diciembre de 2013.
Ethernet Library . http://www.arduino.cc (en ingls). Consultado el 22 de diciembre de 2013.
Firmata Library . http://www.arduino.cc (en ingls). Consultado el 22 de diciembre de 2013.
LiquidCrystal Library . http://www.arduino.cc (en ingls). Consultado el 22 de diciembre de 2013.
Servo Library . http://www.arduino.cc (en ingls). Consultado el 22 de diciembre de 2013.
SoftwareSerial Library . http://www.arduino.cc (en ingls). Consultado el 22 de diciembre de 2013.
Stepper Library . http://www.arduino.cc (en ingls). Consultado el 22 de diciembre de 2013.
Wire Library . http://www.arduino.cc (en ingls). Consultado el 22 de diciembre de 2013.
Writing a Library for Arduino . http://www.arduino.cc (en ingls). Consultado el 22 de diciembre de 2013.

Bibliografa

[editar]

Oxer, Jonathan; Blemings, Hugh (28 de diciembre de 2009). Practical Arduino: Cool Projects for Open Source Hardware (1 edicin). Apress. p. 500.
ISBN 1430224770.
Noble, Joshua (15 de julio de 2009). Programming Interactivity: A Designer's Guide to Processing, Arduino, and openFramework (1 edicin). O'Reilly
Media. p. 768. ISBN 0596154143.
Banzi, Massimo (24 de marzo de 2009). Getting Started with Arduino (1 edicin). Make Books. p. 128. ISBN 0596155514.

Enlaces de externos

[editar]

Proyecto Arduino (Sitio oficial de la empresa radicada en Italia)


Proyecto Arduino (Sitio oficial con foros y referencia de programacin)
Arduino Stack Exchange sitio de preguntas y respuestas
Comparativa de los distintos modelos disponibles
Algunos proyectos con arduino paso a paso (ejemplos con videotutoriales)
DuinOS : Sistema operativo multitarea para Arduino desarrollado por RobotGroup
Biicode : Aplicacin para gestionar libreras y proyectos de Arduino
Entorno grfico de programacin para Arduino
Winkhel: cmo un proyecto Arduino puede convertirse en un producto real (en espaol)
Scada para Arduino
S-Remote Control: Aplicacin Android para controlar Arduino por UDP o TCP
Ejemplo de uso de Arduino y Gambas: Grfica de datos de sensores

converted by W eb2PDFConvert.com

Grfica de datos de sensores


conectados a Arduino, programado en
Gambas

Categoras: Hardware libre Microcontroladores Robtica Internet de las cosas

Esta pgina fue modificada por ltima vez el 1 ago 2015 a las 19:20.
El texto est disponible bajo la Licencia Creative Commons Atribucin Compartir Igual 3.0; podran ser aplicables clusulas adicionales. Lanse los trminos de uso para ms informacin.
Wikipedia es una marca registrada de la Fundacin Wikimedia, Inc., una organizacin sin nimo de lucro.
Contacto
Poltica de privacidad Acerca de Wikipedia Limitacin de responsabilidad Desarrolladores Versin para mviles

converted by W eb2PDFConvert.com

Potrebbero piacerti anche