Arduino es una plataforma de prototipos electrnica de cdigo abierto (open-source) basada en hardware y software
flexibles y fciles de usar. Est pensado para artistas, diseadores, como hobby y para cualquiera interesado en crear
objetos o entornos interactivos.
Arduino puede medir el entorno mediante la recepcin de entradas desde una variedad de sensores y puede afectar a su
alrededor mediante el control de luces, motores y otros artefactos. Elmicrocontrolador de la placa se programa usando el
_Arduino Programming Language_ (basado en Wiring1) y el _Arduino Development Environment_ (basado en
Processing2). Los proyectos de Arduino pueden ser autnomos o se pueden comunicar con software en ejecucin en un
ordenador
El software se puede se descargar gratuitamente. Los diseos de referencia del hardware estn disponibles bajo licencia
open-source, por lo que se es libre de adaptarlas a las necesidades.
Arduino recibi una mencin de honor en la seccin Digital Communities del Ars Electronica Prix en 2006.
Por qu ARDUINO?
Hay muchos otros microcontroladores y plataformas microcontroladoras disponibles para computacin fsica. Parallax
Basic Stamp, Netmedia's BX-24, Phidgets, MIT's Handyboard, y muchas otras ofertas de funcionalidad similar. Todas
estas herramientas toman los desordenados detalles de la programacin de microcontrolador y la encierran en un paquete
fcil de usar. Arduino tambin simplica el proceso de trabajo con microcontroladores, pero ofrece algunas ventajas para
profesores, estudiantes y aficionados interesados sobre otros sistemas:
Barato: Las placas Arduino son relativamente baratas comparadas con otras plataformasmicrocontroladoras. La versin
menos cara del modulo Arduino puede ser ensamblada a mano, e incluso los mdulos de Arduino preensamblados cuestan
menos de 50 dls.
Multiplataforma: El software de Arduino se ejecuta en sistemas operativos Windows, Macintosh OSX y GNU/Linux. La
mayora de los sistemas microcontroladores estn limitados a Windows.
Entorno de programacin simple y claro: El entorno de programacin de Arduino es fcil de usar para principiantes, pero
surecientemente extensin para que usuarios avanzados puedan aprovecharlo tambin. Para profesores, est
convenientemente basado en el entorno de programacin Processing, de manera que estudiantes aprendiendo a programar
en ese entorno estarn familiarizados con el aspecto y la imagen de Arduino.
Cdigo abierto y software extensible: El software Arduino est publicado como herramientas de cdigo abierto,
disponible para extensin por programadores experimentados. El lenguaje puede ser expandido mediante bibliotecas del
lenguaje C.
Cdigo abierto y hardware extensible: Arduino est basado en microcontroladores ATMEGA8 y ATMEGA168 de
Atmel. Los planos para los mdulos estn publicados bajo licencia Creative Commons, por lo que diseadores
experimentados de circuitos pueden hacersu propia versin del mdulo, extendindolo y mejorndolo. Incluso usuarios
relativamenteinexpertos pueden construir la versin de la placa del mdulo para entender como funcionay ahorrar dinero.
_Diecimila_ quiere decir 10000 en italiano y fue llamado as para resaltar el hecho de que ms de 10000 placas Arduino
han sido fabricadas. El Diecimila es el ltimo en la serie de placas USB Arduino.
Funciones o subprogramas
Una funcin es un bloque de cdigo que tiene un nombre y un grupo de declaraciones quese ejecutan cuando se llama a la
funcin. Podemos hacer uso de funciones integradas como void setup() y void loop() o escribir nuevas.
Las funciones se escriben para ejecutar tareas repetitivas y reducir el desorden en un programa. En primer lugar se declara
el tipo de la funcin, que ser el valor retornado por la funcin (int, void...). A continuacin del tipo, se declara el nombre
de la funcin y, entre parntesis, losparmetros que se pasan a la funcin.
tipo NombreDeFuncion (parametros)
{
instrucciones;
}
La siguiente funcin int delayVal(), asigna un valor de retardo en un programa por lectura delvalor de un
potencimetro.
int delayVal()
{
int v; //crea una variable temporal 'v'
v = analogRead(pot); //lee el valor del potencimetro
v /= 4; //convierte 0-1023 a 0-255
return v; //devuelve el valor final de v
}
llaves {}
Las llaves definen el comienzo y el final de bloques de funcin y bloques de declaraciones como void loop() y sentencias
for e if. Las llaves deben estar balanceadas (a una llave de apertura { debe seguirle una llave de cierre }). Las llaves no
balanceadas provocan errores de compilacin.
void loop()
{
instrucciones;
}
El entorno Arduino incluye una prctica caracterstica para chequear el balance de llaves. Slo selecciona una llave y su
compaera lgica aparecer resaltada.
punto y coma ;
Un punto y coma debe usarse al final de cada declaracin y separa los elementos del programa. Tambin se usa para
separar los elementos en un bucle for.
int x = 13;
Nota: Olvidar un punto y coma al final de una declaracin producir un error de compilacin.
comentarios de lnea //
Comentarios de una lnea empiezan con // y terminan con la siguiente lnea de cdigo. Como
el bloque de comentarios, son ignorados por el programa y no toman espacio en memoria.
// este es un comentario de una lnea
Comentarios de una lnea se usan a menudo despus de declaraciones vlidas para proporcionar ms informacin sobre
qu lleva la declaracin o proporcionar un recordatorio en el futuro.
Variables
Una variable es una forma de llamar y almacenar un valor numrico para usarse despus por el programa. Como su
nombre indica, las variables son nmeros que pueden cambiarse continuamente al contrario que las constantes, cuyo valor
nunca cambia. Una variable necesita ser declarada y, opcionalmente, asignada al valor que necesita para ser almacenada.
int inputVariable = 0; //declara una variable y asigna el valor a 0
inputVariable = analogRead(2); //ajusta la variable al valor del pin
//analgico 2
Ejemplos: