Está en la página 1de 9

Trabajo en clase

Programacin III

Nombre: Michelle Salazar C


Nivel: 3BE

Libreras de Arduino
LAS LIBRERAS: QU SON Y PARA QU SIRVEN

En el mundo del software, una librera es una coleccin de programas que facilita la
ejecucin de una serie de funciones relacionadas entre s. Por ejemplo, las funciones que
facilitan la escritura en una pantalla LCD o las que nos permiten calcular la posicin de
un sistema de navegacin GPS.
Las libreras de software funcionan de la misma manera que una biblioteca tradicional.
En el mundo de Arduino, una librera es una coleccin de funciones que se incluyen de
una manera muy sencilla y explcita en tu sketch y que proporciona una cierta
funcionalidad especfica. Una misma librera puede usarse en varios proyectos
diferentes.
Algunas libreras se pueden utilizar sin necesidad de extender el Arduino con otros
dispositivos, mientras que otras necesitan ser utilizadas con componentes electrnicos
adicionales, a menudo bajo la forma de shields (escudos = componentes adicionales
de mayor o menor complejidad, pero que cubren una funcin especfica).
Hay tres diversos tipos de libreras de Arduino: base, estndar, y contribuciones
(contributed librairies). [1]

LIBRERA DE BASE (CORE LIBRARY)

La biblioteca de la base forma parte del entorno de desarrollo del Arduino (IDE). El
propsito de esta librera es ocultar mucha de la complejidad que tradicionalmente
implica el trabajar con el microprocesador.
En efecto, esta es una de las razones aducidas ms frecuentemente por principiantes y
usuarios experimentados sobre la dificultad de trabajar con microprocesadores
tradicionales. Esta librera de base (core) es una de las grandes ventajas del Arduino al
hacerlo fcilmente accesible a todos los usuarios.
Los diseadores del Arduino desarrollaron esta librera a partir de las peticiones de los
estudiantes e incluye aquellas acciones que son ms comunes.
La mayora de los proyectos leen datos de una de las entradas o escriben datos en una de
las salidas. La librera core hace que estas tareas comunes sean simples ejecutar. Por

ejemplo, para leer el valor de un pin digital basta con usar la funcin digitalRead (por
otra parte, el nombre es fcil de recordar).
En el captulo precedente (funciones) hemos visto todas las funciones de base (core) que
constituyen el ncleo del Arduino. A continuacin vamos a pasar revista a las
libreras estndar que forman parte del IDE del Arduino.

LIBRERAS ESTNDAR

Al descargar Arduino (IDE), se incluyeron algunas libreras estndar con la instalacin.


Las libreras estndar son aquellas que el equipo de desarrollo de Arduino estim que
seran necesarias para los desarrollos de muchos usuarios.
Estas libreras no se incluyen como opcin por defecto en tus sketches, tienes que
cargarlas una por una (aquellas que necesites). De esta manera se utilizan los recursos
de memoria del Arduino con mayor eficiencia al cargar nicamente aquellas libreras
que vas a usar en tu sketch.
Para incluir un librera basta con aadir una declaracin #include al comienzo del
sketch. Por ejemplo, si quieres incluir la librera de cristal lquido, que se utiliza para
exhibir datos en una pantalla LCD, basta con incluir la siguiente declaracin al principio
de tu sketch:
#include <LiquidCrystal.h>
Observa que el nombre de la librera tiene que ir limitado por los corchetes
menor/mayor: < y >. Adems hay que notar que la lnea no termina con un punto y
coma (;) como es la norma en las dems lneas de cdigo.
A continuacin veremos las diferentes libreras estndar:
1. Librera ArduinoTestSuite
2. Librera EEPROM
3. Librera SD
4. Librera Ethernet
5. Librera Firmata
6. Librera LiquidCrystal
7. Librera Servo
8. Librera Stepper
9. Librera SPI
10. Librera Wire
11. Librera SoftwareSerial

