Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Qu es Arduino?
Arduino es un proyecto de hardware y software libre que consiste en el desarrollo de una placa de circuito impreso con un microcontrolador y una herramienta informtica multiplataforma para programar dicho microcntrolador. Esta placa se comunica con un ordenador o con otro hardware a travs de sus puertos de entrada y salida, y acta por medio de los programas que se pueden implementar en el microcontrolador. Se trata de un proyecto de hardware libre desarrollado para fines educativos, bajo una licencia Creative Commons. Es decir, toda la informacin sobre la placa (componentes, planos, etc) est disponible de forma pblica, y uno puede realizar modificaciones sobre ese diseo siempre que stas estn bajo la misma licencia y se proporcione informacin sobre las mismas. Existen diferentes versiones de Arduino. Para Cybertech se utilizar la ltima de ellas (Arduino Diecimila), que se puede ver en la figura. Sus caractersticas principales son: Microcontrolador ATmega168 de ATMEL. 14 pines digitales entrada-salida, 6 de los cuales se pueden utilizar como salidas PWM. 6 entradas analgicas. Reloj de 16 MHz. Conexin USB para el ordenador. Conector para alimentacin. En el siguiente esquema se puede ver cada una de estas partes en la placa.
La programacin del micro se realiza a travs del puerto USB por medio del software de desarrollo del proyecto Arduino. Para ello, el micro viene preprogramado con un bootloader, de modo que los programas se pueden descargar fcil y rpidamente a la placa sin necesidad de un programador externo.
Lo primero que deberemos hacer es configurarlo para la placa que estemos utilizando. En el men Tools, elegimos Board y seleccionamos Arduino Diecimila:
En el men Serial Port elegiremos el puerto al que est conectada la placa. Para saber cul es, lo ms fcil es ver qu puertos aparecen en este men cuando la
placa no est conectada y cul aparece cuando la conectamos. Este nuevo puerto (COM X) es el que debemos marcar. Cuando tengamos escrito el programa que vamos a subir a la placa, haremos lo siguiente: Compilamos el programa con el botn Verify Reseteamos la placa con el pulsador de reset. En los siguientes 5 segundos, la placa estar esperando a ser programada. Cargamos el programa en el micro con el botn Upload to I/O board antes de que pasen esos 5 segundos. Si no lo hacemos en este tiempo, se quedar el programa que estaba antes. Mientras se programa, aparece el mensaje Uploading to I/O board y se encienden y apagan los LEDs RX y TX de la placa.
Funcin setup(): aqu inicializamos las variables y los PinModes. Funcin loop(): aqu escribiremos las
instrucciones que va a repetir el micro en cada ciclo de programa. La funcin main() que toma el compilador es la siguiente: int main(void) { init();
setup();
return 0; } Es decir, en primer lugar llama a init() y a setup() y luego repite las instrucciones que hayamos puesto en loop() indefinidamente. Arduino incluye en su software de desarrollo numerosas funciones de Wiring, pero aqu nos limitaremos a explicar las que se usarn con ms frecuencia para nuestra aplicacin: pinMode(pin, modo): configura el pin pin en modo entrada o salida, segn modo sea INPUT o OUTPUT. Por ejemplo, si queremos configurar el pin 12 como salida, escribiremos pinMode(12, OUTPUT).
Los pines configurados como INPUT sern los que conectemos a seales externas como sensores o medidas de tensin, y podremos leer sus valores con la funcin INPUT. digitalWrite(pin, valor): pone el pin pin al valor valor, que puede ser bien HIGH (nivel alto, 1) o LOW (nivel bajo, 0). digitalRead(pin): lee el valor de pin, devolviendo HIGH o LOW. Este valor devuelto lo podemos asignar a una variable, por ejemplo lecturaPin = digitalRead(pin) analogWrite(pin, valor): Escribe un valor analgico en pin. Los pines que admiten esta funcin son, en nuestro caso, 3, 5, 6, 9, 10 y 11. Sin embargo, todas las salidas del micro son digitales, es decir, slo pueden tomar los valores 0 (0V) o 1 (5V), por lo que lo nico que puede hacer esta funcin es emular un valor analgico. Esto lo consigue sacando por el pin un tren de pulsos con un determinado ciclo de trabajo, de modo que el valor medio de esta seal cuadrada pueda tomar cualquier valor entre o y 5V, como se ve en la siguiente figura:
seal cuadrada
digitalRead().
Del
mismo
modo,
podremos
escribir
con
valor medio
El valor que pasamos a esta funcin debe ser un entero comprendido entre 0 y 255. La frecuencia de la seal obtenida es de unos 490 Hz. analogRead(pin): lee el valor del pin analgico pin. Este valor va a un conversor analgico-digital de 10 bits, por lo que la funcin devuelve un valor entero entre 0 y 1023 para valores de tensin en el pin entre 0 y 5V. Los pines analgicos son entradas, no hay que declararlos como INPUT. delay(tiempo): Para la ejecucin del programa durante una cantidad tiempo de milisegundos. Esta funcin es til para introducir retardos. Si queremos pausas ms cortas, podemos utilizar la