Está en la página 1de 26

Tema 1 ARDUINO IES Jaume I

INDICE

1.- Qué es Arduino? Modelos y shields


disponibles.

2.- Características de ARDUINO UNO.

3.- Descarga del IDE e instalación del driver.

4.- IDE de Arduino y programa ejemplo blink.

5.- Monitorización puerto Serial0 de Arduino.

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


Arduino no es más que un Microcontrolador ATMEL al que se le ha dotado de los
elementos necesarios para liberar al usuario, de las tediosas tareas que hasta hace poco, tenía
que afrontar antes de empezar un proyecto con microcontroladores como:

a) Escoger el software de programación.


b) Que este lenguaje se adapte al Microcontrolador, es decir, buscar el compilador
adecuado.
c) Escoger el software y hardware para el envío del ejecutable al dispositivo.
d) Buscar librerías para controlar dispositivos concretos (pantallas, motores,…) que se
adapten a nuestro microcontrolador y al lenguaje escogido.
e) Sistema de alimentación 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
(programación, depuración, cableado…)

El lenguaje de programación de Arduino


es una implementación de Processing que
es un lenguaje de programación de código
abierto y basado en Java, orientado a
objetos. Es muy parecido al lenguaje C. El
hardware se basa en una plataforma de
computación física, denominada Wiring.

Existen otras placas de computación


física que incluyen algún tipo de microcontrolador como la Basic Stamp de Parallax, que fue la
pionera.

Ricardo Carpio Richart IES JAUME I Página 1


Tema 1 ARDUINO IES Jaume I

¿Por qué entonces utilizar Arduino? ¿Qué características tiene Arduino que le dan ese plus en
atractivo? Veamos:

Asequible - Las placas Arduino son más asequibles comparadas con otras plataformas de
microcontroladores. La versión estándar (Arduino UNO) ronda los 22€ + IVA.

Multi-Plataforma - El software de Arduino funciona en los sistemas operativos Windows,


Macintosh OSX y Linux. La mayoría de los entornos para microcontroladores están limitados a
Windows.

Entorno de programación simple y directo - El entorno de programación de Arduino es


fácil de usar para principiantes y lo suficientemente flexible para los usuarios avanzados.
Arduino está basado en el entorno de programación Processing, un derivado de Java pero de
cómoda recepción de los que lleguen de C o C++.

Software ampliable y de código abierto - El software Arduino está publicado bajo una
licencia libre (Creative Commons) y preparado para poder ser ampliado por programadores
experimentados. El lenguaje puede ampliarse a través de librerías de C.

Hardware ampliable y de Código abierto - Arduino está basado en los microcontroladores


ATMEL168, ATMEL328, ATMEL1280 y ATMEL2560. Los esquemas de los módulos están
publicados bajo licencia Creative Commons, por lo que diseñadores de circuitos con
experiencia pueden hacer su propia versión del módulo, ampliándolo u optimizándolo. Incluso
usuarios relativamente inexpertos pueden construir su versión adaptándola a sus necesidades
particulares.

El modelo que utilizaremos en este curso y que en el siguiente punto, describiremos en


profundidad, es el ARDUINO UNO (28€ www.bricogeek.com)

Ricardo Carpio Richart IES JAUME I Página 2


Tema 1 ARDUINO IES Jaume I

