You are on page 1of 14

ARDUINO

Descripcin del hardware La parte tangible de Arduino es la placa Arduino. Para entender mejor cada parte de esta placa, adjuntamos una imagen de un modelo Arduino UNO. Se encuentran sealadas todas las partes. Son definidas a continuacin.

PINES DIGITALES (E/S)


Serial: 0 (RX) y 1 (TX). Utilizado para recibir (RX) y transmitir (TX) datos serie TTL. Interrupciones externas: 2 y 3. Estas terminales pueden ser configuradas para disparar una interrupcin con un valor bajo, un pulso de subida o bajada, o un cambio de valor. PWM: 3, 5, 6, 9, 10, y 11. Proporcionan salidas PWM de 8 bit con la funcin analogWrite(). LED Pin 13. Existe un led en placa conectado al pin digital 13. cuando el pin tiene valor HIGH, el LED est encendido, cuando el pin est en LOW, est apagado

PINS DE ENTRADA (ANALOGICA)


En adicin a las funciones especficas listadas abajo, los pines de entrada analgicos soportan conversiones analgico-digital (ADC) de 10 bit utilizando la funcin analogRead(). Las entradas analgicas pueden ser tambin usadas como pines digitales: entrada analgica 0 como pin digital 14 hasta la entrada analgica 5 como pin digital 19. PINES DE ALIMENTACION Vin (a veces marcada como "9V"). Es el voltaje de entrada a la placa Arduino cuando se est utilizando una fuente de alimentacin externa (En comparacin con los 5 voltios de la conexin USB o de otra fuente de alimentacin regulada). 5V. La alimentacin regulada utilizada para alimentar el microcontrolador y otros componentes de la placa. Esta puede venir del conector Vin a travs de un regulador en placa o ser proporcionada por USB u otra fuente regulada de 5V. 3V3. Una fuente de 3.3 voltios generada por el chip FTDI de la placa.

GND. Pines de tierra.

OTROS PINES
AREF. Referencia de voltaje para las entradas analgicas. IOREF. Servir para que la placa reconozca el tipo de alimentacin que requieren los shieds (3.3v 5v). RESET. Se usa para resetear el microcontrolador. Utilizada tpicamente para aadir un botn de reset a shields que bloquean el de la placa principal.

Descripcin del software.


