Crear Librería para Arduino

En otros artículos, hemos visto como utilizar librería con Arduino. Estas librerías nos permite reutilizar código que nuestros proyectos sean más fáciles de realizar. En este artículo, vamos a crear una librería, para controlar 3 leds de manera sencilla a partir de una librería.

Como hemos dicho anteriormente, las razones de utilizar librerías son la reutilización de código y poder realizar modelos que controlen distintas funciones de nuestros proyectos. En este caso, la librería que vamos a crear, utiliza la Programación Orientada a Objetos. Para conocer más sobre la Orientación a Objetos, puede consultar la documentación sobre Arduino. En este caso, nos basaremos en C++, para crear una clase.

En primer lugar, vamos a definir nuestra clase que en este caso, vamos a crear 3 métodos que serán para encender o apagar los distintos leds; además de crear un constructor para establecer el número de pines de los 3 leds que hemos conectado. Seguidamente mostramos el código de la declaración de la clase. Este código estará guardado en un fichero .h. Este fichero lo guardaremos junto con el fichero de definición de esta clase:

/*
 * Este archivo define la clase para gestionar 3 leds.
 * En este archivo se declara la clase junto con los
 * metodos y propiedades de esta.
 * Autor: Booleanbite.com
 * Fecha: 14/12/2014.
 */
#include<Arduino.h>  //Librerias de Arduino
#define H HIGH //Indica que el estado es Alto
#define L LOW //Indica que el estado es Bajo
/*
 *Esta clase controla 3 leds para que podamos controlarlo
 */
class myLeds{
   private:
     byte _pin1; //Primer Pin
     byte _pin2;// Segundo Pin
     byte _pin3;//Tercer Pin
   public:
   myLeds(byte pin1,byte pin2, byte pin3); //Constructor. Se le pasan los numeros de los 3 leds
   ~myLeds(); //Destructor
   void changePin1(byte state); //Cambia el estado del primer pin
   void changePin2(byte state); //Cambia el estado del Segundo pin
   void changePin3(byte state); //Cambia el estado del Tercer pin
};

Como hemos dicho antes, este código lo guardaremos en un fichero con extensión .h. Este fichero lo utilizaremos para definir los métodos de esta clase. En un fichero .cpp. Este fichero lo crearemos a continuación.

/*
 * Este archivo contiene la definicion la clase para gestionar 3 leds.
 * En este archivo se define la clase.
 * Autor: Booleanbite.com
 * Fecha: 14/12/2014.
 */
#include <Arduino.h> //Librerias de Arduino.
#include "MyLeds.h" //Añadimos la declaracion de la clase
//Definicion del constructor
myLeds::myLeds(byte pin1, byte pin2, byte pin3){
  this->_pin1=pin1;
  this->_pin2=pin2;
  this->_pin3=pin3;
  pinMode(this->_pin1, OUTPUT);
  pinMode(this->_pin2, OUTPUT);
  pinMode(this->_pin3, OUTPUT);
}
//DEfinicion del destructor
myLeds::~myLeds(){}
//Definicion del primer metodo
void myLeds::changePin1(byte state){
   if(state==H){
     digitalWrite(this->_pin1,HIGH);
   }else{
     digitalWrite(this->_pin1,LOW);    
   } 
}
//Definicion del Segundo metodo
void myLeds::changePin2(byte state){
   if(state==H){
     digitalWrite(this->_pin2,HIGH);
   }else{
     digitalWrite(this->_pin2,LOW);    
   } 
}
//Definicion del tercer metodo
void myLeds::changePin3(byte state){
   if(state==H){
     digitalWrite(this->_pin3,HIGH);
   }else{
     digitalWrite(this->_pin3,LOW);    
   } 
}

En este fichero, vamos a guardar con extensión cpp. Como podemos ver, al inicio, hemos incluido el fichero de declaración .h. Es importante que este entre ” ya que eso indica que el fichero se encuentra junto al fichero .cpp. Una vez hecho esto, ya tendremos el código de nuestra librería. El siguiente paso, es crear el archivo comprimido para instalar la librería en nuestro IDE. para ello, simplemente ponemos los 2 archivos el .cpp y el .h en una misma carpeta y comprimimos esta.



Este archivo ZIP, nos permite instalar y utilizar la librería. Pudiendo hacer un ejemplo de como utilizar la librería. Recordamos que en el artículo de la Alarma con Arduino, Podéis encontrar como instalar y utilizar una librería. Os dejamos el código del sketch que utiliza esta librería.

#include <MyLeds.h>
 
 
myLeds led(8,9,10);
void setup() {
 
}
 
void loop() {
led.changePin1(H);
led.changePin2(H);
led.changePin3(H);
delay(1000);
led.changePin1(L);
led.changePin2(L);
led.changePin3(L);
delay(1000);
 
}

Este ejemplo realiza el Blink con los 3 leds. Con este código podemos decir que hemos terminado el ejemplo de librerías. sin embargo, arduino nos permite definir en cada librería como se mostrará la sintaxis de esta. De esta manera os permite poder definir las palabras reservadas de cada librería. Esto se realiza de manera automática gracias a un fichero especial llamado keywords.txt; en este fichero, vamos a definir las palabras reservadas. El esquema de este fichero es el siguiente:

myLeds	KEYWORD1
changePin1	KEYWORD1
changePin2	KEYWORD1
changePin3	KEYWORD1
H	KEYWORD2
L	KEYWORD2

Como podemos ver, se define en primer lugar la palabra reservada y después de un carácter tabulador(es importante que sea carácter tabulador y no espacios); por último, guardamos este fichero en la carpeta donde se encuentra la librería. De manera que cuando se cargue esta librería en el entorno de desarrollo se marquen las palabras reservadas. Os dejamos una captura de como quedaría.

Captura de pantalla 2014-12-14 a las 23.00.07

 

Con esta captura de pantalla, hemos terminado este pequeño tutorial de como crear una librería en Arduino. os dejamos este Enclace con la librería lista. Además podéis ver el código también desde nuestro GitHub.

Be the first to comment on "Crear Librería para Arduino"

Deja un comentario.

Tu dirección de correo no será publicada.


*


*