A comunicação I2C simplifica a comunicação entre dispositivos
O módulo I2C para display LCD 16x2 ou 20x4 tem como principal função simplificar as conexões e facilitar a utilização de displays LCD ao microcontrolador.
O conversor deve ser acoplado ao display LCD por meio da conexão dos seus 16 pinos.
O módulo I2C conta com dois pinos para controle da luz de fundo do visor do display, que se encontram conectados por um jumper, por padrão. Assim, a luz de fundo estará sempre ligada. Você pode remover este jumper para desligar a luz de fundo do display.
Além disto, a placa conta com um pequeno trimpot para fazer ajustes finos no contraste do display e um barramento para configuração do endereço I2C.
Na parte lateral, o módulo I2C conta com quatro pinos para conexão com qualquer microcontrolador que suporte o protocolo de comunicação I2C.
Para integrar à placa AL-1 ou AL-2, estes pinos debem ser substituidos por um conector header macho de 180 reto.
Para fazer a comunicação do modulo I2C o Arduino, vamos utilizar a biblioteca Wire.h que já se encontra instalada com o Arduino IDE.
Vamos usar também a biblioteca LiquidCrystal_I2C.h que permite controlar displays I2C com funções exatamente semelhantes à biblioteca LiquidCrystal. Para instalá-la, abra o Gerenciador de Bibliotecas através do caminho: Ferramentas>Gerenciar Bibliotecas… ou por meio do atalho Ctrl+Shift+I. Em seguida, busque por LiquidCrystal I2C e clique em instalar.
#include <Wire.h> // Biblioteca utilizada para fazer a comunicação com o I2C #include <LiquidCrystal_I2C.h> // Biblioteca utilizada para fazer a comunicação com o display 20x4 #define col 16 // Serve para definir o numero de colunas do display utilizado #define lin 2 // Serve para definir o numero de linhas do display utilizado #define ende 0x27 // Serve para definir o endereço do display. LiquidCrystal_I2C lcd(ende,col,lin); // Chamada da funcação LiquidCrystal para ser usada com o I2C void setup() //Incia o display { lcd.init(); // Serve para iniciar a comunicação com o display já conectado lcd.backlight(); // Serve para ligar a luz do display lcd.clear(); // Serve para limpar a tela do display } void loop() { lcd.setCursor(2,0); // Coloca o cursor do display na coluna 2 e linha 0 lcd.print("Quer aprender"); // Comando de saída com a mensagem que deve aparecer na coluna 2 e linha 0. lcd.setCursor(4,1); //Coloca o cursor do display na coluna 4 e linha 1 lcd.print("Arduino?"); // Comando de saida com a mensagem que deve aparecer na coluna 4 e linha 1 delay(5000); // delay de 5 segundos com todas as mensagens na tela lcd.clear(); // Limpa o display até o loop ser reiniciado lcd.setCursor(4,0); // Coloca o cursor do display na coluna 4 e linha 0 lcd.print("PCB AL-1 "); // Comando de saída com a mensagem que deve aparecer na coluna 4 e linha 0. lcd.setCursor(2,1); //Coloca o cursor do display na coluna 2 e linha 1 lcd.print("Plug & Play "); // Comando de saida com a mensagem que deve aparecer na coluna 2 e linha 1 delay(5000); // delay de 5 segundos com todas as mensagens na tela lcd.clear(); // Limpa o display até o loop ser reiniciado }