Además del modelo ARDUINO UNO, que usaremos en este curso, existen multitud de
modelos que se adaptan, continuamente, a situaciones concretas o simplemente que integran
algún elemento que queremos usar como por ejemplo un modem bluetooth, una conexión wifi
o Ethernet o simplemente queremos que sea muy pequeño o que consuma poco (consultar
http://arduino.cc/en/Main/Hardware ). A fecha de realización de esta documentación, algunos
de los modelos Arduino disponibles más conocidos son:

- Arduino MEGA

Es con mucha diferencia el más


potente y el que más pines i/o tiene, apto
para trabajos ya algo más complejos aunque
tengamos que sacrificar un poco el espacio,
cuenta con el microcontrolador Atmega 2560
con más memoria para el programa, más RAM
y más pines que el resto de los modelos.

- Arduino Bluetooth

Incorpora un módulo bluetooth para la


transmisión de datos de hasta 100 metros. Se
puede programar sin cables e interactuar con la
placa en ejecución desde cualquier dispositivo
con bluetooth.

Ricardo Carpio Richart IES JAUME I Página 3


Tema 1 ARDUINO IES Jaume I

- Arduino Pro

Más robusto y mejor acabado final; incorpora


funcionalidades interesantes tales como un conector
especial para conectar una batería LiPo y realizar un
montaje portátil. Todos sus componentes son de
superficie y su espesor total es menor que las otras
placas Arduino.

- Arduino Nano

Su principal ventaja es que puede ser pinchado


directamente sobre una protoboard haciendo muy
cómodo el prototipado al igual que el Arduino mini.

- Arduino Mini

Versión miniaturizada de la placa Arduino. Mide tan sólo


30x18mm y permite ahorrar espacio en los proyectos que lo
requieran. Las funcionalidades son las mismas que Arduino UNO
salvo que sólo 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 prácticamente
instantáneo).

- Arduino Pro Mini

Ésta es una versión 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 ningún
conversor serie-usb por lo que para programarlo debemos
utilizar un conversor con chip FTDI (o cable con FTDI),
aunque existe una versión que si lo incluye.

Hemos visto unos cuantos modelos de Arduino, aunque aún no hemos descrito con
precisión 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 están destinadas para el Arduino UNO) para ampliar sus posibilidades o simplemente
para ahorrarnos trabajo extra. Entre las Shields más populares podemos encontrar:

Ricardo Carpio Richart IES JAUME I Página 4


Tema 1 ARDUINO IES Jaume I

- Arduino SCREWSHIELD
Para dotar a Arduino de terminales de tornillo de
3,5 mm. Dispone de una zona central para conectar
componentes y permite añadir otras shields encima. El
pulsador reset está accesible.

- Arduino Relay Shield

Permite al Arduino UNO controlar 4 relés


(90W DC o 360V AC). Incluye un zócalo para un
módulo RFBee/XBee.
Dado el consumo de los relés, es muy
recomendable disponer de una alimentación
externa para alimentar la placa dado que el
puerto USB no proporciona suficiente corriente.

- Arduino Wifi Shield

La WiFly shield permite la conectividad


Wifi a el Arduino UNO de forma fácil y eficaz.
Utiliza el módulo 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 inalámbricas wifi 802.11b/g.
La alimentación es tomada del pin Vin
del Arduino y regulada a 3,3V para alimentar
el módulo wifi. Para comunicarse con el
módulo se utiliza el protocolo SPI utilizando
los pines digitales 10 a 13 (CS, MOSI, MISO y
SCLK). La shield incluye el módulo wifi RN-
131G,
SC16IS750 y todos los componentes
necesarios para su funcionamiento. También
incorpora una pequeña área de prototipado
donde se pueden soldar algunos componentes.

Ricardo Carpio Richart IES JAUME I Página 5


Tema 1 ARDUINO IES Jaume I
- Arduino Ethernet Shield

Con ésta placa y la ayuda de la librería


proporcionada, podremos realizar tanto un
pequeño servidor web, como un cliente. La
configuración de red se realiza mediante software,
por lo que podremos adaptar con facilidad la placa
a nuestra red local. Dispone de un zócalo para
tarjetas de memoria micro-SD para poder
almacenar ficheros o servirlos como servidor web
embedido. También incluye un controlador de
reset automático para que el chip interno W5100
esté bien reiniciado y listo para utilizar al arranque.

- Arduino XBEE Shield


Placa de comunicación inalámbrica con el
protocolo ZigBee. La placa contiene el módulo serie
2 XBee XB24-BCIT-004 de MaxStream.

- Arduino GPS Shield