Arduino es una herramienta para hacer que los ordenadores puedan sentir y controlar el mundo fsico a travs de un ordenador personal. Es una plataforma de desarrollo de computacin fsica de cdigo abierto, basada en una placa con un sencillo microcontrolador y un entorno de desarrollo para crear software para la placa. Instalacin. Para instalar Arduino en Windows, nos dirigimos a la pgina oficial de Arduino (http://www.arduino.cc/es/) y accedemos al men de Descargas para obtener el paquete de instalacin. En este caso, siendo Windows el sistema operativo del ordenador que se conectar a la placa Arduino, seleccionamos el paquete Windows. Este hiperenlace nos lleva a google.code. Una vez all, descargamos el paquete de Windows, siendo un archivo comprimido .zip. Despues de haberlo descargado, lo descomprimimos en una carpeta (es recomendable en una subcarpeta en el escritorio, para ser mas accesible). Una vez que hemos descomprimido, accedemos al directorio de la carpeta y ejecutamos el setup, reconocido por el icono circular, celeste con un signo de infinito.

Una vez que estamos dentro del programa, vemos una hoja de proyecto en blanco para escribir nuestro programa que ser cargado en la placa. Ms abajo se puede ver un rea con fondo negro, en este lugar, Arduino nos informar de los errores ocasionados en la sintaxis del programa. Los pasos para configurar y para que Windows reconozca la placa son los siguientes: 1. Conectamos la placa al ordenador por medio del cable USB. 2. Windows intentar buscar los drivers automticamente en Windows Update, pero no ser posible encontrar el controlador adecuado por lo que accedemos al Administrador de Dispositivos (Mi PC > Boton Derecho > Administrar > Administrador de Dispositivos. 3. Accedemos al subapartado de Puertos COM y veremos un dispositivo con un icono amarillo de atencin, que significa que Windows no posee el controlador adecuado para ese dispositivo. Para arreglar esto, pulsamos con el botn derecho y seleccionamos Actualizar controlador. Una vez que avanzamos al siguiente paso, seleccionamos buscar los controladores en los directorios de nuestro ordenador. Para ello, seleccionamos que busque los drives en la subcarpeta en la que descomprimimos el paquete de instalacin de Windows. 4. Despus de esto, Arduino ya es reconocido por Windows. Automticamente asigna un puerto COM al dispositivo. Una vez que la placa Arduino ya es reconocida por el Sistema Operativo, accedemos a la interfaz del programa para conectarla. Para ello, vamos al men superior Herramientas, y en el submen tarjetas, elegimos nuestro modelo de tarjeta. Ms abajo en el submen de Puerto Serial, elegimos el Puerto COM asignado a la placa. Programas bsicos Para empezar a comunicar el ordenador con la placa, si conocemos la sintaxis de Arduino podemos empezar a escribir un cdigo para cargarlo en la placa. Si no conocemos el lenguaje, podemos cargar un ejemplo predeterminado. Para ello, accedemos al men superior Archivo > Ejemplos y veremos varios ejemplos divididos en varias categoras.

Primer programa. Para comenzar, cargaremos el ejemplo Blink, que se encuentra en el submen Basics. El objetivo de este ejemplo bsico es encender y apagar un diodo LED cada segundo repetidamente en bucle infinito. Para comprobar el resultado, podemos colocar un diodo LED en los pines 13 y GND, colocando la patilla larga del diodo en el pin 13. Este pin posee una resistencia de 1KOhm permitindote conectar un LED directamente. Adems, en la placa que estamos utilizando, posee un LED en placa que est asociado al pin 13, por lo que en este caso, los dos LEDs transmitirn luz al mismo tiempo, estando la resistencia compartida por los dos LEDs. Si quitramos el LED externo conectado al pin 13, aumentara la intensidad del LED que viene integrado en placa.

El cdigo de este programa es el siguiente:

La zona de creacin de Ardunio se puede dividir en tres zonas: La primera de ella es la Zona global, despus de sta, a partir de la sentencia void setup() y la ltima a partir de void loop(). Zona global
Aqu ser donde indicaremos a Arduino los nombres de los pines y donde crearemos aquellas variables que queramos que existan en todo el programa. Tambin se pueden crear nuestras propias funciones. En el caso anterior, no se define ninguna variable y se hace referencia al pin directamente en la funcin void setup () con su nmero.

La funcin void setup()


Esta funcin se ejecuta cada vez que se inicia Arduino (incluyendo al pulsar el botn RESET que se encuentra en la placa). Una de las operaciones que se realiza en void setup() es la de configurar los pines que vamos a utilizar. Como solo utilizaremos un pin, slo definimos una funcin de configuracin pinMode en la que indicamos que lo usaremos como salida.

La funcin void loop()


Esta funcin es la parte fundamental de los programas creados con Arduino. Es una funcin que permanece en ejecucin en forma de bucle infinito. Esto significa que se ejecuta de principio a fin sin interrupcin. Con la sentencia digitalWrite(13, HIGH) especificamos que se encienda el LED y con la sentencia digitalWrite(13, LOW) que se apague el LED conectado al pin 13. Entre estas dos sentencia se encuentra otra llamada delay(1000) que hace referencia al tiempo (en milisegundos) que tiene que esperar para pasar a la siguiente sentencia. Una vez que ha esperado un segundo por segunda vez, la ejecucin vuelve al principio de la funcin loop y volvera a encender el led, y as sucesivamente. Uso bsico de programacin en C para Arduino. ; (punto y coma) Sirve para separar sentencias. {} (llaves) Marcan los lmites de un bloque de cdigo (inicio y fin de una funcin o estructura de control). // (comentarios en una lnea) Inicio de un comentario en la misma linea /* */ (comentarios en mltiples lneas) Inicio y fin de un bloque de comentario

Variables En la sintaxis de Arduino existen variables constantes que se dividen en grupos.

L a s q u e d e f i n e n n i v e l e s l g i c o s , v e r d ad e r o ( tr u e ) y f a l s o ( f a l s e ) Existen dos constantes para representar si algo es cierto o falso en Arduino: true, y false. false false es el ms sencillo de definir. False se define como 0 (cero). true true se define la mayora de las veces como 1. Cualquier entero que es no-cero es TRUE.

Ten en cuenta que las constantes true y false se escriben en minsculas, al contrario que HIGH, LOW, INPUT, y OUTPUT.

L a s q u e d e f i n e n e l n i v e l d e l o s p i n e s , n i v e l a l t o ( H I G H ) y ni v e l b a j o (LOW) Cuando leemos o escribimos en un pin digital, existen slo dos valores que podemos obtener o asignar : HIGH y LOW. HIGH El significado de HIGH (en referencia a un pin) depende de si el pin est configurado como entrada (INPUT) o como salida (OUTPUT). Un pin puede ser configurado como entrada (INPUT) usando pinMode, y despus establecerlo a HIGH con digitalWrite, esto conectar el pin a 5 Voltios a travs de una resistencia interna de 20K. Cuando un pin se configura como salida (OUTPUT) con pinMode, y se establece a HIGH con digitalWrite, el pin tiene 5V. LOW El significado de LOW difiere tambin segn est configurado como entrada (INPUT) o como salida (OUTPUT). Cuando un pin est configurado como entrada (INPUT) con pinMode, y se lee con digitalRead, el microcontrolador retornar LOW si el voltaje presente en el pin es de 2V o menor. Cuando un pin es configurado como salida (OUTPUT) con pinMode, y establecido LOW con digitalWrite, el pin tiene 0 voltios.

L a s q u e d e f i n e n l o s p i n e s d i g i t a le s , I N P U T y OU T P U T Los pines digitales pueden ser usados como entrada (INPUT) o como salida (OUTPUT). Cambiando un pin de INPUT a OUTPUT con pinMode() el comportamiento elctrico del pin cambia drsticamente. P i n s c o n fi g u r a do s c o m o e n t r a d as Los pins de Arduino configurados como INPUT con pinMode() se dice que se encuentran en un estado de alta impedancia. Una forma de explicar esto es que un pin configurado como entrada se le aplica una muy baja demanda, es decir una resistencia en serie de 100 Megohms. P i n s c o n fi g u r a do s c o m o s a li d a s Los pins configurados como salida (OUTPUT) con pinMode() se dice que estan en estado de baja impedancia. Esto implica que pueden proporcionar una sustancial cantidad de corriente a

otros circuitos. Los pins de Arduino pueden alimentar (proveer de corriente positiva) o meter (proveer de masa) hasta 40 mA (miliamperios) de corriente a otros dispositivos/circuitos. Esto lo hace muy til para alimentar LED's pero inservible para leer sensores. La cantidad de corriente que puede proveer un pin del Arduino no es suficiente para la mayora de los rels o motores, y es necesario aadir circuitera extra.

TIPOS DE DATO
boolean (verdadero/falso) Ejemplo: boolean [nombre] = true; char (carcter) Ejemplo: char [nombre] = R byte byte [nombre] = Bxxxxxxxx; // B es el formateador binario (B00010010 = 18 decimal) Ejemplo: byte [nombre] = B00010010; int (entero, desde -32,768 hasta 32,767) Ejemplo: int [nombre] = 3; unsigned int (entero sin signo, desde 0 a 65,535) Ejemplo: unsigned int [nombre] = 12; long (entero 32bit, desde -2,147,483,648 hasta 2,147,483,647) Ejemplo: long [nombre] = 8; unsigned long (entero 32bit sin signo, desde 0 a 4,294,967,295) Ejemplo: unsigned long [nombre] = 18; float (es un nmero decimal de 32bit) Ejemplo: float [nombre] = 3.5; double (es lo mismo que float) Ejemplo: double [nombre] = 3.8; string (cadena de caracteres) Ejemplo: string [nombre] = Hola Mundo!; array (vector) int [nombre][x]; // un vector de x elementos de tipo int Ejemplo: int [nombre][14]; float [nombre][20]; void (vaco) (Slo utilizado cuando una funcin no devuelve nada) Ejemplo: void funcion()

E/S Digitales
pinMode: Configuracin del Pin La estructura es: pinMode(nmero del Pin, tipo INPUT o OUTPUT); Ejemplo: pinMode(9, OUTPUT); digitalWrite: Escritura en Pin Digital La estructura es: digitalWrite(nmero del Pin, valor); Ejemplo: digitalWrite(ledPin, HIGH); digitalRead: Lectura en Pin Digital estructura es: digitalRead(nmero del Pin);

Ejemplo: digitalRead(9);

E/S Analgicas
analogRead: Lectura de Pin analgico analogRead(nmero del Pin); Ejemplo: analogRead(9); analogWrite: Escritura Analgica - PWM (modulacin por ancho de pulso) La estructura es: analogWrite(nmero del Pin, valor); Ejemplo: analogWrite(9, 255);

Tiempo
delay: Pausa la ejecucin un tiempo determinado. La estructura es: delay(milisegundos); Ejemplo: delay(1000);

Comunicacin
Serial: Estructura que contiene todas las funciones relacionadas con la comunicacin por puerto serie. 1. Print: Muestra en la consola los datos seleccionados 2. Serial.print(datos que queremos imprimir); Ejemplos: de texto Serial.print(Hola Mundo!); de variable Serial.print(valPot); 3. Println: Hace lo mismo que print pero aadiendo un salto de lnea 4. Serial.println: datos que queremos imprimir. Ejemplos: de texto Serial.println(Hola Mundo!); de variable Serial.println(valPot); Control de LED. Una vez que ya tenemos los conocimientos bsicos sobre la creacin de programas, podemos subir un nivel ms y modificar el cdigo por defecto del ejercicio anterior, por ejemplo, modificando el tiempo de espera de la ejecucin entre sentencias (delay). Por ejemplo, si queremos que el tiempo de espera sea la mitad de un segundo, cambiamos la sentencia delay(1000); a delay(500); y el LED producir un parpadeo intermitente en 1 segundo. Control de LED en Bread Board. Hasta ahora solo hemos trabajado con un LED conectado directamente a la placa Arduino, concretamente al pin 13 que lleva integrado una resistencia que hace posible la conexin exitosa del LED a la placa. Ahora veremos cmo obtener el mismo resultado pero conectado el diodo LED a una Bread Board Clear.

Para ello, utilizamos el mismo cdigo, solo modificando el nmero del pin donde se encuentra el LED. El circuito quedara asi: Tendramos: 1. Un cable desde el pin de 5V a la columna de positivo en la protoboard. 2. Un cable desde el pin GND a la columna de negativo en la protoboard. 3. Un cable desde el pin 9 a una de las patillas del condensador. 4. Una de las patillas del condensador debe de estar en la misma fila que de la patilla larga del diodo LED. 5. La otra patilla LED estar en otra fila que tendr otro cable desde esa fila a la columna de negativo.

Protoboard con dos LEDs. Nos servimos del cdigo anterior y solo aadimos el otro nmero de pin donde se encuentra el LED. Slo aadimos estas lneas: En esta primera lnea aadida declaramos una variable, en este caso el segundo LED, indicando que se encuentra conectado en el pin nmero 10.

En esta segunda lnea, indicamos que es un dispositivo de salida, en este caso de Luz.

En estas ltimas lneas, escribimos el comportamiento que tendr este elemento, en este caso, se encender y se apagar con un retardo de 500 ms. LEDs con un pulsador. Ahora realizamos una prctica con un pulsador, un elemento de entrada. Para empezar, declaramos una variable que almacene el pin al que est conectado el pulsador.

Adems de esta variable, debemos de crear otras dos, una para el pin del LED y otra para el estado del pulsador.

La declaramos con 0 porque el botn, mientras que no es pulsado, se encuentra con un valor nulo. En la funcin void setup(); declaramos el modo del pin de cada variable, en el caso de la variable puls ser INPUT.

Si seguimos en el proceso de creacin del cdigo, llegamos a la funcin void loop();, en este paso es necesario especificar una sentencia condicional. La definicin sera: Si el pulsador est accionado, entonces encender la luz del LED, sino, dejarlo apagado. En la primera sentencia asignamos a la variable estadoboton el resultado de leer la variable puls.

Si puls (pulsador) est accionado (HIGH) escribir en led HIGH (luz). Sino, escribir en led LOW (apagado).

El circuito sera as:

LED con potencimetro. Para esta prctica, necesitamos un potencimetro. Nos ser suficiente con uno de 1K. El cdigo para esta prctica es el siguiente: En la zona global declaramos las variables. LED, Potenciometro y el valor del potencimetro. Modo de Pin de Led Output. Valor de la variable valorPoten Resultado del sensor de la variable poten (potencimetro). Escribir en Led (Luz) con tiempo de espera de variable valorPoten.

El circuito quedara asi:

LDR con LEDS En la siguiente prctica, tomaremos un sensor de luz como novedad. Crearemos un circuito con dos LEDs, uno rojo y otro verde. El objetivo ser que segn la luminosidad que reciba el sensor, se encienda o un LED u otro. El circuito quedara asi:

Este es el cdigo. La parte mas importante de este cdigo son las sentencias condicionales, pues determinaran que LED debe encenderse y cuando.

En la zona global definimos las variables. 1. Primer LED (rojo) 2. Segundo LED (verde) 3. LDR 4. Estado LDR Definimos los pins de entrada y salida (Sensor = I) En void loop() definimos otra variable con el resultado de la variable del sensor LDR. Primera condicin; Si el estado del sensor es mayor de 50, encender el led verde, sino, dejarlo apagado. La segunda condicin; Si el estado del sensor es menor de 50, encender el led rojo, sino dejarlo apagado. Leer luminosidad con PC. Para conseguir el objetivo de este ejercicio debemos utilizar la conexin serial. Para la realizacin de este proyecto, es necesario un LDR y una resistencia, adems de la placa Arduino. El cdigo es el siguiente: En la primera parte definimos la variable del sensor LDR. Creamos otra variable que almacene el valor del sensor. Habilitamos la conexin Serial. Especificamos el sensor LDR de entrada. A la variable definida anteriormente (estado) le asignamos el valor de leer la variable sen. Imprimimos por consola serial el valor de la variable estado. Hacemos una pausa de un segundo entre lecturas del

sensor para no colapsar la conexin serial.

Leer temperatura PC. Para este objetivo, usamos el mismo cdigo usado anteriormente y obtendremos el mismo resultado, especificados como dispositivos de entrada pues solo cambiando el sensor LDR de luminosidad y colocando el sensor NTC de temperatura llegamos a la realizacin exitosa de este ejercicio.

PROCESSING
Ejemplos practicos processing

size(150,150); //define el tamao de ventana background(0); //pinta la ventana de negro set(75,75,255); //dibuja un pixel blanco

Descarga de Processing

Para descargar processing, accedemos a la web http://www.processing.org/ y en el submen Download vemos las versiones disponibles. Actualmente, existen varias versiones BETA pero solo una estable, por lo que para evitar problemas descargaremos esta; Processing 1.5.1. Como utilizamos el sistema operativo Windows, pulsamos sobre el hiperenlace Standard y descargamos un archivo comprimido zip. Despus de descargar el archivo comprimido, solo tenemos que descomprimir en un directorio de Windows. Una vez descomprimido, abriendo el ejecutable de processing podemos utilizar el programa sin tener que instalarlo. Instalacion de la librera Arduino en Processing Desde el siguiente enlace descargamos la librera de Arduino para Proccesing.
http://arduino.cc/playground/uploads/Interfacing/processing-arduino.zip Descomprimir y copiar el directorio de librerias, por ejemplo en Processing 1.5.1 processing-1.5.1/modes/java/libraries

You might also like