Está en la página 1de 24

Plataforma ARDUINO

Sesin 1

CEFIRE

INDICE
Sesin 1 (5 horas)

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.

1.- Qu es Arduino? Modelos y shields disponibles.


Arduino no es ms que un Microcontrolador ATMEL AVR al que se le ha dotado de los
elementos necesarios para liberar al usuario, de las tediosas tareas que hasta ahora, tena que
afrontar antes de empezar un proyecto con microcontroladores como:
a) Escoger el software de programacin.
b) Que este lenguaje se adapte al Microcontrolador, es decir, buscar el compilador
adecuado.
c) Escoger el software y hardware para el envo del ejecutable al dispositivo.
d) Buscar libreras para controlar dispositivos concretos (servos, lcd,) que se adapten a
nuestro microcontrolador y al lenguaje escogido.
e) Sistema de alimentacin y reloj para la estabilidad del microcontrolador en
funcionamiento.
En definitiva, Arduino facilita la tarea
de programar un microcontrolador al
extremo, de forma que el usuario se puede
centrar nicamente, en el desarrollo del
proyecto (programacin, depuracin,
cableado)
El lenguaje de programacin de
Arduino es una implementacin de
Processing que es un lenguaje de
programacin de cdigo abierto y basado
en Java, orientado a objetos. El hardware se
basa en una plataforma de computacin
fsica, denominada Wiring.
Existen otras placas de computacin fsica que incluyen algn tipo de microcontrolador
como la Basic Stamp de Parallax, que fue la pionera.

Ricardo Carpio Richart

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)

Ricardo Carpio Richart

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.

Ricardo Carpio Richart

IES JAUME I

Pgina 3

Plataforma ARDUINO

Sesin 1

CEFIRE

4.- Arduino Nano

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:

1.- Arduino SCREWSHIELD

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.

Ricardo Carpio Richart

IES JAUME I

Pgina 4

Plataforma ARDUINO

Sesin 1

CEFIRE

2.- Arduino Relay Shield

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.

3.- Arduino Wifi Shield

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.

4.- Arduino Ethernet Shield

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.

Ricardo Carpio Richart

IES JAUME I

Pgina 5

Plataforma ARDUINO

Sesin 1

CEFIRE

5.- Arduino XBEE Shield

Placa de comunicacin inalmbrica con


el protocolo ZigBee. La placa contiene el
mdulo serie 2 XBee XB24-BCIT-004 de
MaxStream.

6.- Arduino GPS Shield

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.

7.- EASYVR ARDUINO SHIELD

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.

8.- Arduino CAN BUS- Shield

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.

Ricardo Carpio Richart

IES JAUME I

Pgina 6

Plataforma ARDUINO

Sesin 1

CEFIRE

2.- Caractersticas de Arduino UNO.


Arduino UNO (antes Diecimila y Duemilanova) es el modelo ms vendido de
todos los modelos Arduino. Est basado en el microcontrolador ATmega328 de 8 bits
(ATMEL AVR). Veamos una descripcin de sus conexiones:

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.

Ricardo Carpio Richart

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

Ricardo Carpio Richart

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

5.- Pulsador reset


La placa Arduino dispone de un pulsador normalmente abierto
que lleva el pin de reset del microcontrolador ATmega328 a masa. Es
posible resetear el microcontrolador llevando el conector reset a masa
desde el exterior.

6.- Conector ICSP


Cuando programamos Arduino desde el IDE,
necesitamos que el microcontrolador que utiliza la placa lleve
el bootloader ya programado. Una vez programado, podemos
utilizar el puerto USB del PC, para programar el
microcontrolador Atmega328 de Arduino a travs de su
puerto serie (previa intervencin del Atmega8U2). Esta programacin es a baja velocidad
(comunicacin serie asncrona). El ICSP o "In Circuit Serial Programmer" es un mtodo de
acceso a la memoria de programa del microcontrolador. Sirve, en un
principio, para poder programar el bootloader de Arduino en el proceso
de fabricacin, aunque tambin lo podemos utilizar nosotros para
programar el Atmega328 de Arduino. Esta programacin necesita de
algn dispositivo externo pero ofrece una mayor velocidad que la
programacin por el puerto USB mediante el IDE de Arduino. Como el microcontrolador no
necesita tener instalado el bootloader, el programa arrancar de forma inmediata cuando
pongamos el Arduino a trabajar. El chip ATmega8U2 en su placa Arduino acta como un
puente entre el puerto USB del ordenador y el puerto serie del microcontrolador
principal. Este microcontrolador tambin dispone de un conector ICSP. A travs de l,
podemos actualizar su software a travs de un protocolo especial USB llamado DFU (Device
Firmware Update). Desde www.arduino.cc se describe como actualizar el software de su
Atmega8U2 en unos pocos pasos.

