🔧
Manuais Técnicos
  • Manuais Técnicos
  • Eletrônica
    • Motores DC
      • Princípios do Eletromagnetismo
      • Diferenças na construção de motores DC elétricos
      • Escolha de Motores
      • Modelagem motor brushed
    • PCBs
      • Conceitos Básicos
        • Resistores
        • Capacitores
        • Indutores
        • Diodos
      • Conceitos Avançados
        • Reguladores
        • Comunicações Digitais
        • Simulação de Sinais
        • Tratamento de sinais
        • Filtros de sinal RC
      • Altium
        • Normas
        • Organização no esquemático
          • Net Labels (Rótulos de Rede)
          • Nomeclatura dos componentes
          • Estética e Leitura Rápida
        • Criação da PCB no Altium
          • Espaçamento entre Componentes, Trilhas e Vias
          • Encapsulamento, Gerbers e Footprints
    • Programação
      • 1. Introdução
      • 2. Comentários
      • 3. Identação
      • 4. Variáveis
      • 5. Funções
      • 6. Bibliotecas
      • 7. Pré-Processamento
      • 8. VS Code
      • 9. GitHub
    • Baterias LiPo
      • Conceitos básicos
        • Resistência interna
        • Taxa de descarga
        • Capacidade de carga
        • Tensão nominal
      • Dimensionando e escolhendo uma bateria
        • Sistema de Locomoção
          • Cálculo de torque
          • Dados dos motores
          • Corrente no sistema
          • Consumo total do sistema
          • Conclusões
          • Exemplo
        • Sistema de Arma
          • Obtendo o torque da arma
          • Correntes da arma
          • Conclusões
          • Exemplo
        • Escolha de uma bateria
          • Sistemas em Paralelo
          • Sistemas em Série
          • Escolha da Bateria
      • Utilização do carregador
        • Opção de carga
        • Opção Storage
        • Opção Balance
      • Notas para uma operação segura
      • Práticas para aumentar a vida útil da bateria
      • Como montar uma bateria Li-Po
    • Altium
      • Instalação e Ativação
      • Esquemático
      • Roteamento
    • Controle de PS4
      • Hardware
      • Software
      • Aplicações
      • Conclusão
    • Módulo Bluetooth HC-05
  • Mecânica
    • Solidworks
      • Instalação, Ativação e Interface
      • Esboço 2D
      • Recursos
      • Montagem
      • Desenho
      • Projeto com Ajustes e Tolerâncias
      • Pack & Go
    • Tratamento Térmico
    • Componentes Mecânicos
      • Parafusos
      • Prisioneiros
      • Porcas
      • Arruelas
      • Anel Elástico
      • Chavetas
      • Rolamentos
      • Correias
      • Engrenagens
      • Eixos
      • Molas Prato
    • Ajustes e Tolerâncias
    • Desenho Técnico
    • Motores
    • Dimensionamentos
    • Usinagem
      • Fresamento convencional
      • Torneamento convencional
      • Corte à água e laser
      • Fresamento e CNC
    • Soldagem
      • Soldagem TIG
    • Impressão 3D
    • Ciência dos Materiais
      • Propriedades mecânicas dos materiais
      • Ensaio de Tração
        • Elasticidade
        • Rigidez
        • Dureza
          • Rigidez x Dureza
        • Resiliência
        • Ductilidade
        • Tenacidade
          • Ductilidade x Tenacidade
        • Tensão de escoamento
        • Tensão máxima
          • Fratura
      • Classificação Dos Materiais
        • Aços
        • Alumínio
        • Polímeros
      • Tratamento Térmico
        • Têmpera com Revenimento
        • Recozimento
        • Carbonitretação
      • Conclusão
    • Pedidos de materiais e serviços
      • Pedidos de aço
      • Pedidos de fibra de carbono
  • Gestão
    • Material de Divulgação Processo Seletivo
Powered by GitBook
On this page
  • Introdução
  • Arquivo Header/Cabeçalho
  • Como criar
  • Source Code/Código fonte
  • Exemplos:
  • Segue-se o exemplo:
  • Conclusão:
  1. Eletrônica
  2. Programação

6. Bibliotecas

Previous5. FunçõesNext7. Pré-Processamento

Last updated 2 months ago

Introdução

A biblioteca é um arquivo que possui um conjunto de funções, variáveis e outras bibliotecas que possuem a capacidade de ajudar a organizar, visualizar, corrigir, criar protótipos e funções, além de facilitar a criação do próprio código. Ela tem como objetivo configurar e armazenar tudo que não há necessidade de estar presente no arquivo main (principal). Dessa forma, despoluindo esse arquivo e já permitindo que todo o pré-processamento já seja feito somente por incluir a biblioteca em seu main.

Arquivo Header/Cabeçalho

