Bibliotecas são códigos que possuem um conjunto de instruções predefinidas. Elas servem para facilitar e simplificar a realização de algumas tarefas, principalmente, o controle de dispositivos externos ao Arduino. São compostas por 3 arquivos, sendo eles, os seguintes:
Para utilizar uma biblioteca padrão em seu sketch basta inclui-la (#include <nomeBiblioteca.h>) no inicio do código. Ou basta ir em Sketch→Incluir Biblioteca→nomeBiblioteca. Se a biblioteca não for uma padrão, primeiro você precisa adicioná-la na IDE. Para isso basta ir em Sketch→Incluir Biblioteca→Adicionar biblioteca .ZIP e selecionar o arquivo ZIP .
Para facilitar a vida do desenvolvedor, a IDE Arduino já vem com algumas bibliotecas implementadas. As Bibliotecas padrões vão desde o controle de um servo motor ao controle de um Shield. Abaixo se encontram alguns exemplos dessas bibliotecas:
Servo - Para o controle de servo motores.
SD - Para a leitura e escrita de cartões SD.
LCD - Para o controle de uma tela LCD.
WiFi - Para o conectar a internet utilizando um Shield de conexão WiFi.
Para saber mais sobre as bibliotecas padrões consulte: Bibliotecas
Para criar um biblioteca é bastante simples, basta criar os 3 arquivos citados anteriormente: uma header , uma source e um keyword. De exemplo iremos criar um novo Blink, tornando-o mais maleável.
A header é um arquivo de extensão .h, para criá-lo você pode utilizar a IDE de sua preferência. Nela criaremos as classes, com suas funções e variáveis, que será implementada na source, lembrando que a implementação é feita totalmente em C++.
/* NovoBlink.h */ //Diretivas necessária para a criação da header #ifndef nBlink #define nBlink #include "Arduino.h" //Inclusão de uma biblioteca para utilização das funções nativas do Arduino //Criação da Classe class n_blink{ public: n_blink(int pino); //Píno onde o blink será feito void iniciar(int tempoAcesso, int tempoApagado); //Inicia o blink com um tempo que ele ficará acesso private: int _pino; //Variável privada que guardará o número do pino }; #endif //Encerra a header
Na source temos que implementar as classes que foram criadas na header.
/* NovoBlink.c */ #include "Arduino.h" //Para utilização das funções nativas do Arduino #include "NovoBlink.h" //Inclusão da header //Implementação do Construtor da Classe n_blink::n_blink(int pino) { _pino = pino; //Adiciona o pino que será utilizado pinMode(_pino,OUTPUT); //Define ele como saida } //Implementação da função "iniciar" void n_blink::iniciar(int tempoAceso, int tempoApagado) { digitalWrite(_pino,HIGH); //Seta nivel lógico alto ao _pino delay(tempoAceso); // delay com o led aceso digitalWrite(_pino,LOW); //Seta nivel lógico baixo ao _pino delay(tempoApagado); // delay com o led apagado }
O arquivo de extensão txt não é obrigatória, no entanto, é importante para dar clareza a biblioteca criada, pois é possível dar coloração as funções. Existem dois tipos de coloração possíveis: a alaranjado, representada pela KEYWORDS1 e a azulada, representada pela KEYWORDS2. Ultiliza-se o laranja para as classes e azul para as funções.
/*
keywords.txt
*/
NovoBlink KEYWORDS1
n_blink KEYWORDS2
iniciar KEYWORDS2
Para facilitar na utilização da sua biblioteca, os criadores costumam criar exemplos de aplicação. Abaixo se encontra um exemplo da nossa:
/* NovoBlink_ex.ino */ //Inclui a biblioteca #include <NovoBlink.h> //Inicialização da Classe n_blink led(13); //Blink no led 13 void setup() { } void loop() { led.iniciar(100,200);// inicia o blink }
Por fim, junte todos os arquivos criados em uma pasta com o nome da biblioteca, sendo que os exemplos devem ser colocados dentro de uma pasta chamada exemplos. Pronto, sua biblioteca está criada. Para adicioná-la na IDE do Arduino, você pode colar a pasta diretamente na pasta libraries do arduino ou “zipa-lá” e adicionar pela interface da IDE.