La placa dispone de un conector
específico para un módulo receptor GPS
EM-406 (no incluido). Están disponibles en
las placas todos los pines del receptor tales
como RX, TX, PPS etc, así como una
pequeña área de prototipado donde poder
soldar algunos componentes.

Ricardo Carpio Richart IES JAUME I Página 6


Tema 1 ARDUINO IES Jaume I

- EASYVR ARDUINO SHIELD

Esta shield permite utilizar de forma


fácil el módulo de reconocimiento de voz
EasyVR. A mayores de las propias
funcionalidades del módulo EasyVR, la shield
dispone de conectores adicionales para
micrófono, salida de altavoz, línea de audio
con Jack y acceso a los pines I/O del módulo
EasyVR. También dispone de un LED
programable para mostrar indicaciones
durante el proceso de reconocimiento de voz.

- Arduino CAN BUS- Shield

Esta shield permite a una placa Arduino


comunicarse mediante el bus CAN. Utiliza el
controlador CAN MCP2515 de Microchip. La
comunicación se realiza mediante un conector
sub-D de 9 pines para utilizar con un cable
OBDII (no incluido) lo que la hace perfecta
para aplicación en automóviles. La CAN-BUS
Shield también dispone de un zócalo para
tarjeta de memoria microSD, conexión para
serial LCD y GPS tipo EM406.

Tanto los modelos de Arduino aquí descritos como las shields que hemos visto,
son una muestra de lo que el mercado cambiante nos ofrece. Para estar al tanto de los
nuevos modelos que continuamente van apareciendo, se recomienda visitar la página
web oficial de Arduino, en su apartado de productos:
https://www.arduino.cc/en/Main/Products

Ricardo Carpio Richart IES JAUME I Página 7


Tema 1 ARDUINO IES Jaume I

2.- Características de Arduino UNO.


Arduino UNO (antes Diecimila y Duemilanova) es el modelo más vendido de
todos los modelos Arduino. Está basado en el microcontrolador ATmega328 de 8 bits
(ATMEL AVR). Veamos una descripción de sus conexiones:

2.1.- Alimentación

Podemos utilizar:

• La alimentación de la conexión USB PC (5V Limitada a 500 mA!!!)


La conexión USB (la misma por la que programamos la placa) de Arduino tiene
un polyfusible de protección que corta el suministro de corriente si se
sobrepasa este valor. Cuando la sobrecorriente desaparece, el polyfusible se
rearma. Es muy recomendable usar esta conexión de alimentación solo para
pequeñas pruebas.
• El conector Jack. Podemos acceder a esta tensión mediante los pines Vin y
GND. Entre 7V y 12V recomendado. Valores límite 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.

• Mediante la conexión simple Vin i GND.


Si utilizamos el conector Jack o los pines Vin GND, deberemos usar una tensión
recomendada de entre 7V y 12V, aunque los valores límites son 6V y 20V.

Ricardo Carpio Richart IES JAUME I Página 8


Tema 1 ARDUINO IES Jaume I

Una vez alimentado, Arduino nos proporcionará 3.3V,


5V, Vin y GND (3 pines). En las primeras placas Arduino, la
tensión de 3.3V la proporcionaba el IC FTDI (encargado de la
conversión USB a Serie RS232-TTL) por lo que solo estaba
disponible si se usa la alimentación 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. Cómo
consecuencia, ahora tiene una transferencia por USB más rápida y su propio
identificador USB, con lo que al conectarla al PC aparecerá automáticamente como
Arduino. Un led de ON, indica que la placa está alimentada de cualquiera de las
anteriores formas descritas.

Dispone también de un pin reset para resetear la placa llevándolo a tensión


baja o GND. Esta acción se realiza normalmente con el pulsador que incorpora pero en
ocasiones, no es accesible.

En la práctica 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 (recomendable).

2.2.- Entradas y Salidas digitales

Estos 14 pines, también conocidos como GPIO o pines de propósito general,