Ricardo Carpio Richart

IES JAUME I

Pgina 10

Plataforma ARDUINO

Sesin 1

CEFIRE

3.- Descarga del IDE e instalacin del driver.


Visitando la web oficial de Arduino (www.arduino.cc) en el apartado download,
podemos descargar la ltima versin del IDE de Arduino para los sistemas operativos
Windows, Mac OS X y Linux de 32 bits y 64 bits.

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.

Ricardo Carpio Richart

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

Ricardo Carpio Richart

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.

Ricardo Carpio Richart

IES JAUME I

Pgina 13

Plataforma ARDUINO

Sesin 1

CEFIRE

4.- IDE de Arduino y programa ejemplo blink.


Al arrancar por primera vez el IDE de Arduino (integrated development environment),
aparece en la barra superior, el ttulo del archivo en blanco que tenemos en edicin.
En el entorno Arduino, los archivos que se manejan se denominan sketch (dibujo en
castellano). Por defecto el IDE
nombra secuencialmente los sketch
que se van creando con la palabra
sketch seguido de la fecha y una letra.
Por ejemplo si el 1 de abril creamos
un sketch nuevo, el IDE lo nombrar
sketch_apr01a si es el primero del
da, sketch_apr01b si es el segundo
del da y as sucesivamente. Al
guardar el sketch en el que se est
trabajando, el IDE crea una carpeta con el nombre del sketch, en la carpeta Arduino, en la
carpeta Documentos de nuestro PC. Dentro de esta carpeta est el archivo que contiene el
cdigo que por defecto se llamar como el sketch acabado con la extensin *.ino

1.- Descripcin IDE Arduino 1.0


El IDE de Arduino 1.0 tiene 3 zonas claramente diferenciadas
Barra de mens

rea de trabajo

rea de
notificaciones

Ricardo Carpio Richart

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.

Ricardo Carpio Richart

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

una carpeta con al menos dos archivos (*.h y *.cpp o *.c)

Ricardo Carpio Richart

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

Ricardo Carpio Richart

IES JAUME I

Pgina 17

Plataforma ARDUINO

Sesin 1

CEFIRE

h) About Arduino: Muestra informacin sobre los creadores de Arduino.

Algunas de las opciones anteriormente descritas, tienen asociados


accesos directos debajo de la barra de mens. Estos 6 accesos directos o iconos
son:
Verify

Open

New

Upload

Save

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.

Ricardo Carpio Richart

IES JAUME I

Pgina 18

Plataforma ARDUINO

c)

Sesin 1

CEFIRE

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

Ricardo Carpio Richart

IES JAUME I

Pgina 19

Plataforma ARDUINO

Sesin 1

CEFIRE

nuestra placa Arduino al puerto USB de nuestro ordenador. En el men Tools  Board
elegimos nuestro modelo de Arduino:

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

Funcin Setup()
Se ejecuta una
vez

Funcin loop()
Se ejecuta
indefinidamente

Ricardo Carpio Richart

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.

Ricardo Carpio Richart

IES JAUME I

Pgina 21

Plataforma ARDUINO

Sesin 1

CEFIRE

5.- Monitorizacin del puerto Serial0 de Arduino.


Una poderosa herramienta que nos ofrece el IDE de Arduino es Serial Monitor.
Nos da la posibilidad de monitorizar el puerto serie del microcontrolador de la placa.
Desde all podremos visualizar variables en tiempo de ejecucin o enviar datos desde
el exterior al microcontrolador, sin necesidad de cablear ningn elemento externo
como pulsadores, potencimetros o pantallas LCD. Es una herramienta que nos
ayudar en el futuro, a encontrar errores en nuestros programas.
Para enviar datos al
microcontrolador

Para visualizar datos


del microcontrolador

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.

Ricardo Carpio Richart

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

Iniciamos la comunicacin a 9600 bps

Enviamos un mensaje de texto seguido


de un retorno de carro

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

Escribimos en el pin de salida 13


el valor de la variable estado

Asignamos a la variable estado,


su valor contrario

Enviamos a Serial Monitor el


valor de la variable estado, esta
vez sin retorno de carro

Ahora compilamos el sketch modificado, lo enviamos a la placa y conectamos el


monitor.

Ricardo Carpio Richart

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

Comprobamos si tenemos algn dato en el buffer de entrada


del puerto serie

Leemos el puerto y guardamos la lectura


en la variable caracter

En funcin del carcter ledo, asignamos


un valor diferente a la variable retardo

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.

Ricardo Carpio Richart

IES JAUME I

Pgina 24

También podría gustarte