Está en la página 1de 6

Qu es Arduino ?

Arduino es una herramienta para hacer que los ordenadores puedan sentir y controlar el mundo fsico a travs de tu ordenador personal. Es una plataforma de desarrollo de computacin fsica (physical computing) de cdigo abierto, basada en una placa con un sencillo microcontrolador y un entorno de desarrollo para crear software (programas) para la placa. Puedes usar Arduino para crear objetos interactivos, leyendo datos de una gran variedad de interruptores y sensores y controlar multitud de tipos de luces, motores y otros actuadores fsicos. Los proyecto de Arduino pueden ser autnomos o comunicarse con un programa (software) que se ejecute en tu ordenador (ej. Flash, Processing, MaxMSP). La placa puedes montarla tu mismo o comprarla ya lista para usar, y el software de desarrollo es abierto y lo puedes descargar gratis. El lenguaje de programacin de Arduino es una implementacin de Wiring, una plataforma de computacin fsica parecida, que a su vez se basa en Processing, un entorno de programacin multimedia. Por qu Arduino? Hay muchos otros microcontroladores y plataformas con microcontroladores disponibles para la computacin fsica. Parallax Basic Stamp, BX-24 de Netmedia, Phidgets, Handyboard del MIT, y muchos otros ofrecen funcionalidades similares. Todas estas herramientas organizan el complicado trabajo de programar un microcontrolador en paquetes fciles de usar. Arduino, adems de simplificar el proceso de trabajar con microcontroladores, ofrece algunas ventajas respecto a otros sistemas a profesores, estudiantes y amateurs:

Asequible - Las placas Arduino son ms asequibles comparadas con otras plataformas de microcontroladores. La versin ms cara de un modulo de Arduino puede ser montada a mano, e incluso ya montada cuesta bastante menos de 60

Multi-Plataforma - El software de Arduino funciona en los sistemas operativos Windows, Macintosh OSX y Linux. La mayora de los entornos para microcontroladores estn limitados a Windows. Entorno de programacin simple y directo - El entorno de programacin de Arduino es fcil de usar para principiantes y lo suficientemente flexible para los usuarios avanzados. Pensando en los profesores, Arduino est basado en el entorno de programacin de Procesing con lo que el estudiante que aprenda a programar en este entorno se sentir familiarizado con el entorno de desarrollo Arduino.

Software ampliable y de cdigo abierto- El software Arduino esta publicado bajo una licencia libre y preparado para ser ampliado por programadores experimentados. El lenguaje puede ampliarse a travs de libreras de C++, y si se est interesado en profundizar en los detalles tcnicos, se puede dar el salto a la programacin en el lenguaje AVR C en el que est basado. De igual modo se puede aadir directamente cdigo en AVR C en tus programas si as lo deseas.

Hardware ampliable y de Cdigo abierto - Arduino est basado en los microcontroladores ATMEGA168,ATMEGA328 y ATMEGA1280. Los planos de los mdulos estn publicados bajo licencia Creative Commons, por lo que diseadores de circuitos con experiencia pueden hacer su propia versin del mdulo, amplindolo u optimizndolo. Incluso usuarios relativamente inexpertos pueden construir la versin para placa de desarrollo para entender cmo funciona y ahorrar algo de dinero.

Primer Sketch
En la gua de inicio (Windows, Mac OS X, Linux), subiste un sketch que hace parpadear un LED. En este tutorial, aprenderas como funciona cada parte de ese sketch.

Sketch Un sketch es el nombre que usa Arduino para un programa. Es la unidad de codigo que se sube y ejecuta en la placa Arduino. Comentarios Las primeras lineas del sketch Blink son un comentario:

/* * Blink * * The basic Arduino example. Turns on an LED on for one second, * then off for one second, and so on... We use pin 13 because, * depending on your Arduino board, it has either a built-in LED * or a built-in resistor so that you need only an LED. * * http://www.arduino.cc/en/Tutorial/Blink */
Todo lo que se encuentra entre /* y */ es ignorado por Arduino cuando ejecuta el sketch (el * al comienzo de cada linea esta ahi solo para que el comentario se vea bien, no es requerido). Esta ah para la gente que lee el cdigo: para explicar lo que hace el programa, como funciona, o por que esta escrito de tal manera. Es muy buena practica poner comentarios en tus sketches, y mantener estos actualizados cuando modiques el cdigo. Esto ayuda a otras personas a aprender de tu codigo y modificar el mismo. Existe otro estilo para comentarios cortos, de una sola linea. Estos comienzan con // y continuan hasta el final de la linea. Por ejemplo en la linea:

int ledPin = 13;

// LED connected to digital pin 13