pueden ser utilizados como entradas digitales o como salidas digitales, aunque algunos
de ellos (6 pines), pueden ser configurados, además, como “salidas analógicas” o
salidas PWM (Pulse Width Modulation). El pin 13 tiene incorporado un led que se
activa cuando se activa el pin 13.

Están 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

Led’s pines
TX RX

Ricardo Carpio Richart IES JAUME I Página 9


Tema 1 ARDUINO IES Jaume I

Algunos de estos pines digitales, también comparten funciones específicas


además de ser un GPIO.
Los pines 0 y 1, corresponden a los pines de transmisión (Tx) y recepción (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 comunicación SPI con periféricos u otros microcontroladores, mediante la
librería <spi.h>.

Se debe configurar, por software, la función de cualquier GPIO que utilicemos


mediante la instrucción pinMode (numero_pin, ESTADO); La constante ESTADO
puede ser INPUT u OUTPUT (en la última versión del IDE de Arduino, la 1.01 también
tenemos INPUT_PULLUP).

2.3.- Entradas analógicas

Arduino UNO dispone de 6 pines (A0-A5) de


entradas analógicas con una resolución de 10 bits. Por
tanto podremos leer el valor de tensión del pin y
obtener valores entre 0 y 1023. Por defecto la tensión
de referencia del conversor ADC es de 5V por lo que
cuando tengamos 5V en el pin analógico y hagamos una
lectura, obtendremos el valor máximo de 1023. Cuando
la tensión sea 0V, obtendremos 0 en la lectura. La
Pin AREF
tensión de referencia se puede ajustar también
mediante software (analogReference()) o utilizando una tensión
externa mediante el pin AREF.

Los 6 pines pueden usarse, sin perder funcionalidad, como cualquier pin de
entrada/salida digital de propósito general (GPIO) (0-13).
Los pines A4 y A5 se usan para las comunicaciones I2C como líneas SDA y SCL
respectivamente mediante la librería <wire.h>.
Las entradas analógicas A0-A5 no necesitan ser configuradas como entradas
para ser usadas como entradas analógicas. Si es necesario configurarlas como entradas
o salidas digitales, en caso de tratarlas como GPIO. En este caso, nos referiremos a
ellas como GPIO desde el pin 14 al 19. Es decir si en nuestro proyecto agotamos los
GPIO digitales, podremos usar los analógicos.

Ricardo Carpio Richart IES JAUME I Página 10


Tema 1 ARDUINO IES Jaume I

2.4.- Salidas analógicas (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 analógico en estos pines, los configuraremos primero como salidas
y después usaremos la función 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

2.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.

2.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 través de su
puerto serie (previa intervención del Atmega8U2). Esta programación es a baja velocidad
(comunicación serie asíncrona). El ICSP o "In Circuit Serial Programmer" es un método de
acceso a la memoria de programa del microcontrolador. Sirve, en un
principio, para poder programar el bootloader de Arduino en el proceso
de fabricación, aunque también lo podemos utilizar nosotros para
programar el Atmega328 de Arduino. Esta programación necesita de
algún dispositivo externo pero ofrece una mayor velocidad que la
programación 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 actúa como un
puente entre el puerto USB del ordenador y el puerto serie del microcontrolador principal.
Este microcontrolador también dispone de un conector ICSP. A través de él, podemos
actualizar su software a través 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 Página 11


Tema 1 ARDUINO IES Jaume I

3.- Descarga del IDE e instalación del driver.


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

Incluso puedes descargar cualquier versión anterior desde la 0001 hasta la 0023, que
fue la antecesora de la versión, que a fecha de realización de esta documentación, es hoy la
definitiva, la 1.0. En el apartado release notes, podemos encontrar las diferencias que se han
ido introduciendo en cada versión. El código 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 Página 12


Tema 1 ARDUINO IES Jaume I

Descomprimimos la carpeta en nuestro ordenador, por ejemplo en la raíz de nuestro


disco duro y ya está. El IDE de Arduino no necesita una instalación, pero si su driver.

En el interior de la carpeta encontramos el ejecutable arduino.exe que ejecutaremos


más tarde para arrancar el IDE. Conectamos la placa Arduino, a través 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 encontrar ya en
nuestro ordenador, el puerto serie virtual Arduino. Lo podemos encontrar en el administrador
de dispositivos de nuestro PC.

Ricardo Carpio Richart IES JAUME I Página 13


Tema 1 ARDUINO IES Jaume I

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 Página 14


Tema 1 ARDUINO IES Jaume I

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 título del archivo en blanco que tenemos en
edición. En el entorno Arduino, los archivos que se manejan se denominan sketch (dibujo en
inglés). Por defecto el IDE nombra secuencialmente los sketch que se van creando con la

Barra de Menús

Área de Trabajo

Área de Notificaciones

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 día, sketch_apr01b si es el
segundo del día 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
código que por defecto se llamará como el sketch acabado con la extensión *.ino

Ricardo Carpio Richart IES JAUME I Página 15


Tema 1 ARDUINO IES Jaume I

4.1.- Descripción IDE Arduino 1.0

Barra de Menús
En la barra de menús observamos, en la parte superior, el nombre del sketch en el que
estamos trabajando y la versión del IDE. Después encontramos los siguientes menús: File, Edit,
Sketch, Tools y Help

Menú File

 New: Crear un sketch nuevo.


 Open: Abrir un sketch ya creado. Por defecto, localiza el último sketch con el que se
trabajó.
 Sketchbook: Nos da la posibilidad de abrir cualquier sketch guardado en la carpeta
Arduino de la carpeta Documentos Windows.
 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.
 Close: Cierra el sketch actual y el IDE.
 Save: Guardar con el mismo nombre que tiene, el sketch con el que trabajamos
 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.
 Upload: Compila el Sketch en el que trabajamos y en caso de no tener errores y la
tarjeta Arduino correctamente conectada, envía el ejecutable al microcontrolador de
Arduino.
 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

Ricardo Carpio Richart IES JAUME I Página 16


Tema 1 ARDUINO IES Jaume I

opción, 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.
 Page setup: Opciones de configuración de página
 Print: Opciones de impresión.
 Preferences: podemos cambiar algunas opciones de nuestro IDE desde este menú o
modificando directamente el archivo Preferences.txt. Algunas de las más importantes
son, asociar los archivos *.ino a nuestro IDE, transformar automáticamente los archivos
antiguos de Arduino (*.pde) a los nuevos (*.ino) o cambiar la localización de nuestro
Sketchbook
 Quit: Salir del IDE.

Menú Edit

Las opciones son casi todas comunes a las de cualquier aplicación que se ejecute en
Windows y que disponga del menú Edit. Las que no son tan habituales son:

 Copy for forum: Copia al portapapeles de Windows, el código completo del sketch en
el que estamos trabajando pero conservando el formato para poder pegarlo en foros
 Copy as HTML: Copia al portapapeles de Windows, el código completo del sketch en
el que estamos trabajando pero conservando el formato para poder pegarlo en la
edición de páginas web
 Comment/Uncomment: Previa selección de una o varias líneas de nuestro código, con
esta opción podemos comentar la línea (inserta // al principio) y el compilador no las
interpretará. Si seleccionamos una línea ya comentada, esta opción las descomentará.
 Increase Indent: Seleccionamos una o varias líneas y esta opción introduce a todas, un
tabulador.
 Decrase Indent: Seleccionamos una o varias líneas y esta opción elimina a todas, un
tabulador.

Ricardo Carpio Richart IES JAUME I Página 17


Tema 1 ARDUINO IES Jaume I

Menú Sketch

 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.
 Add File: Para tener más de un sketch abierto en el mismo IDE. Aparecen varias
pestañas con el nombre de los sketch. Los que llevan el carácter § al final del
nombre, es porque han sido modificados y no han sido guardados.
 Import Library: Nos ayuda a añadir las librerías que tenemos disponibles, en
nuestro sketch. Para poder insertar una librería en nuestro código, es necesario que la
tengamos guardada en la carpeta libraries. En el entorno Arduino, una librería es una
carpeta con al menos dos archivos (*.h y *.cpp o *.c)

Menú Tools

 Auto Format: Establece adecuadamente las tabulaciones para nuestro


sketch
 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
 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ó.
 Serial Monitor: Abre un sistema de monitorización que nos permite visualizar
datos enviados por el microcontrolador o enviarlos al microcontrolador. En el
último punto de este capítulo, haremos una descripción de esta importante
herramienta.
 Board: Escogemos el tipo de placa Arduino con la que estamos trabajando.
 Serial Port: Escogemos el puerto donde tenemos conectado la placa Arduino.

Ricardo Carpio Richart IES JAUME I Página 18


Tema 1 ARDUINO IES Jaume I

 Programmer: Escogemos el tipo de programador en caso de que no usar la


propia placa Arduino como programador.
 Burn Bootloader: Nos da la posibilidad de grabar el bootloader de Arduino en
un microcontrolador para poder usar el IDE de Arduino.

Menú Help

 Getting Started: Abre la Guía de Inicio del sitio web de Arduino. Esta guía está
guardada en el propio IDE de Arduino. No necesita conexión a internet.
 Environment: Abre la guía del IDE de Arduino.
 Troubleshooting: Abre la guía de resolución de problemas.
 Reference: Abre la guía de referencias del lenguaje utilizado por Arduino.
 Find in Reference: Búsqueda de algún término en la guía de referencias.
 Frequently Asked Questions: Abre la guía de preguntas más frecuentes.
 Visit Arduino.cc: Conecta a través de internet con el sitio oficial de Arduino que
es http://arduino.cc
 About Arduino: Muestra información sobre los creadores de Arduino.

Algunas de las opciones anteriormente descritas, tienen asociados accesos


directos debajo de la barra de menús. Estos 6 accesos directos o iconos son:

Save

Verify New Open


Upload Serial Monitor

Ricardo Carpio Richart IES JAUME I Página 19


Tema 1 ARDUINO IES Jaume I

Área de Trabajo
El área de trabajo es la zona editable del IDE de Arduino donde escribiremos
nuestro código para posteriormente, compilarlo y transferirlo a la placa. En un
programa de Arduino, podemos tener tantas funciones como queramos (definidas por
el usuario) pero como mínimo tendremos dos: setup () y loop ().

El código situado en la función 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
función o inicializar algún dispositivo. El código que situemos en la función loop () en
cambio, se ejecutará indefinidamente (loop significa lazo en inglés). Más adelante,
describiremos como definir nuestras propias funciones y como utilizarlas en nuestros
proyectos.
En el entorno Arduino, las palabras reservadas por el compilador,
cambian automáticamente de formato. Otra característica es el tratamiento
diferenciado de las letras mayúsculas y minúsculas.

Área de Notificaciones
El área de notificaciones es la zona del IDE de Arduino donde el compilador nos
dará información sobre posibles errores, qué placa tenemos conectada y a qué puerto.
También nos indica en que línea tenemos el cursor dentro del área de trabajo.

Ricardo Carpio Richart IES JAUME I Página 20


Tema 1 ARDUINO IES Jaume I

4.2.- Programa ejemplo blink


En 1972 Dennis Ritchie y Brian W. Kernighan, publicaron “El lenguaje de
programación C”. 40 años después, es considerado como el inicio de la programación
en alto nivel, base de la mayoría 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 programación. En el mundo de la programación física, el
equivalente a “Hello World” es “Blink” (parpadear en inglés), alternar entre un estado
alto y bajo en un pin digital configurado como salida. A continuación vamos a cargar
nuestro “Blink” en nuestro Arduino. Abrimos el IDE de Arduino y hacemos:
Menú File > Examples > 1.Basics > Blink

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

Ricardo Carpio Richart IES JAUME I Página 21


Tema 1 ARDUINO IES Jaume I

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 código para irnos familiarizando con el código.
Descripción.
Es opcional

Función Setup ()
Se ejecuta una
vez

Función loop ()
Se ejecuta
indefinidamente

a) Descripción: Se puede empezar el código con una breve descripción de la


funcionalidad de nuestro sketch. Siempre ayudará a un posible lector o a ti
mismo en un futuro…OPEN SOURCE!!!
Fijémonos que utilizamos las instrucciones /* y */ para introducir comentarios
de más de una línea.
b) Función Setup (): Esta función 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 función pinMode para ello. Cuando el
comentario ocupa una sola línea utilizamos la doble barra //

Ricardo Carpio Richart IES JAUME I Página 22


Tema 1 ARDUINO IES Jaume I

El pin 13 tiene un led conectado en la propia placa en casi todos los


modelos de Arduino.
c) Función loop (): Esta función se ejecutará mientras la placa esté alimentada y
no esté en reset. Con la función digitalWrite, escribimos un estado alto en el
pin 13 (si medimos la tensión en el pin, mediremos 5V).