O Header ou cabeçalho é uma biblioteca que contém as chamadas de outras bibliotecas e estruturas de dados necessárias para o funcionamento dos arquivos source code ou código fonte. Alguns exemplos desses arquivos são: stdio.h (biblioteca padrão da linguagem C), plib.h, attribs.h, arduino.h, math.h e outras. Como é perceptível, na linguagem C, todos os arquivos Header possuem a terminação “.h”, sendo isso o que indica o seu tipo de arquivo. Um bom arquivo header deve inicializar as configurações do pic (com o uso de pragmas, por exemplo), além de chamar todas as outras bibliotecas que serão usadas no decorrer do código, como a do microcontrolador que está sendo usado ou a do compilador.

Como criar

Criar uma biblioteca com funções específicas, necessárias para o seu código, pode facilitar muito na hora de programar.

Para criar uma biblioteca, primeiro é preciso criar um arquivo Header (com terminação “.h”). A biblioteca deve ser criada dentro da pasta Header, para isso, seguem-se os seguintes passos:

  • Clicar com o botão direito em cima desta pasta

  • Criar um novo arquivo com a extensão “.h”

Para criar uma biblioteca própria o programador deve ter em mente as funções necessárias para o seu código.

Por exemplo, se um programa utiliza constantemente uma função que calcula a média aritmética de três números, ao invés de adicionar a função ao arquivo principal (com terminação “.c”), podemos colocar a função no arquivo header, incluir a biblioteca criada no arquivo principal com o comando #include (inserir hiperlink para pré-processamento) e chamar a função apenas quando nos convém, organizando o programa.

Exemplo de como incluir uma biblioteca:

Source Code/Código fonte

O source code ou código fonte são os arquivos com extensão “.c” ou “.cpp” que possuem o script propriamente dito, ou seja, o algoritmo que se deseja compilar no processador. Dessa forma, o robô realiza as instruções programadas no source code. A forma correta de estruturar um arquivo de código fonte é colocando primeiramente a biblioteca e seguir com a criação e inicialização de variáveis (obs.: é de extrema importância inicializar todas as variáveis para evitar futuros problemas com os valores destas) .

Exemplos:

A biblioteca deve iniciar com um cabeçalho, contendo: a instituição da qual o autor faz parte, o intuito da biblioteca, o nome dela, quem é o autor e os editores, a data de modificação ou criação da biblioteca e outras informações adicionais como o compilador e a IDE usadas. Segue-se o exemplo:

Logo em seguida, deve-se colocar os includes das bibliotecas usadas e necessárias para o funcionamento do código. Importante salientar que todos os includes das bibliotecas necessárias devem ser colocados no arquivo header, evitando a necessidade da sua utilização no arquivo principal.

Segue-se o exemplo:

Após isso, deve-se colocar os pragmas, que são instruções para o compilador associar ou fazer no processo de pré-compilação. Segue-se o exemplo:

#pragma config IOL1WAY = OFF // Peripheral Pin Select #pragma config FPLLIDIV = DIV_2 // PLL Input Divider #pragma config FPLLMUL = MUL_20 // PLL Multiplier #pragma config FPLLODIV = DIV_2 // System PLL Output Clock

#pragma config PWP = OFF // Program Flash Write Protect #pragma config BWP = OFF // Boot Flash Write Protect bit #pragma config CP = OFF // Code Protect

Em conseguinte devemos programar os defines, que servem para simplificar o entendimento do código e do uso dos pinos e portas que o microcontrolador dispõe. Ao utilizar um define, é de extrema importância manter a organização o código por meio dos comentários, responsáveis por indicar a função e nomeação de cada definição.

Veja como foi feito na biblioteca do seguidor:

Com o processo de pré-processamento pronto, agora segue-se uma parte de criar os protótipos das funções e documentá-las, pois, dessa forma, todos que lerem a biblioteca poderão entender o uso delas e saberão aplicá-las no código. Além disso, vem a criação de variáveis e também a documentação de structs. Exemplo dos protótipos na biblioteca do seguidor:

Após declarar as variáveis, structs e os protótipos das funções, segue a criação das mesmas:

Conseguinte, temos a configuração do pinos e bits do microcontrolador, que é integralmente feita no arquivo header a fim de remover a necessidade de colocá-los no arquivo principal. Toda a configuração é feita separando os bits por funções, como na configuração dos leds, buzzer, botão, sensores e demais bits no exemplo abaixo:

Por fim, tendo a biblioteca pronta, basta inclui-la ao programa principal utilizando a diretiva #define.

Conclusão:

As bibliotecas ou arquivos header (.h), são arquivos capazes de facilitar na criação do código removendo do mesmo todas as configurações que ocupariam muito espaço no código principal e realocando-as para um outro arquivo, deixando tudo muito mais organizado. E seguindo as dicas aqui presentes, será capaz criar uma biblioteca organizada, bem feita e capaz de organizar o código.