el mensaje "LED connected to digital pin 13" es un comentario. Variable s Una variable es un lugar donde se almacena un dato. Posee un nombre, un tipo y un valor. Por ejemplo, la linea del sketch Blink anterior declara una variable con el nombre ledPin, de tipo int, y con el valor inicial 13. Esta siendo utilizada para indicar que pin de Arduino se conecta al LED. Cada vez que el nombre ledPin aparece en el codigo, su valor sera utilizado. En este caso, la persona que escribio el codigo podria no haberse molestado en definir la variable ledPin y utilizar simplemente 13 en todas las partes en que debiese especificar el numero del pin. La ventaja de utilizar una variable es que se hace mucho ms fcil mover el LED a un pin diferente: solo necesitas editar la linea en que se asigna el valor inicial a la variable. Con frecuencia, el valor de una variable cambiara a medida que se ejecuta el sketch. Por ejemplo, podras almacenar en una variable el valor ledo desde un input. Hay ms informacin en el tutorial de variables. Funciones Una funcin (tambin conocida como procedimiento o sub-rutina) es un pedazo de cdigo que puede ser utilizado desde cualquier otro punto del sketch. Por ejemplo, aqu esta la definicin de la funcin setup() en el ejemplo Blink:

void setup() { pinMode(ledPin, OUTPUT); }

// sets the digital pin as output

La primera linea nos entrega informacin sobre la funcin, como su nombre, "setup". El texto que hay antes y despues del nombre especifica el tipo de devolucin y los parametros de la funcin: estos seran explicados ms adelante. El codigo entre { y } es conocido como cuerpo de la funcin: lo que la funcin realiza. Puedes llamar a una funcin que ha sido previamente definida (ya sea en tu sketch o como parte del lenguaje Arduino). Por ejemplo, la linea pinMode(ledPin, OUTPUT); llama la funcin pinMode(), pasandole sus dos parametros: ledPin yOUTPUT. Estos parametros son utilizados por la funcin pinMode para decidir que pin y modo utilizar. pinM ode(), digitalWrite(), y delay() La funcin pinMode() configura un pin como entrada o salida. Para utilizarla, le pasas el numero del pin que vas a configurar y la constante INPUT o OUTPUT. Cuando est configurada como input, un pin puede detectar el estado de un sensor, como un pulzador; esto se discute en un tutorial ms adelante?. Como salida, este puede manejar un actuador, como un LED. La funcin digitalWrite() enva un valor a un pin. Por ejemplo, la linea:

digitalWrite(ledPin, HIGH);
modifica ledPin (pin 13) como HIGH, o 5 volts. Enviando LOW a un pin lo conecta a tierra, o 0 volts. delay() hace a Arduino esperar por el numero especificado de milisegundos antes de continuar con la siguiente linea. Hay 1000 milisegundos en un segundo, por lo que la linea:

delay(1000);
crea un retraso de un segundo. setup() y loop() Existen dos funciones especiales que son parte de cada sketch de Arduino: setup() y loop(). setup() es llamado una vez, cuando comienza el sketch. Es un buen lugar para realizar tareas de configuracin, como definir los pins o inicializar bibliotecas. La funcin loop() se llama una y otra vez y es el corazn de la mayoria de los sketches. Necesitas incluir ambas funciones en tu sketch, aun cuando no las necesites para nada. E jercicios. 1. Modifica el cdigo para que el LED este encendido por 100 milisegundos y apagado por 1000. 2. Modifica el cdigo para que el LED se encienda cuando el sketch comienze y se mantenga encendido. Revisa tambin

setup() loop() pinMode() digitalWrite() delay()

Ejemplos
Visita la pgina de conceptos bsicos para una descripcin en profundidad de los conceptos centrales del hardware y software Arduino; la pgina de hacking para informacin en cmo ampliar y modificar el hardware y software Arduino; y la pgina de enlaces para otro tipo de documentacin. Tambin hay una gua de estilo til al esribir ejemplos para principiantes. Conceptos Bsicos Libre ras

Pequeos programas que demuestran los comandos bsicos de Arduino. Estos vienen por defecto con el entorno de desarrollo Arduino; para abrirlos en tu ordenador, haz click en el botn Open de la barra de herramientas y la carpeta examples o en el men File -> Examples dnde los encontrars agrupados por temticas.
Entradas/Salidas Digitales

Ejemplos de las libreras que vienen incluidas con el software Arduino.


Librera EEPROM

EEPROM Clear: borra los bytes de la EEPROM. EEPROM Read: lee los valores de la EEPROM y enva los datos a un ordenador. EEPROM Write: almacena en la EEPROM los valores ledos de un sensor analgico.
Librera C ris ta l Lq ui do (LiquidC rystal)

