Tanto pra quem é iniciante ou pra quem já conhece um pouco o Arduino, vão existir problemas em se usar um sensor, um módulo etc. Porém, existem as bibliotecas justamente para ajudar nessa parte.

Na aula anterior, vimos como usar o monitor serial.


O que são

As bibliotecas são basicamente um conjunto de funções prontas que te auxiliam a usar um determinado componente/módulo. Você já deve ter reparado que o Arduino é repleto de funções, como a gente viu nas aulas anteriores. E essas funções simplificam a programação, já que os comandos são simples e diretos.

Por exemplo, o comando original para se definir uma porta como saída no PIC é TRISBbits.TRISB0=0; (define o pino RB0 como saída). E no Arduino é o pinMode(pino, OUTPUT). Ou seja, não se parece nada um com o outro. Isso porque o Arduino possui bibliotecas que já são inclusas e que fornecem esses comandos.

Vantagem

Caso fossemos programar o atmega328p (microcontrolador presente no Arduino UNO), seria necessário usar os comandos básicos dele (igual ao PIC). Comandos esses que atrapalham a vida de quem é iniciante e quer aprender sobre microcontroladores.

Porém, a biblioteca já presente no Arduino cria diversas formas para a gente poder acessar esses comandos de maneira muito prática e fácil. Isso faz o aprendizado ser mais tranquilo e prazeroso.

Desvantagem

No processo de simplificação, as bibliotecas podem acabar criando comandos que atrasam o código, comparado a uma programação que não utiliza nenhuma biblioteca. Um dos motivos pode ser o seguinte: a pessoa que criou a biblioteca não necessariamente a fez pensando em todas as possibilidades, então um “delay” desnecessário que ela adiciona pode acabar atrapalhando seu código.

Além de que, as bibliotecas vêm recheadas de comandos, e talvez sua aplicação não necessite de usar todos eles. E esses comandos que sobram representam um gasto de memória (dinâmica) e de espaço. Como exemplo, posso citar a própria programação do microcontrolador sem usar a IDE do Arduino, o espaço utilizado e a rapidez dos comandos sofrem uma melhora considerável.

Ou seja, sempre que possível, faça seu programa sem utilizar bibliotecas e tente entender como resolver um problema para você mesmo saber criar as funcionalidades de uma biblioteca.

 

De modo geral, as bibliotecas tem o mesmo objetivo, que é de criar funções simplificadas de tarefas que são complicadas. Ou dependendo, de tarefas repetitivas.


Como instalar

Existem duas formas de se fazer isso:

Instalando pela IDE do Arduino

Para instalar uma biblioteca pela IDE, você precisa acessar o painel de bibliotecas do Arduino. Para isso, é só ir no menu superior em sketch -> incluir biblioteca -> gerenciar bibliotecas. Veja a imagem abaixo para entender.

Arduino bibliotecas

Arduino gerenciador de bibliotecasFeito isso, você terá acesso a um painel com várias bibliotecas. Nele é possível instalar uma biblioteca desejada e remover alguma que já estiver instalada. E usando esse procedimento, pode ser que você não encontre a biblioteca desejada, já que a lista das bibliotecas que aparecem é limitada.

Instalando manualmente

Esse procedimento é bem simples e rápido. Basta abrir a pasta onde você instalou o Arduino, entrar na pasta libraries e colocar a pasta da biblioteca baixada lá dentro. Veja imagem abaixo.

Arduino bibliotecas

Dentro dessa pasta é possível ver a biblioteca LiquidCrystal, que é a que usamos para controlar o display. Veja esse post para saber mais. Observação importante: a pasta não pode ter certos caracteres especiais (tipo: -), senão a IDE terá problemas em ler ela.

Com isso, já vai estar tudo pronto, basta reiniciar o programa do Arduino e acabou.


Como usar

Depois de instalado, é só aproveitar as funções existentes da biblioteca que foi baixada. Porém, é preciso incluir a biblioteca, e o processo é igual a inclusão de bibliotecas na programação em c, c++ etc:

#include <LiquidCrystal.h>

No caso acima, foi incluída a biblioteca do display (LiquidCrystal.h). Agora, para saber os comandos, é necessário entrar na página da biblioteca (se houver) e pesquisar quais existem e o que fazem. Além dos comandos, é importante ver se a biblioteca necessita de alguma configuração, como é o caso da biblioteca do display, que precisa da seguinte linha:

1
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

Essa linha é necessária para configurar os pinos do display. E olhar os exemplos que vêm junto à biblioteca também ajuda bastante. Para fazer isso, é só ir em Arquivos->Exemplos->Nome-da-biblioteca e abrir um dos exemplos (se houver).


Dentro de uma biblioteca

Entender o que se passa dentro de uma biblioteca pode ser uma tarefa bem árdua. Porque, como eu disse antes, a biblioteca busca simplificar alguma tarefa complexa. E essa tarefa pode incluir tanto um procedimento que você não entenda, como também comandos que você desconheça.

Quem quiser se arriscar e analisar dentro de uma, é preciso entender uma coisa: a pasta da biblioteca vai conter pelo menos dois arquivos de código; um com terminação .h (header) e outro com terminação .cpp (c++). O arquivo header (cabeçalho) serve para te informar como chamar alguma funcionalidade (comando) da biblioteca, enquanto o arquivo .cpp é o arquivo que contém a própria funcionalidade (comando).

 

Arduino-Executar duas coisas ao mesmo tempo – Aula 9 – AI