PROGRAMACIN EN UN ENTORNO DE TEST: ARDUINOTESTSUITE

La manera en que los programas y aplicaciones para Arduino se escriben est sujeta a
una continua evolucin y mejora. La innovacin ms reciente consiste en un entorno de
programacin llamado test-driven-development (TDD, desarrollo bajo test).
En TDD, un proyecto de software se divide en pequeos mdulos, y antes de escribir un
mdulo dado, estableces las pruebas (tests) que verifican el funcionamiento de cada
funcin del mdulo.
Cuando finalmente escribes el mdulo, se ejecuta bajo un entorno de test que
comprueba que los resultados obtenidos por el mdulo son los descritos en el entorno de
test que definiste previamente. Si no es as corriges los errores y vuelves a ejecutar el
mdulo en el entorno de test.
Cuando un mdulo ha pasado los tests, desarrollas el siguiente mdulo de la misma
manera y as hasta que el proyecto haya sido completado. Si ms tarde tienes que
modificar uno de los mdulos lo ejecutas bajo el entorno de test hasta que funcione de
acuerdo con las especificaciones.
La biblioteca ArduinoTestSuite es el primer paso para implantar esta metodologa TDD
en el Arduino. Se trata de una librera relativamente nueva, pero se considera como
esencial para el futuro del desarrollo en Arduino. [1]
La librera ArduinoTestSuite proporciona mtodos estndar y funciones que se pueden
utilizar para probar sus sketches antes de cargarlos en el Arduino. De esta manera nos
aseguramos de que el sketch funcione segn lo previsto antes de usarlo en el mundo real
con costosos dispositivos que pueden ser daados si se utilizan incorrectamente.
La librera est todava en fase de desarrollo, pero tiene actualmente tests para los
procesos listados en la tabla siguiente:
TEST

DESCRIPTION

ATS_begin

Inicia el proceso de test

ATS_end

Termina el proceso de test

ATS_Test_DigitalPin

Testea un pin de entrada digital dado

ATS_Test_PWM

Testea la salida PWM

TEST

DESCRIPTION

ATS_Test_AnalogInput

Testea la entrada analogical

USANDO LA EEPROM COMO SISTEMA DE ALMACENAMIENTO DE


DATOS

La memoria EEPROM es un tipo de memoria de slo lectura que puede ser borrada y
reescrita mediante la aplicacin de una tensin elctrica y al mismo tiempo conserva los
datos almacenados incluso tras desconectar la alimentacin de la placa del
microprocesador. [2]
La cantidad de EEPROM en un Arduino depende del microprocesador de base que
lleve.El cuadro siguiente muestra la cantidad (en octetos o bytes) de memoria EEPROM
disponible en diversos Arduinos.
MICROPROCESADOR

EEPROM MEMORY (BYTES)

ATMega8 and ATMega168

512

ATMega328

1,024

ATMega1280 and ATMega2560

4,096

CMO ES UNA LIBRERA POR DENTRO

Los sketches en Arduino utilizan C++ como lenguaje de programacin, la mayor parte
de la complejidad interna del Arduino queda enmascarada por las funciones disponibles
en las diferentes libreras escritas en C++.
Una librera est constituida por al menos una clase C++. Una clase consiste en dos
ficheros: un fichero cabecera (header con una extensin .h) y un fichero con una
extension .cpp.
El fichero de cabecera (extensin .h o header) es una especie de mapa de la
librera: declara las funciones de la librera y la descripcin de la clase. El
fichero .cpp contiene el detalle de la librera: el cdigo de las funciones y las
variables declaradas en el fichero header. [1]

LAS BIBLIOTECAS ESTNDAR

EEPROM - leer y escribir en el almacenamiento "permanente"


