fbpx

Utilizando o Display LCD 16×2 com Arduino e Sensor Ultrassônico

No artigo de hoje estarei apresentando a utilização de um módulo display LCD 16×2 com o Arduino. Para exemplificar, ajustaremos o código elaborado no artigo “Medindo Distâncias com Sensor Ultrassônico“, dando assim um upgrade no projeto anterior.

O Display LCD 16×2

Um display é uma interface de comunicação e visualização de informações, há diferentes tipos de display mas, hoje apresentarei o LCD (Display de Cristal LíquidoLiquid Crystal Display). As aplicações para este tipo de display são inúmeras, desde relógios de pulso, televisores, monitores de computador, painéis de instrumentos e tantas outras.

O display LCD 16×2 que iremos utilizar é construído com o controlador HD44780, CI dedicado ao uso em display’s do tipo LCD. Ele possui 16 colunas e 2 linhas, ajuste de contraste e LED de backlight. A Figura 1 apresenta o modelo de display utilizado.

Figura 1 – Modelo de display LCD 16×2 utilizado.

Conheça o Guia Definitivo do Arduíno

Além disso, o display é facilmente utilizável com outros microcontroladores como PIC e Raspberry. Para conectarmos o display a qualquer outro dispositivo microcontrolador, precisamos conhecer seus terminais de conexão. A Figura 2 traz os respectivos pinos de conexão.

Figura 2 – Pinos de conexão do display 16×2 e suas funções.

Agora que conhecemos os terminais do display e sua funções básicas, podemos prosseguir e entender um pouco mais sobre a biblioteca que utilizaremos para nos ajudar a apresentar os dados no display.

Biblioteca e Funções

Para nossa felicidade, trabalhar com LCDs que fazem uso do CI HD44780 (ou similares) é muito simples. O motivo de tanto entusiasmo vem do fato de que há uma biblioteca instalada por padrão na IDE do Arduino, a biblioteca LiquidCrystal LCD. Ela nos fornece várias funções para controlar o nosso LCD. A Figura 3 apresenta e detalha as funções disponíveis na biblioteca.

Figura 3 – Funções disponíveis na biblioteca LiquidCrystal.

Agora que conhecemos a biblioteca que nos auxiliará na concepção do programa, podemos prosseguir em direção à montagem e elaboração do programa para nosso medidor de distâncias.

Lista de Componentes

Antes de apresentar o desenho do circuito elétrico, vamos listar os componentes necessários para implementar esta montagem. São eles:

  1. Placa Arduino (utilizarei o Arduino UNO);
  2. Protoboard;
  3. Cabinhos ou jumper’s para conexão;
  4. Display LCD 16×2;
  5. Módulo sensor ultrassônico HC-SR04;
  6. Cabo USB A/B para gravar o programa e alimentar o circuito;
  7. Dois Potenciômetros do tipo linear de 10 kΩ.

Os materiais listados acima podem ser adquiridos na loja Sivatrônics com excelente custo benefício.

Diagrama Esquemático

O diagrama elaborado é muito similar ao diagrama utilizado para o uso do módulo sensor ultrassônico, diferindo apenas nas conexões para o display. A Figura 4 apresenta o diagrama elaborado no software Fritzing.

Figura 4 – Esquema de conexão do display LCD e sensor ultrassônico ao Arduino.

Note no diagrama esquemático que implementei além do controle de contraste do display, o controle para a intensidade da luz de backlight. Com o diagrama do circuito desenhado, vamos incrementar no código a comunicação do Arduino com o LCD.

Algoritmo Para Medição de Distâncias com Sensor Ultrassônico

O programa elaborado é um incremento ao código feito para medição de distâncias com sensor ultrassônico. O programa final é apresentado logo a seguir.

// TÍTULO: Programa Para Medição de Distâncias com Sensor Ultrassônico HC-SR04
// AUTOR: Ângelo Meneguini

#include <LiquidCrystal.h>              // Adiciona a biblioteca para display de LCD

#define trigger 9                       // Declara que o pino de trigger estará na porta 4
#define echo 8                          // Declara que o pino de echo estará na porta 5
float distancia = 0;                    // Cria a variável para receber o valor da distância
float tempo = 0;                        // Cria a variável para recer o valor do tempo lido do pino 5

LiquidCrystal lcd(12,11, 5, 4, 3, 2);   // Define os pinos que são utilizados para conexão do display

