Curso Arduino Cefire Sesión 1
Curso Arduino Cefire Sesión 1
Curso Arduino Cefire Sesión 1
Sesin 1 (5 horas)
Sesin 1
CEFIRE
1.- Qu es Arduino? Modelos y shields disponibles. 2.- Caractersticas de ARDUINO UNO. 3.- Descarga del IDE e instalacin del driver. 4.- IDE de Arduino y programa ejemplo blink . 5.- Monitorizacin puerto Serial0 de Arduino.
IES JAUME I
Pgina 1
Plataforma ARDUINO
Sesin 1
CEFIRE
Por qu entonces utilizar Arduino? Qu caractersticas tiene Arduino que le dan ese plus en atractivo? Veamos: Asequible - Las placas Arduino son ms asequibles comparadas con otras plataformas de microcontroladores. La versin estndar (Arduino UNO) ronda los 22 + IVA. 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. Arduino est basado en el entorno de programacin Processing, un derivado de Java pero de cmoda recepcin de los que lleguen de C o C++. Software ampliable y de cdigo abierto- El software Arduino esta publicado bajo una licencia libre y preparado para poder ser ampliado por programadores experimentados. El lenguaje puede ampliarse a travs de libreras de C. Hardware ampliable y de Cdigo abierto - Arduino est basado en los microcontroladores ATMEL168, ATMEL328, ATMEL1280 y ATMEL2560. Los esquemas 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 su versin adaptndola a sus necesidades particulares. El modelo que utilizaremos en este curso y que en el siguiente punto, describiremos en profundidad, es el ARDUINO UNO (22 www.bricogeek.com)
IES JAUME I
Pgina 2
Plataforma ARDUINO
Sesin 1
CEFIRE
Adems del modelo ARDUINO UNO, que usaremos en este curso, existen multitud de modelos que se adaptan, continuamente, a situaciones concretas o simplemente que integran algn elemento que queremos usar como por ejemplo un modem bluetooth, una conexin wifi o Ethernet o simplemente queremos que sea muy pequeo o que consuma poco (consultar http://arduino.cc/en/Main/Hardware ). A fecha de realizacin de esta documentacin, algunos de los modelos Arduino disponibles ms conocidos son:
1. - Arduino MEGA
Es con mucha diferencia el ms potente y el que ms pines i/o tiene, apto para trabajos ya algo ms complejos aunque tengamos que sacrificar un poco el espacio, cuenta con el microcontrolador Atmega 2560 con ms memoria para el programa, ms RAM y ms pines que el resto de los modelos.
2. - Arduino Bluetooth
Incorpora un mdulo bluetooth para la transmisin de datos de hasta 100 metros. Se puede programar sin cables e interactuar con la placa en ejecucin desde cualquier dispositivo con bluetooth.
3. - Arduino Pro
Ms robusto y mejor acabado final; incorpora funcionalidades interesantes tales como un conector especial para conectar una batera LiPo y realizar un montaje porttil. Todos sus componentes son de superficie y su espesor total es menor que las otras placas Arduino.
IES JAUME I
Pgina 3
Plataforma ARDUINO
4.- Arduino Nano
Sesin 1
CEFIRE
Su principal ventaja es que puede ser pinchado directamente sobre una protoboard haciendo muy cmodo el prototipado al igual que el Arduino mini.
5.- Arduino Mini
Versin miniaturizada de la placa Arduino. Mide tan slo 30x18mm y permite ahorrar espacio en los proyectos que lo requieran. Las funcionalidades son las mismas que Arduino UNO salvo que slo se fabrica con el chip Atmega168 con 12Kb de memoria para programa. El bootloader es algo antiguo y tarda unos 10 segundos arrancar (en el UNO es prcticamente instantneo).
6.- Arduino Pro Mini
sta es una versin mejorada del Arduino Mini fabricada por Sparkfun que incluye un chip Atmega328 con 32Kb de ROM para programa. Es el modelo favorito para utilizar en proyectos donde las dimensiones son importantes. El modelo de la foto no incluye ningn conversor serie-usb por lo que para programarlo debemos utilizar un conversor con chip FTDI (o cable con FTDI), aunque existe una versin que si lo incluye.
Hemos visto unos cuantos modelos de Arduino, aunque an no hemos descrito con precisin ninguno. Ahora veremos las Shields o Escudos, que son tarjetas que podemos conectar a algunos modelos de Arduino (aunque existen algunas para el Arduino MEGA, casi todas estn destinadas para el Arduino UNO) para ampliar sus posibilidades o simplemente para ahorrarnos trabajo extra. Entre las Shields ms populares podemos encontrar:
Para dotar a Arduino de terminales de tornillo de 3,5 mm. Dispone de una zona central para conectar componentes y permite aadir otras shields encima. El pulsador reset est accesible.
IES JAUME I
Pgina 4
Plataforma ARDUINO
Sesin 1
CEFIRE
Permite al Arduino UNO controlar 4 rels (90W DC o 360V AC). Incluye un zcalo para un mdulo RFBee/XBee. Dado el consumo de los rels, es muy recomendable disponer de una alimentacin externa para alimentar la placa dado que el puerto USB no proporciona suficiente corriente.
La WiFly shield permite la conectividad Wifi a el Arduino UNO de forma fcil y eficaz. Utiliza el mdulo Wifi WiFly RN-131G de Roving Networks junto con un chip conversor de SPI/UART SC16IS750 que simplifica enormemente la tarea ya que se encarga de todo el protocolo y es capaz de conectarse a redes inalmbricas wifi 802.11b/g. La alimentacin es tomada del pin Vin del Arduino y regulada a 3,3V para alimentar el mdulo wifi. Para comunicarse con el mdulo se utiliza el protocolo SPI utilizando los pines digitales 10 a 13 (CS, MOSI, MISO y SCLK). La shield incluye el mdulo wifi RN-131G, SC16IS750 y todos los componentes necesarios para su funcionamiento. Tambin incorpora una pequea rea de prototipado donde se pueden soldar algunos componentes.
Con sta placa y la ayuda de la librera proporcionada, podremos realizar tanto un pequeo servidor web, como un cliente. La configuracin de red se realiza mediante software, por lo que podremos adaptar con facilidad la placa a nuestra red local. Dispone de un zcalo para tarjetas de memoria micro-SD para poder almacenar ficheros o servirlos como servidor web embedido. Tambin incluye un controlador de reset automtico para que el chip interno W5100 est bien reiniciado y listo para utilizar al arranque.
IES JAUME I
Pgina 5
Plataforma ARDUINO
Sesin 1
CEFIRE
Placa de comunicacin inalmbrica con el protocolo ZigBee. La placa contiene el mdulo serie 2 XBee XB24-BCIT-004 de MaxStream.
La placa dispone de un conector especfico para un mdulo receptor GPS EM-406 (no incluido). Estn disponibles en la placas todos los pines del receptor tales como RX, TX, PPS etc, as como una pequea rea de prototipado donde poder soldar algunos componentes.
Esta shield permite utilizar de forma fcil el mdulo de reconocimiento de voz EasyVR. A mayores de las prpias funcionalidades del mdulo EasyVR, la shield dispone de conectores adicionales para micrfono, salida de altavoz, lnea de audio con jack y acceso a los pines I/O del mdulo EasyVR. Tambin dispone de un LED programable para mostrar indicaciones durante el proceso de reconocimiento de voz.
Esta shield permite a una placa Arduino comunicarse mediante el bus CAN. Utiliza el controlador CAN MCP2515 de Microchip. La comunicacin se realiza mediante un conector sub-D de 9 pines para utilizar con un cable OBDII (no incluido) lo que la hace perfecta para aplicacin en automviles. La CAN-BUS Shield tambin dispone de un zcalo para tarjeta de memoria microSD, conexin para serial LCD y GPS tipo EM406.
IES JAUME I
Pgina 6
Plataforma ARDUINO
Sesin 1
CEFIRE
1.- Alimentacin Podemos utilizar: La alimentacin de la conexin USB PC (5V Limitada a 500 mA!!!) La conexin USB (la misma por la que programamos la placa) de Arduino tiene un polyfusible de proteccin que corta el suministro de corriente si se sobrepasa este valor. Cuando la sobrecorriente desaparece, el polyfusible se rearma. Es muy recomendable usar esta conexin de alimentacin solo para pequeas pruebas. El conector Jack. Podemos acceder a esta tensin mediante los pines Vin y GND. Entre 7V y 12V recomendado. Valores lmite entre 6V y 20V. El CI 7805, integrado en Arduino, tiene un limitador de corriente por cortocircuito y un limitador por temperatura. Soporta corrientes de hasta 1 A con disipador de potencia. Aconsejable no trabajar con corrientes superiores a 600 mA o 700 mA.
IES JAUME I
Pgina 7
Plataforma ARDUINO
Sesin 1
CEFIRE
Mediante la conexin simple Vin i GND. Si utilizamos el conector Jack o los pines Vin GND, deberemos usar una tensin recomendada de entre 7V y 12V, aunque los valores lmites son 6V y 20V.
Una vez alimentado, Arduino nos proporcionar 3.3V, 5V, Vin y GND (3 pines). En las primeras placas Arduino, la tensin de 3.3V la proporcionaba el IC FTDI (encargado de la conversin USB a Serie RS232-TTL) por lo que solo estaba disponible si se usa la alimentacin USB. Una de las novedades principales de la Arduino UNO es que no utiliza el conversor USB-serial FTDI, sino que lleva el microprocesador Atmega8U2 programado como conversor USB-serial y potencialmente programable para reconocer todo tipo de dispositivos USB. Cmo consecuencia, ahora tiene una transferencia por USB ms rpida y su propio identificador USB, con lo que al conectarla al PC aparecer automticamente como Arduino. Un led de ON, indica que la placa est alimentada de cualquiera de las anteriores formas descritas. Dispone tambin de un pin reset para resetear la placa llevndolo a tensin baja o GND. Esta accin se realiza normalmente con el pulsador que incorpora pero en ocasiones, no es accesible. En la prctica se puede alimentar la placa Arduino de cualquiera de estas formas descritas pero los elementos captadores o actuadores, se deben alimentar a parte con un sistema independiente. 2.- Entradas y Salidas digitales Estos 14 pines, tambin conocidos como GPIO o pines de propsito general, pueden ser utilizados como entradas digitales o como salidas digitales, aunque algunos de ellos (6 pines), pueden ser configurados, adems, como salidas analgicas o salidas PWM (Pulse Width Modulation). El pin 13 tiene incorporado un led que se activa cuando se activa el pin. Estn enumerados desde el pin 0 al pin 13. Los pines que pueden ser configurados como salidas PWM son: 3, 5, 6, 9,10 i 11.
Led pin 13 Leds pines TX RX
Algunos de estos pines digitales, tambin comparten funciones especficas adems de ser un GPIO.
Ricardo Carpio Richart IES JAUME I Pgina 8
Plataforma ARDUINO
Sesin 1
CEFIRE
Los pines 0 y 1, corresponden a los pines de transmisin (Tx) y recepcin (Rx) del puerto serie del microcontrolador. Se suelen utilizar para monitorizar variables por el monitor que lleva incorporado el IDE de Arduino. Es el mismo puerto USB por el que se programa. Los pines 2 y 3 son los encargados de testear las dos interrupciones externas de las que dispone el microcontrolador (INT 0 y INT 1) Los pines 10, 11, 12 y 13, realizan las funciones de los pines SS, MOSI, MISO y SCK respectivamente, en la comunicacin SPI con perifricos u otros microcontroladores, mediante la librera <spi.h>. Se deben configurar, por software, la funcin de cualquier GPIO que utilicemos mediante la instruccin pinMode(numero_pin, ESTADO); La constante ESTADO puede ser INPUT o OUTPUT (en la ltima versin del IDE de Arduino, la 1.01 tambin tenemos INPUT_PULLUP). Arduino dispone de resistencia de PULL-UP para cada GPIO que se pueden activar o desactivar mediante la instruccin digitalWrite (numero_pin, HIGH); o
digitalWrite (numero_pin, LOW);
Esta misma funcin se utiliza para escribir un estado digital alto o bajo en un pin de salida y para activar la resistencia de pull-up en un pin de entrada. 3.- Entradas analgicas Arduino UNO dispone de 6 pines (A0-A5) de entradas analgicas con una resolucin de 10 bits. Por tanto podremos leer el valor de tensin del pin y obtener valores entre 0 y 1023. Por defecto la tensin de referencia del conversor ADC es de 5V por lo que cuando tengamos 5V en el pin analgico y hagamos una lectura, obtendremos el valor mximo de 1023. Cuando la tensin sea 0V, obtendremos 0 en la lectura. La tensin de referencia se puede ajustar tambin mediante software (analogReference()) o utilizando una tensin externa mediante el pin AREF.
Pin AREF
Los 6 pines pueden usarse, sin perder funcionalidad, como cualquier pin de entrada/salida digital de propsito general (GPIO) (0-13). Los pines A4 y A5 se usan para las comunicaciones I2C como lneas SDA y SCL respectivamente mediante la librera <wire.h>. Las entradas analgicas A0-A5 no necesitan ser configuradas como entradas para ser usadas como entradas analgicas. Si es necesario configurarlas como entradas o salidas digitales, en caso de tratarlas como GPIO. En este caso, nos
IES JAUME I
Pgina 9
Plataforma ARDUINO
Sesin 1
CEFIRE
referiremos a ellas como GPIO desde el pin 14 al 19. Es decir si en nuestro proyecto agotamos los GPIO digitales, podremos usar los analgicos. Por ejemplo:
pinMode (14, OUTPUT); digitalWrite (14, HIGH); // activa la resistencia pullup en el pin analgico 0
Los pines analgicos, como vemos, tambin tienen resistencias pullup, las cuales funcionan igual que en los pines digitales. 4.- Salidas analgicas (PWM)
Como hemos comentado anteriormente, algunos GPIO digitales pueden actuar como salidas PWM o salidas moduladas en amplitud de pulso. Se trata de los pines 3, 5, 6, 9,10 i 11.
Para escribir un valor analgico en estos pines, los configuraremos primero como salidas y despus usaremos la funcin analogWrite(num_pin, valor);
donde valor es una variable entera de 1 byte que tomar valores desde 0 a 255. Cuando escribimos 0, en el pin tendremos 0V. Si escribimos 255, en el pin tendremos 5V
IES JAUME I
Pgina 10
Plataforma ARDUINO
Sesin 1
CEFIRE
Incluso puedes descargar cualquier versin anterior desde la 0001 hasta la 0023, que fue la antecesora de la versin, que a fecha de realizacin de esta documentacin, es hoy la definitiva, la 1.0. En el apartado release notes, podemos encontrar las diferencias que se han ido introduciendo en cada versin. El cdigo fuente del IDE est hospedado en GitHub.com.
Click!
Descargamos el archivo arduino-1.0-windows.zip para Windows que guarda tanto el IDE como los drivers para conectar a nuestro PC la tarjeta Arduino. Al descomprimir el archivo, observamos que guarda una carpeta llamada arduino-1.0.
IES JAUME I
Pgina 11
Plataforma ARDUINO
Sesin 1
CEFIRE
Descomprimimos la carpeta en nuestro ordenador, por ejemplo en la raz de nuestro disco duro y ya est. El IDE de Arduino no necesita una instalacin, pero si su driver.
En el interior de la carpeta encontramos el ejecutable arduino.exe que ejecutaremos ms tarde para arrancar el IDE. Conectamos la placa Arduino, a travs de un cable USB, a nuestro ordenador. Windows detectar un nuevo hardware y pedir instrucciones para instalar los drivers. Lo haremos de forma manual seleccionando la carpeta drivers que se encuentra en la carpeta arduino-1.0 anterior. Una vez instalados los drivers, podemos
IES JAUME I
Pgina 12
Plataforma ARDUINO
Sesin 1
CEFIRE
encontrar ya en nuestro ordenador, el puerto serie virtual Arduino. Lo podemos encontrar en el administrador de dispositivos de nuestro PC.
Si consultamos las propiedades de este nuevo puerto COM podemos observar que trabaja con un BaudRate de 9600 bps, con 8 bits de datos, sin paridad ni control de flujo y con un bit de parada. Ahora ya podemos ejecutar Arduino.exe y lanzar el IDE de Arduino, conectar la placa al ordenador y listo.
IES JAUME I
Pgina 13
Plataforma ARDUINO
Sesin 1
CEFIRE
rea de trabajo
rea de notificaciones
IES JAUME I
Pgina 14
Plataforma ARDUINO
Sesin 1
CEFIRE
a) Barra de mens
En la barra de mens observamos, en la parte superior, el nombre del sketch en el que estamos trabajando y la versin del IDE. Despus encontramos los siguientes mens:
Men File: a) New: Crear un sketch nuevo. b) Open: Abrir un sketch ya creado. Por defecto, localiza el ltimo sketch con el que se trabaj. c) Sketchbook: Nos da la posibilidad de abrir cualquier sketch guardado en la carpeta Arduino de la carpeta Documentos de nuestro PC. d) Examples: Acceso a todos los ejemplos incluidos en el IDE de Arduino. Los ejemplos los busca en la carpeta examples y libraries, de la carpeta Arduino donde tenemos guardado el IDE. e) Close: Cierra el sketch actual y el IDE. f) Save: Guardar con el mismo nombre que tiene, el sketch con el que trabajamos g) Save As: Guardamos el sketch en el que trabajamos con el nombre que queramos. El IDE de Arduino, crear una carpeta nueva con el nombre del sketch que hayamos elegido, en caso de no existir. h) Upload: Compila el Sketch en el que trabajamos y en caso de no tener errores y la tarjeta Arduino correctamente conectada, enva el ejecutable al microcontrolador de Arduino. i) Upload Using Programmer: Si queremos utilizar un programador externo (por ejemplo un AVR-ISP STK500 o un programador paralelo) podemos cargar un sketch en la placa Arduino sin necesidad de un gestor de arranque (bootloader). Nos permitir, esta opcin, utilizar el total de la memoria disponible en el chip de la Arduino y no tendremos el retraso causado por el gestor de arranque cada vez que arranque la placa. j) Page setup: Opciones de configuracin de pgina k) Print: Opciones de impresin. l) Preferences: podemos cambiar algunas opciones de nuestro IDE desde este men o modificando directamente el archivo Preferences.txt. Algunas de las ms importantes son, asociar los archivos *.ino a nuestro IDE, transformar automticamente los archivos antiguos de Arduino (*.pde) a los nuevos (*.ino) o canviar la localizacin de nuestro Sketchbook m) Quit: Salir del IDE.
IES JAUME I
Pgina 15
Plataforma ARDUINO
Sesin 1
CEFIRE
Men Edit: Las opciones son casi todas comunes a las de cualquier aplicacin que se ejecute en Windows y que disponga del men Edit. Las que no son tan habituales son: a) Copy for forum: Copia al portapapeles de Windows, el cdigo completo del sketch en el que estamos trabajando pero conservando el formato para poder pegarlo en foros b) Copy as HTML: Copia al portapapeles de Windows, el cdigo completo del sketch en el que estamos trabajando pero conservando el formato para poder pegarlo en la edicin de pginas web c) Comment/Uncomment: Previa seleccin de una o varias lneas de nuestro cdigo, con esta opcin podemos comentar la lnea (inserta // al principio) y el compilador no las interpretar. Si seleccionamos una lnea ya comentada, esta opcin las descomentar. d) Increase Indent: Seleccionamos una o varias lneas y esta opcin introduce a todas, un tabulador. e) Decrase Indent: Seleccionamos una o varias lneas y esta opcin elimina a todas, un tabulador. Men Sketch: a) b)
Verify/Compile: Compila el sketch en el que estamos trabajando Show Sketch Folder: Muestra en
carpeta el archivo que contiene el sketch en el que estamos trabajando. c) Add File: Para tener ms de un sketch abierto en el mismo IDE. Aparecen varias pestaas con el nombre de los sketch. Los que llevan el carcter al final del nombre, es porque han sido modificados y no han sido guardados. d) Import Library: Nos ayuda a aadir las librerias que tenemos disponibles, en
nuestro sketch. Para poder insertar una librera en nuestro cdigo, es necesario que la tengamos guardada en la carpeta libraries. En el entorno Arduino, una librera es
IES JAUME I
Pgina 16
Plataforma ARDUINO
Sesin 1
CEFIRE
Men Tools: a) Auto Format: Establece adecuadamente las tabulaciones para nuestro sketch b) Archive Sketch: Comprime todos los sketch abiertos en el IDE y los guarda por defecto en la carpeta Arduino de la carpeta documentos de nuestro PC. Crea un nico archivo *.zip c) Fix Encoding & Reload: Compila y carga el sketch en el que estamos trabajando, descartando todos los cambios efectuados desde la ltima vez que se guard. d) Serial Monitor: Abre un sistema de monitorizacin que nos permite visualizar datos enviados por el microcontrolador o enviarlos al microcontrolador. En el ltimo punto de este captulo, haremos una descripcin de esta importante herramienta. e) Board: Escogemos el tipo de placa Arduino con la que estamos trabajando. f) Serial Port: Escogemos el puerto donde tenemos conectado la placa Arduino. g) Programmer: Escogemos el tipo de programador en caso de que no usar la propia placa Arduino como programador. h) Burn Bootloader: Nos da la posibilidad de grabar el bootloader de Arduino en un microcontrolador para poder usar el IDE de Arduino. Men Help: a) Getting Started: Abre la Gua de Inicio del sitio web de Arduino. Esta gua est guardada en el propio IDE de Arduino. No necesita conexin a internet. b) Environment: Abre la guia del IDE de Arduino. c) Troubleshooting: Abre la guia de resolucin de problemas. d) Reference: Abre la guia de referencias del lenguaje utilizado por Arduino. e) Find in Reference: Bsqueda de algn trmino en la gua de referencias. f) Frequently Asked Questions: Abre la gua de preguntas ms frecuentes. g) Visit Arduino.cc: Conecta a travs de internet con el sitio oficial de Arduino que es http://arduino.cc
IES JAUME I
Pgina 17
Plataforma ARDUINO
Sesin 1
CEFIRE
Algunas de las opciones anteriormente descritas, tienen asociados accesos directos debajo de la barra de mens. Estos 6 accesos directos o iconos son: Verify Upload Open Save New Serial Monitor
b) rea de trabajo El rea de trabajo es la zona editable del IDE de Arduino donde escribiremos nuestro cdigo para posteriormente, compilarlo y transferirlo a la placa. En el entorno Arduino podemos tener tantas funciones como queramos (definidas por el usuario) pero como mnimo tendremos dos: setup() y loop().
El cdigo situado en la funcin setup(), se ejecutar solo una vez, al iniciarse el sistema, es decir, al arrancar el microcontrolador (no confundir con el bootloader). Se suelen configurar los GPIO como entradas o salidas en esta funcin o inicializar algn dispositivo. El cdigo que situemos en la funcin loop() en cambio, se ejecutar indefinidamente (loop significa lazo en ingls). Ms adelante, describiremos como definir nuestras propias funciones y como utilizarlas en nuestros proyectos. En el entorno Arduino, las palabras reservadas por el compilador, cambian automticamente de formato. Otra caracterstica es el tratamiento diferenciado de las letras maysculas y minsculas.
IES JAUME I
Pgina 18
Plataforma ARDUINO
Sesin 1
CEFIRE
c)
rea de notificaciones El rea de notificaciones es la zona del IDE de Arduino donde el compilador nos dar informacin sobre posibles errores, qu placa tenemos conectada y a qu puerto. Tambin nos indica en que lnea tenemos el cursor dentro del rea de trabajo.
2.- Programa ejemplo Blink En 1972 Dennis Ritchie y Brian W. Kernighan publicaron El lenguaje de programacin C. 40 aos despus, es considerado como el inicio de la programacin en alto nivel, base de la mayora de los lenguajes que hoy conocemos y donde aparece el famoso ejemplo de Hello World. Desde entonces es habitual nombrar, como lo hicieron Dennis y Brian, Hola Mundo cuando se realiza la primera prueba en cualquier lenguaje de programacin. En el mundo de la computacin fsica, el equivalente a Hello World es Blink (parpadear en ingles), alternar entre un estado alto y bajo en un pin digital configurado como salida. A continuacin vamos a cargar nuestro Blink en nuestro Arduino. Abrimos el IDE de Arduino y hacemos: Men File Examples 1.Basics Blink
Ahora conectamos
IES JAUME I
Pgina 19
Plataforma ARDUINO
Sesin 1
CEFIRE
nuestra placa Arduino al puerto USB de nuestro ordenador. En el men Tools elegimos nuestro modelo de Arduino:
Board
Seleccionamos el puerto com asociado a nuestro Arduino desde el men Tools Serial Port Arduino UNO
Ya lo tenemos todo preparado para compilar el programa y enviarlo a la placa Arduino pero antes comentaremos el cdigo para irnos familiarizando con las intrucciones.
Descripcin Es opcional
IES JAUME I
Pgina 20
Plataforma ARDUINO
Sesin 1
CEFIRE
a) Descripcin: Se puede empezar el cdigo con una breve descripcin de la funcionalidad de nuestro sketch. Siempre ayudar a un posible lector o a ti mismo en un futuroOPEN SOURCE!!! Fijmonos que utilizamos las instrucciones /* y */ para introducir comentarios de mas de una linea. b) Funcin Setup(): Esta funcin se ejecuta solo una vez al arrancar el sistema. En este caso solo la utilizamos para configurar el GPIO 13 de nuestro Arduino UNO, como salida. Utilizamos la funcin pinMode para ello. Cuando el comentario ocupa una sola linea utilizamos la doble barra //
El pin 13 tiene un led conectado en la propia placa en casi todos los modelos de Arduino. c) Funcin loop(): Esta funcin se ejecutar mientras la placa est alimentada y no est en reset. Con la funcin digitalWrite, escribimos un estado alto en el pin 13 (si medimos la tensin en el pin, mediremos 5V).
Despues hacemos que el microcontrolador espere un tiempo con la funcin delay. Esta funcin provoca una espera en milisegundos en funcin del parmetro utilizado en su llamada. Mas adelante comentaremos cosas de esta famosa pero peligrosa funcin. Pasada la espera, escribimos un estado bajo en el mismo pin (si medimos la tensin en el pin, mediremos 0V) y antes de volver a escribir un estado alto, volvemos a realizar una pequea espera de 1000 milisegundos. Si consideramos que esta funcin se ejecuta indefinidamente, ya tenemos el parpadeo del pin como queramos. Ahora compilamos el sketch y lo mandamos a la placa mediante el icono de upload. Despues de unos segundos de transferencia y de arranque del sistema, observaremos que el led conectado al pin 13 de nuestro Arduino, empieza a oscilar con una frecuencia de 0.5 Hz. Un segundo ON, un segundo OFF Hello World !!! Ahora puedes modificar el cdigo y observar las consecuencias. Por ejemplo puedes cambiar maysculas por minsculas, cambiar el parmetro de la funcin delay o introducir una espera en la funcin setup. Siempre observando los mensajes del compilador, en cuanto a posibles errores al compilar o corroborando los cambios, en el comportamiento de la placa, ejecutando nuestro cdigo en ella.
IES JAUME I
Pgina 21
Plataforma ARDUINO
Sesin 1
CEFIRE
Configuracin
Hay que tener en cuenta al utilizar Serial Monitor algunas cosas: a) Cuando conectamos el monitor, la placa de Arduino se resetea. b) Hay que configurar la velocidad de comunicacin desde nuestro sketch y desde el propio monitor. No tienen porque coincidir con la velocidad del puerto serie virtual que tenemos en nuestro PC para programar el microcontrolador.
c) Hay que tener mucho cuidado con los tipos de datos de las variables que utilizamos y con las conversiones que el compilador realiza de forma automtica. Sobre todo hay que tener en cuenta que slo podemos enviar desde el monitor al microcontrolador, caracteres. A continuacin vamos a modificar el sketch blink para poder interactuar con nuestra placa Arduino utilizando, Serial Monitor. Diferenciaremos dos casos: a) Monitorizar datos enviados desde el microcontrolador de la placa Arduino (ya sean mensajes de texto o variables). b) Enviar datos desde nuestro PC al microcontrolador de la placa Arduino.
IES JAUME I
Pgina 22
Plataforma ARDUINO
Sesin 1
CEFIRE
a) Monitorizar datos enviados desde el microcontrolador de la placa Arduino Vamos a realizar unas modificaciones para que nos envie un mensaje indicando el estado del led
Ahora compilamos el sketch modificado, lo enviamos a la placa y conectamos el monitor Arduino nos habla! Vamos a modificar el cdigo para que Arduino nos envie el valor de una variable, no un mensaje de texto. Declaramos una variable de tipo boolean y le asignamos el valor 1
Enviamos a Serial Monitor el valor de la variable estado, esta vez sin retorno de carro
IES JAUME I
Pgina 23
Plataforma ARDUINO
Sesin 1
CEFIRE
b) Enviar datos desde nuestro PC al microcontrolador de la placa Arduino Ahora enviaremos un dato desde Serial Monitor y nuestra placa Arduino lo procesar y actuar en consecuencia. Declaramos una variable de tipo entero y le asignamos el valor 1000 Declaramos una variable de tipo carcter
Realizamos una espera del valor almacenado en la variable retardo Enviamos a Serial Monitor el valor de la variable retardo para comprobar que ha sido actualizada Si conectamos el Serial Monitor del IDE de Arduino, comprobaremos que nos enva el valor del retardo que en principio toma el valor de 1000. Si ahora nosotros enviamos el carcter r o l, observaremos que la variable retardo, cambia de valor y en consecuencia, la placa de Arduino cambia su comportamiento. Un detalle importante: no ha sido necesario incluir ninguna librera de momento en nuestro cdigo para utilizar el puerto serie o la funcin delay.
IES JAUME I
Pgina 24