Después hacemos que el microcontrolador espere un tiempo con la


función delay. Esta función provoca una espera en milisegundos en función del
parámetro utilizado en su llamada. Más adelante comentaremos cosas de esta
famosa pero peligrosa función. Pasada la espera, escribimos un estado bajo en
el mismo pin (si medimos la tensión en el pin, mediremos 0V) y antes de volver
a escribir un estado alto, volvemos a realizar una pequeña espera de 1000
milisegundos. Si consideramos que esta función se ejecuta indefinidamente, ya
tenemos el parpadeo del pin como queríamos.

Ahora compilamos el sketch y lo mandamos a la placa mediante el icono de


upload. Después 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 código y observar las consecuencias. Por ejemplo
puedes cambiar mayúsculas por minúsculas, cambiar el parámetro de la función delay
o introducir una espera en la función 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 código en ella.

5.- Monitorización del puerto Serial0 de Arduino.


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

Ricardo Carpio Richart IES JAUME I Página 23


Tema 1 ARDUINO IES Jaume I

Para enviar datos al


microcontrolador

Para visualizar datos


del microcontrolador

Configuración

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 comunicación desde nuestro sketch y desde el


propio monitor. No tienen por qué 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 automática. Sobre todo hay
que tener en cuenta que sólo podemos enviar desde el monitor al microcontrolador,
caracteres.

