Criação de Bibliotecas para o Arduino!
Bom dependendo do projeto as vezes precisamos de uma biblioteca para facilitar tudo e deixar o código mais simples e fácil. Como toda linguagem Orientada a Objetos possuem suas classes para facilitar as coisas, O Arduino também possui, pelo fato de ser baseado em C++ também possui classes porém são denominadas "Bibliotecas", Para isso precisamos de:
- Arquivo Cabeçalho (header) .h
O arquivo de cabeçalho é onde todas as funções, métodos, variáveis da classe são definidos, resumindo ele lista tudo que a classe(biblioteca) vai ter. Nesse exemplo ele vai ficar dentro da mesma pasta com o nome "TresLed.h"
- Arquivo de Código Fonte(source) .cpp
É o código verdadeiro, onde todas as funções são executadas e toda programação e lógica permanecem, Fica até estranho mas quando se ver fica mais fácil a compreensão.
Nesse exemplo iremos criar uma biblioteca para Controle de 3 Leds simultaneamente, ela vai realizar duas funções básicas, "blinks([valor de delay]);" = Irá piscar os 3 leds ao mesmo tempo de acordo com o tempo que você escolher e "corre();" = Irá fazer um sequencial indo e voltando no intervalo de 250 milissegundos de cada LED para o outro.
A pasta irá ficar mais ou menos assim:
Eu utilizei o programa Notepad++ para a criação dos arquivos.
Cabeçalho(.h):
#ifndef TresLed_h declara o inicio do header
#define TresLed_h define o nome da biblioteca
#include "Arduino.h" inclui a biblioteca do arduino no projeto
class TresLed inicia a Classe
void corre(); função sequencial declarada
void blinks(int delays); função blink com a variável "delay"
TresLed(int pina, int pinb, int pinc); Função para declaração da pinagem.
int _delays; = Variável a ser usada no código fonte
#endif declara o fim do header
Código Fonte(.cpp):
Aqui é onde o código irá funcionar, lembrando que cada variável privada usada no header tem que ser definida aqui ex: _pina = pina.
Testes:
Código de Exemplo:
#ifndef TresLed_h declara o inicio do header
#define TresLed_h define o nome da biblioteca
#include "Arduino.h" inclui a biblioteca do arduino no projeto
class TresLed inicia a Classe
void corre(); função sequencial declaradavoid blinks(int delays); função blink com a variável "delay"
TresLed(int pina, int pinb, int pinc); Função para declaração da pinagem.
int _delays; = Variável a ser usada no código fonte
#endif declara o fim do header
Código Fonte(.cpp):
Aqui é onde o código irá funcionar, lembrando que cada variável privada usada no header tem que ser definida aqui ex: _pina = pina.
Testes:
Código de Exemplo:
Olá Lucas,
ResponderExcluirNo programa exemplo você coloca ts.blink() e ts.corre(). O que é o "ts"?
Abs
Gustavo.
O "ts" é o nome do objeto que será usado você pode colocar qualquer nome, Da mesma forma que tu tem que por um "Servo myservo;", o "myservo" é o objeto ficaria algo "myservo(objeto).write(função a ser realizada por ele). ^^
Excluir