
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.
Contents
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íquido – Liquid 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.
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.

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.

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:
- Placa Arduino (utilizarei o Arduino UNO);
- Protoboard;
- Cabinhos ou jumper’s para conexão;
- Display LCD 16×2;
- Módulo sensor ultrassônico HC-SR04;
- Cabo USB A/B para gravar o programa e alimentar o circuito;
- 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.

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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
// 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.

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.
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.
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!
Olá! Poderia me ajudar ? Como eu poderia ligar um buzzer nesse circuito? E como o código se afetaria?
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?