A continuación vamos a modificar el sketch blink para poder interactuar con nuestra
placa Arduino utilizando, Serial Monitor. Diferenciaremos dos casos:

Monitorizar datos enviados desde el microcontrolador de la placa


Arduino (ya sean mensajes de texto o variables) hacia el PC

Enviar datos desde nuestro PC al microcontrolador de la placa


Arduino

Ricardo Carpio Richart IES JAUME I Página 24


Tema 1 ARDUINO IES Jaume I

Monitorizar datos enviados desde el microcontrolador de la placa


Arduino (ya sean mensajes de texto o variables) hacia el PC
Vamos a realizar unas modificaciones para que nos envíe un mensaje de
texto indicando el estado del led

Iniciamos la comunicación 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 Serial monitor… ¡Arduino nos habla!

Vamos a modificar el código para que Arduino nos envíe el valor de una
variable, no un mensaje de texto.

Declaramos una variable de tipo


boolean y le asignamos el valor 1

Escribim os 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 Página 25


Tema 1 ARDUINO IES Jaume I

Enviar datos desde nuestro PC al microcontrolador de la placa


Arduino
Declaramos una variable de tipo
entero y le asignamos el valor 1000

Declaramos una variable de tipo carácter

Comprobamos si tenemos algún dato en el buffer de entrada


del puerto serie

Leemos el puerto y guardamos la lectura


en la variable caracter

En función del carácter leído, 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


envía el valor del retardo que en principio toma el valor de 1000. Si ahora nosotros
enviamos el carácter ‘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 librería de


momento en nuestro código para utilizar el puerto serie o la función delay.

Ricardo Carpio Richart IES JAUME I Página 26

También podría gustarte