Blink: parpadeo, enciende y apaga un LED. Blink Without Delay: parpadeo sin delay, enciende y apaga el LED sin usar la funcin delay(). Button: botn, control de un LED usando un pulsador. Button State Change: cambio de estado del botn, cuenta del nmero de veces que se presiona un botn. Debounce: lee un pulsador, filtrando el ruido. Tone: tono, toca una meloda usando un Piezo. Pitch follower: seguidor de pitch, cambia el pitch de un tono usando una entrada analgica. Simple Keyboard: teclado simple, un teclado musical de slo tres teclas usando sensores de fuerza y un Piezo. Tone4: toca tonos en varios altavoces secuencialmente usando el comando tone().
Entradas/Salidas Analgicas

Hello World: muestra "hello world!" y el tiempo -en segundos- desde el ltimo reset. Blink: controla el cursor en modo bloque. Cursor: controla el cursor en modo subrayado. Display: borra el display sin perder lo que est en l. TextDirection: controla en que direccin fluye el texto desde el cursor. Scroll: haz scroll del texto a derecha e izquierda. Serial input: toma datos del puerto serie y muestralos. SetCursor: fija la posicin del cursor. Autoscroll: mueve el texto a derecha e izquierda.
Librera Servo

Knob: controla el ngulo de un servo motor al girar un potencimetro. Sweep: hace girar un servo motor alante y Analog Input: entrada analgica, usa un potenciometro para controlar la frecuencia de atrs. parpadeo de un LED. Librera Paso-a-Paso Stepper Calibration: calibracin, para lecturas de sensores analgicos. Motor Knob: controla un motor paso-a-paso Fading: emplea una salida analgica (por con un potencimetro. modulacin de ancho de pulso - PWM) para cambiar la intensidad lumnnica de un LED de Arduino como Programador ISP forma gradual. ISP programmer: transforma tu Arduino en Smoothing: suavizado, suaviza multiples un programador de circuitor (In Circuit lecturas de una entrada analgica.

Programmer) para reprogramar chips de la familia ATmega. til cuando se quiere

Estr uc tur as de C ontrol

recargar el bootloader en un Arduino, o si se est creando un Arduino en Proposicin If (estrucutura condicional): cmo un breadboard.
usar la proposicin if para cambiar las condiciones de salida en funcin de las condiciones de entrada. Bucle For: controlar mltiples LEDs usando un bcle. Array: una variacin del ejemplo anterior demostrando cmo usar un array. Bucle While: uso de un bucle while para calibrar un sensor mientras se aprieta un botn. Switch Case: cmo discriminar entre distintos valores numricos. Equivalente a una serie de proposiciones ifencadenadas. Este ejemplo muestra como dividir el rango de un sensor de entrada en cuatro bandas y cmo tomar diferentes acciones en funcin de la banda en la que caiga el valor del sensor. Switch Case 2: un segungo ejemplo con switch-case, muestra como tomar diferentes acciones basado en los caracteres recibidos por el puerto serie.
Sensores Ms

Para ver ms ejemplos creador por la comunidad de Arduino, visita la pgina de interficies con hardware en la wiki playground. Tambin puedes visitar la lista deejemplos antig

ADXL3xx: Lee un sensor acelermetro tipo ADXL3xx. Knock: usa un piezo para detectar vibraciones. Memsic2125 : acelermetro de doble eje. Ping: detecta objetos con un sensor de ultrasonidos.
C omunic ac in

Estos ejemplos incluyen cdigo que permite a Arduino comunicar con sketches de Processing corriendo en el ordenador. Para ms informacin o para descargar Processing, visita processing.org. Hay tambin patchespara Max/MSP que pueden comunicar con Arduino. Para ms informacin acerca de Max/MSP, visita la web deCycling 74

ASCII Table: Tabla ASCII, demostracin de las funciones avanzadas de comunicacin serie de Arduino. Dimmer: mueve el ratn para cambiar la intensidad de un LED. Graph: enva datos al ordenador y crea

grficos con Processing. Physical Pixel: pixel fsico, enciende y apaga un LED en la placa al enviar datos desde Processing. Virtual Color Mixer: mezclador de colores virtual, enva una serie de variables desde Arduino al ordenador y leelas en Processing. Serial Call Response: respuesta a llamadas serie, enva variables en respuesta a una peticin (handshake). Serial Call Response ASCII: respuesta ASCII a llamadas serie, enva variables en respuesta a una peticin (handshake), codifica los valores usando el cdigo ASCII antes de enviarlos. Serial input: entrada serie, toma diferentes acciones en funcin de los datos que llegan por el puerto serie. MIDI: enva notas MIDI por el puerto serie.
Mostrando Informacin (Display)

Ejemplos bsicos para mostrar informacin.


Bar Graph: cmo hacer un grfico de barras con LEDs. Row Column Scanning: escano en filas y columnas, control de una matriz de 8x8 LEDs

También podría gustarte