void setup() {
  pinMode(trigger, OUTPUT);             // Configura o trigger como saída
  digitalWrite(trigger, LOW);           // Configura o trigger em nível baixo inicialmente
  pinMode(echo, INPUT);                 // Configura o echo como entrada de sinal digital
  lcd.begin(16,2);                      // Configura e inicia o display como sendo de 16 colunas e 2 linhas
  lcd.clear();                          // Limpa qualquer informação armazenada em cache
  lcd.setCursor(3,0);                   // Posiciona o cursor na quarta coluna e primeira linha
  lcd.print("Medidor");                 // Escreve a primeira frase no display "Sensor"
  lcd.setCursor(1,1);                   // Posiciona o cursor na segunda coluna e segunda linha
  lcd.print("Ultrassonico");            // Escreve a segunda frase no display "Ultrassonico"
  delay(2000);
}

void loop() {
  distancia = 0;
  digitalWrite(trigger, HIGH);          // Aciona o trigger por 10 microsegundos
  delayMicroseconds(10);
  digitalWrite(trigger, LOW);

  tempo = pulseIn(echo, HIGH);          // Lê o tempo em que echo permanece em nivel alto, tempo dado em microsegundos
  tempo = tempo/1000000;                // Converte o tempo para segundos
  distancia = (tempo*340)*50;           // Calcula a distancia com base na equação fornecida no datasheet

  lcd.clear();                          // Limpa o display
  lcd.setCursor(0,0);                   // Posiciona o cursor
  lcd.print("Distancia Medida");        // Escreve no display "Distancia Medida"
  lcd.setCursor(0,1);                   // Posiciona o cursor
  lcd.print(distancia);                 // Escreve a distancia calculada em centímetros
  lcd.setCursor(7,1);                   // Posiciona o cursor
  lcd.print("cm");                      // Escreve a unidade de medida da distância

  delay(500);                           // Intervalo até a próxima medida
}

Agora que temos o programa modificado, podemos carregá-lo para placa Arduino e testar seu funcionamento. O programa também está disponível para download no GitHub.

Teste do Medidor de Distâncias Ultrassônico com Display LCD

Com o algoritmo finalizado e o esquema de montagem apresentado na Figura 4, podemos testar e verificar o funcionamento do medidor de distâncias com sensor ultrassônico e display LCD.

Após compilar e verificar erros no programa, transferi o código para a placa Arduino e realizei todas as conexões necessárias para montagem, o resultado pode ser visto na Figura 5.

Figura 5 – Montagem do circuito medidor de distância com sensor ultrassônico em protoboard.

Após a montagem, gravei um vídeo curto apresentando o sistema em funcionamento.

No vídeo podemos conferir o funcionamento e a precisão do protótipo elaborado.

Podemos destacar também algumas das inúmeras aplicações que este sistema possui, como por exemplo, sensor de estacionamento, sensor de passagem, trena eletrônica, contador de passagem e muitas outras.

Espero que tenham gostado deste artigo, siga-nos no Facebook e compartilhe este texto com seus amigos.

Desde a primeira vez que eu conheci Arduíno em 2014 e percebi o tanto de coisas que era possível de fazer com ele nunca mais me desgrudei dele.

Se você assim como eu gosta de Arduíno e quer ir além eu convido você a conhecer o treinamento mais completo de Arduíno disponível hoje na internet.

Clique aqui ou no botão abaixo e saiba mais detalhes.

Você também pode gostar

5 Comentários

  1. Olá, tudo bem?

    Você poderia disponibilizar a figura 5 no modelo da figura 4?
    Não consigo ver as mudanças realizadas na figura 5. Seria muito melhor como no modelo da figura 4.
    O motivo desse pedido é porque eu quero utilizar o que você mostrou nesse post no colégio para a apresentação de robótica.

    Obrigado pela atenção.

    Arthur Wallace.

    1. Olá Arthur, tudo bem.

      A figura 4 é somente o diagrama de montagem do projeto, porém na figura 5 temos o resultado da montagem. A figura 5 segue exatamente a figura 4, só que o sensor está posicionado em ângulos diferentes. Além disso a figura 4 é um esboço feito no software Fritzing que pode ser baixada gratuitamente.

      Espero tê-lo ajudado e muito obrigado pela visita!

    1. olá, tudo bem? quando eu passo o código para o programa ARDUINO IDE a quarta linha apresenta um erro, aparecendo a seguinte mensagem –> exit status 1
      #include expects “FILENAME” or
      Como posso resolver isso?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *