Uma forma interessante de exibir informações é através do LCD, entretanto, a quantidade de pinos que possui pode ser um limitador quando for realizar algum projeto. Por isso, podemos utilizar um circuito integrado que fará o controle por meio do protocolo I2C. Podemos adquirir esse CI e conectá-lo ao LCD ou comprar o conjunto LCD já com a CI soldada (Figura 1).
Figura 1; (a) Display LCD 16x2; (b) Módulo I2C. |
Figura 2: módulo IC2 com detalhes das saídas. |
A Figura 2 traz detalhes do módulo que iremos utilizar. Ele pode vir já conectado ao LCD ou ele poderá ser adquirido à parte. O módulo contém 16 pinos de conexões que se encaixa perfeitamente no LCD. Os 4 pinos GND, VCC, SDA e SCL deverão ser conectados ao Arduino. Ele possui um potenciômetro para ajuste do contraste da tela (muito provavelmente você deverá ajustar o seu display, fique atento). Esse módulo, geralmente, vem com endereço default 0x27, em alguns casos é necessário encontrar o endereço do seu módulo.
Para se trabalhar com LCDs com módulo I2C precisaremos instalar a biblioteca LiquidCrystal_I2C; ela será muito útil na hora de controlar o LCD. A versão mais recente desta biblioteca pode ser baixada aqui no GitHub ou clique no botão abaixo:
Você pode instalar a biblioteca fazendo: Sketch-> Incluir Biblioteca -> Adicionar Biblioteca.zip (Figura 3). Uma vez instalada você pode incluí-la no sketch (Figura 4). Esse procedimento deverá ser realizado para as demais bibliotecas que deverão ser instaladas ainda nesse post.
Figura 3: instalação da biblioteca Cristal Liquid I2C. |
Figura 4: Inclusão da biblioteca no sketch. |
Muito cuidado ao tentar baixar essa biblioteca em outro site pois poderá haver conflito com outra biblioteca pré-instalada na IDE do Arduino. O quadro a seguir traz as principais funções da biblioteca LiquidCrystal_I2C.
Função |
Descrição |
begin(int coluna, int
linha) |
Define as dimensões da tela |
clear() |
Reinicia e limpa tudo no display |
home() |
Posiciona o curso no canto superior esquerdo do
display |
setCursor(int coluna, int linha) |
Posiciona o cursor na posição solicitada |
write (byte valor) |
Escreve um caractere na posição atual do vetor |
print(dado) |
Imprime o texto na string; pode ser char, byte,
int, long ou String |
Projeto 1: Utilizando o LCD para exibir uma mensagem
Material utilizado
Um LCD 16x2 Hitachi HD44780 com (módulo I2C embutido - opcional);
Um módulo I2C para LCD;
Um Arduino Uno;
Uma protoboard;
Cabos Jumpers;
Esquema de ligação
Para não termos problemas futuros, vamos buscar o endereço hexadecimal do I2C. Essa informação é muito importante para quando formos inciar o LCD a partir da biblioteca que iremos utilizar. Depois de fazer as ligações apresentada na Figura 2 carregue o código abaixo no Arduino. O endereço hexadecimal de seu LCD será apresentado no Monitor Serial. Anate-o, pois será necessário utilizar no sketch do projeto 1. Utilizamos a biblioteca Wire.h, que permite a comunicação com dispositivos I2C. Ele deve vir pré-instalado com o Arduino IDE. O endereço encontrado do meu módulo LCD é o 0x3f.
Programando o Arduino
Agora que já temos o endereço hexadecimal e sabemos quais as principais funções da biblioteca LiquidCrystal_I2C, podemos escrever nosso código. A principal função do código a seguir é a de exibir uma mensagem na tela do LCD. Ao carregar o código no Arduino, e, por acaso, a mensagem não é exibida na tela, faz-se necessário ajustar o contraste com potenciômetro que se encontra no módulo I2C (Figura 2).
Projeto Funcionando
#ficaemcasa #arduino #LCDI2C pic.twitter.com/ggFpLLsTkN
— Sistemas Interativos Com Arduino (@com_arduino) July 7, 2020
Projeto 2: Utilizando o LCD com o sensor de temperatura DS18B20
Já utilizamos o sensor de temperatura TM36 em dois projetos, agora, iremos utilizar um outro: o sensor DS18B20. Esse sensor usa um protocolo de um fio e está se tornando muito popular no mercado. O protocolo de um fio permite que um ou mais dispositivos escravos de um fio se comuniquem com um outro dispositivo mestre por meio de uma única linha de dados, o que significa que é possível conectar diversos desses sensores ao Arduino sem utilizar muitas entradas e, além disso, eles são baratos, confiáveis e pode se comunicar através de fio em comunicações remotas (em breve, irei escrever um post usando esse sensor com o módulo XBee). Ele possui duas bibliotecas poderosas: OneWire e o DallasTemperature, o que torna nosso trabalho mais simples. Nesse projeto iremos utilizar ambas. Ela permitirá a comunicação com o sensor de temperatura. Ela pode ser baixada clicando nos botões abaixo:
Material utilizado
Um LCD 16x2 com I2C;
Um Arduino Uno;
Uma protoboard;
Cabos Jumpers;
Um sensor DS18B20;
Um resistor de 4,7K Ohms.
Esquema de ligação
Fiquem atentos aos detalhes do esquema abaixo. Coloquei as linhas das tabelas nas cores dos fios para facilitar. Coloquei também uma imagem do sensor DS18B20. O pino da direita é o 1, o central é o 2 e o da esquerda é o 3. O resistor é o de 4,7K Ohms.
Figura 6: Esquema de montagem do projeto 2. LCD, módulo I2C e arduino e conexões. |
Programando o Arduino
Projeto Funcionando
Se tiverem dúvidas deixem um comentário! Compartilhem!
Como ligar o módulo max6675 de temperatura, com o i2c, e dois arduinos, preciso de uma luz
ResponderExcluirComo ligar o módulo max6675 de temperatura, com o i2c, e dois arduinos, preciso de uma luz
ResponderExcluirPostar um comentário