Ethernet - para la conexin a Internet utilizando el Arduino Ethernet Shield
Firmata - para comunicarse con aplicaciones en el equipo utilizando un
protocolo serie estndar.
GSM - para la conexin a una red / GRPS GSM con el escudo GSM.
LiquidCrystal - para el control de pantallas de cristal lquido (LCD)
SD - para la lectura y escritura de tarjetas SD
Servo - para el control de servomotores
SPI - para comunicarse con los dispositivos que utilizan la interfaz perifrica
serie (SPI) Autobs
SoftwareSerial - para la comunicacin serie en cualquiera de los pines
digitales. Versin
1.0 y posterior de Arduino incorporan Mikal
Hart biblioteca NewSoftSerial 's como SoftwareSerial.
Paso a paso - para el control de motores paso a paso
TFT - para la elaboracin de texto, imgenes y formas en la pantalla TFT de
Arduino
WiFi - para la conexin a Internet utilizando el escudo Arduino WiFi
Wire - interfaz de dos cables (TWI / I2C) para enviar y recibir datos a travs de
una red de dispositivos o sensores. [3]

CONTRIBUCIONES

Mensajero - para procesar mensajes de texto desde el ordenador


NewSoftSerial - una versin mejorada de la biblioteca SoftwareSerial
OneWire - dispositivos de control (de Dallas Semiconductor) que utilizan el
protocolo de un cable.
PS2Keyboard - leer caracteres desde un teclado PS2.
Sistema de mensaje simple - enviar mensajes entre Arduino y el ordenador
SSerial2Mobile - enviar mensajes de texto o mensajes de correo electrnico
utilizando un telfono celular (a travs de comandos AT ms de serie del
software)
Webduino - biblioteca de servidor web extensible (para su uso con el escudo
Arduino Ethernet)
X10 - Envo de seales X10 a travs de lneas de alimentacin de CA
XBee - para comunicarse con XBees en modo API
SerialControl - Control remoto otros Arduinos a travs de una conexin en serie

Ejemplos de uso

VISUALIZANDO DATOS USANDO LA LIBRERA LIQUIDCRYSTAL

Muy frecuentemente queremos visualizar la informacin generada no en la pantalla del


PC, sino en una pequea pantalla LCD de 2 filas de 6 caracteres para mostrar la
informacin a los usuarios de la aplicacin (sin necesidad de disponer de un PC).
La mayor parte de estas pequeas pantallas LCD se basan en el Hitachi HD44780 u otro
microprocesador compatible. La pantalla LCD puede servirnos para mostrar datos del
GPS, mensajes de situacin del sistema, y cualquier otra informacin til para el usuario
o el programador. [2]
La herramienta que necesitamos para poder usar estas pantallas desde nuestro sketch es
la librera LiquidCrystal. La siguiente tabla enumera algunas de las funciones
disponibles en la librera.
FUNCIN

DESCRIPCIN

Begin

Establece las dimensiones en filas y columnas de la pantalla LCD

LiquidCrystal

Inicializa la librera y determina los pins usados para comunicar con la


pantalla LCD

Print

Visualiza datos en la pantalla LCD

Clear

Borra los contenidos de la pantalla LCD

setCursor

Posiciona el cursor sobre la pantalla

REANDO MS PUERTAS SERIE CON SOFTWARESERIAL

Muchos de los proyectos que podemos realizar con el Arduino requieren al menos una
puerta serie. Los dispositivos GPS, las pantallas LCD y otros dispositivos necesitan
conectarse a una puerta serie. Esta puerta consiste en dos conexiones: una RX para
recibir mensajes y una TX para enviarlos.
La utilidad de esta puerta radica en su simplicidad. En el pasado todos los ordenadores
tenan una o varias puertas serie. De hecho, el Arduino original usaba una puerta serie
para conectarse al ordenador y, aunque actualmente la conexin se realiza a travs de un
USB, lo hace a travs de una emulacin de puerta serie (que vista desde el ordenador es
una conexin serie). [4]
Los Arduino Uno y Duemilanove tienen una puerta serie conectado a los pines digitales
0 y 1, pero si tu proyecto necesita conectarse a ms dispositivos serie (por ejemplo un
GPS y un display LCD) puedes hacer dos cosas: comprarte el Arduino Mega (o

compatible) que tiene 4 puertas serie o usar la librera SoftwareSerial que se distribuye
con el entorno de desarrollo del Arduino (IDE).
La librera original solo proporcionaba una puerta software adicional adems de la
puerta hardware de serie y su velocidad estaba limitada a 9600 baudios. Estas
limitaciones fueron superadas por la nueva librera NewSoftSerial escrita por Mikal
Hart que fue incorporada por el equipo de desarrollo del Arduino a medidos de 2011
como la nueva SoftwareSerial. La siguiente tabla muestra las funciones incluidas en esta
librera:

