Você está na página 1de 8

CYBERTECH SOLAR 2008 MANUAL DE ARDUINO

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.

2. Entorno de desarrollo de Arduino


El software de Arduino se puede descargar de la pgina oficial, que incluye versiones para Windows, Mac y Linux. Aqu describiremos las instrucciones que hay que seguir para su instalacin bajo Windows. Para otros sistemas, se puede consultar la informacin en http://www.arduino.cc/en/Guide/MacOSX (Mac) y http://www.arduino.cc/playground/Learning/Linux (Linux).

2.1. Instalacin del software


Descargar el fichero http://www.arduino.cc/files/arduino-0010-win.zip Descomprimirlo en el directorio que queramos. Conectar la placa al puerto USB: saldr un asistente para instalar el driver. Le decimos que lo busque en arduino-0010\drivers\FTDI anterior. Ejecutar arduino USB Drivers. Es posible que el asistente salga otra vez, en cuyo caso repetiremos lo

2.2. Programando Arduino


2.2.1. Entorno de desarrollo
El entorno de desarrollo de Arduino es muy sencillo: consiste en un editor de texto en el que escribiremos el cdigo fuente de nuestros programas, una consola en la parte de abajo en la que podremos ver el estado de la compilacin o los errores, y una barra de herramientas en la parte superior:

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.

2.2.2. Lenguaje de programacin


Arduino est basado en Wiring, un proyecto de cdigo abierto que proporciona libreras de C y C++ con funciones especficamente hechas para microcontroladores ATMEL de 8 bits. Por tanto, en nuestros programas podremos utilizar todas las funciones de esta librera, que nos permiten que el micro ejecute las instrucciones que queramos sin necesidad de escribir ningn cdigo en ensamblador. En este manual se suponen conocimientos bsicos de C, y nos limitaremos a explicar las principales funciones de la librera de Arduino. Una particularidad que tiene el entorno de desarrollo de Arduino es que la funcin main() la define l mismo (se puede encontrar en arduino0010\hardware\cores\arduino\main). Por tanto, la estructura del programa que hagamos no ser la tpica de C, sino que deberemos seguir una estructura que tiene las siguientes partes: Declaracin de variables y funciones: en la cabecera del cdigo.

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();

for (;;) loop();

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

digitalWrite() valores sobre los pines que hayamos configurado como

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

delayMicroseconds(tiempo), en la que el retardo durar tiempo microsegundos.

Você também pode gostar