========Bibliotecas======= =====O que são e como funcionam ?===== 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: * uma //header//, ou um cabeçalho, com extensão “.h” que contém todas as funções e as variáveis que serão implementadas * uma //source//, ou arquivo fonte, com extensão “.ccp” que contém as implementações das funções e variáveis. * um arquivo com extensão “.txt” chamado de //keyword// que tem o propósito de determinar a cor para as funções da bibliotecas. // // Para utilizar uma biblioteca padrão em seu //sketch// basta inclui-la (**//#include //**) 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** . // // =====Bibliotecas Padrões===== 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: **[[https://www.arduino.cc/en/Reference/Servo|Servo]]** - Para o controle de servo motores. **[[https://www.arduino.cc/en/Reference/SD|SD]]** - Para a leitura e escrita de cartões SD. **[[https://www.arduino.cc/en/Reference/LiquidCrystal|LCD]]** - Para o controle de uma tela LCD. **[[https://www.arduino.cc/en/Reference/WiFi|WiFi]]** - Para o conectar a internet utilizando um //**Shield**// de conexão WiFi. Para saber mais sobre as bibliotecas padrões consulte: [[https://www.arduino.cc/en/Reference/Libraries|Bibliotecas]] =====Como criar uma biblioteca===== 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. ====1º Passo: Criando a header==== 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 ====2º Passo: Criando a source==== 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 } ====2º Passo: Criando o keyword==== 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 ====4º Passo: Criando exemplos==== 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 //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.