FUNCIN

DESCRIPCIN

Begin

Activa la puerta y establece la velocidad de transmisin en baudios

Available

Comienza a usar la puerta

isListening

Devuelve la puerta active en este momento

listen

Escucha a ese puerta y lo activa

end

Termina el uso de ese puerta

read

Lee datos de la puerta

write

Escribe datos en la puerta

Esta nueva librera puede crear varias puertas serie software que pueden comunicar a
velocidades de hasta 115,000 baudios. Pero toda esta funcionalidad adicional tiene un
precio: el Arduino slo puede escuchar o recibir datos de una puerta serie software a la
vez (sin embargo, s que puede transmitir por varias simultneamente).
Cuando uses la librera con ms de una puerta serie software tienes que planificar
cuidadosamente tu sketch y el orden en el que recibirs los datos.
Consideremos un ejemplo: quieres conectar un GPS y un termmetro usando puertas
serie software. Los dispositivos GPS suelen enviar sus datos en paquetes espaciados un
segundo entre s, de manera que tu sketch puede comenzar escuchando la puerta serie
software y una vez ha recibido el primer paquete de datos pasar a escuchar la otra puerta
software, procesar sus datos y devolver la escucha al GPS.

Este sketch muestra cmo funciona esto en la prctica:


#include <SoftwareSerial.h>
SoftwareSerial gpsPort(2, 3);
SoftwareSerial thermPort(4, 5);
void setup()
{ gpsPort.begin(9600);
thermPort.begin(9600);
}
void loop()
{
gpsPort.listen();
while (gpsPort.available() > 0)
{ char inByte = gpsPort.read();
}
thermPort.listen();
while (thermPort.available() > 0)
{ char inByte = thermPort.read();
}
}
La librera SoftwareSerial es una contribucin fantstica a tu entorno de desarrollo, pero
se debe tener cuidado al usarla con ms de una puerta software.

UTILIZACIN DE UNA LIBRERA EN UN SKETCH

El siguiente sketch muestra como la librera DetMet sera usada desde un sketch, con el
Arduino conectado al detector de metales equipado de un sensor MetDet:
#include "MetDet.h"
MetDet myMetDet

// (1) Incluye librera MetDet


// (2) Inicializa instancia de la clase MetDet

void setup()
{
// Inicializa el sensor MetDet
myMetDet.begin();
}
void loop()
{
// Actualiza lectura del sensor
myMetDet.update()
}

Bibliografa
[1 Prometec, Gua de Programacin de Arduino III, [En lnea]. Available:
] http://www.prometec.net/funciones-iii/. [ltimo acceso: 21 Julio 2016].
[2 Annimo, Gestionando las libreras, [En lnea]. Available:
] http://www.prometec.net/librerias/. [ltimo acceso: 21 Julio 2016].
[3 Arduino, Writing a Library for Arduino, [En lnea]. Available:
] https://www.arduino.cc/en/Hacking/LibraryTutorial. [ltimo acceso: 21
Julio 2016].
[4 J. V. . Martn, Explicando tecnologa, 13 Junio 2012. [En lnea].
] Available: http://explicandotecnologia.blogspot.com/2012/06/anadir-yusar-librerias-con-arduino.html. [ltimo acceso: 21 Julio 2016].