Nosso principal objetivo aqui
é mostrar o funcionamento do módulo serial i2c para Display LCD 2x16 ou 20x4.
Com esse módulo podemos controlar os displays citados acima, utilizando apenas dois
pinos (SDA e SCL), torna muito simples a comunicação, deixando ainda vários outros
GPIOs de nosso microcontrolador livres.
Vamos mostrar o funcionamento
tanto no arduino UNO como no ESP8266. Acompanhe!
Arduino Uno
WiFi ESP8266 NodeMcu ESP-12E
Display LCD 16x2 Serial
Módulo Serial i2c
Nesta parte mostramos o adaptador que foi comprado separadamente, no qual soldamos ao display paralelo na parte de trás. Através dos pinos i2c, o display, então, vai comunicar direto com o Arduino. Portanto, através de um microcontrolador, esse Arduino vai gerenciar todos os comandos para o display, facilitando tanto sua conexão quanto sua programação.
Módulo Serial i2c conectado no Display LCD
Montagem com Arduino
Montagem com ESP8266
Biblioteca
Adicione a biblioteca
“LiquidCrystal_I2C” para comunicação com o display LCD.
Acesse o linke faça download da biblioteca.
Descompacte o arquivo e cole
na pasta de bibliotecas da IDE do arduino.
C:/Program Files
(x86)/Arduino/libraries
Código Fonte
Começamos definindo as
bibliotecas e constantes que utilizaremos durante nosso código.
#include <Wire.h> // responsável pela comunicação com a interface i2c #include <LiquidCrystal_I2C.h> // responsável pela comunicação com o display LCD // Inicializa o display no endereço 0x27 //os demais parâmetros, são necessários para o módulo conversar com o LCD //porém podemos utilizar os pinos normalmente sem interferência //parâmetro: POSITIVE > > Backligh LIGADO | NEGATIVE > > Backlight desligado LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE);
Setup
Aqui apenas inicializaremos
nosso objeto para comunicação com o display.
void setup() { //inicializa o display (16 colunas x 2 linhas) lcd.begin (16,2); // ou 20,4 se for o display 20x4 }
Loop
Nosso programa fará com que o
display fique piscando a cada 1 segundo. Um programa simples, mas que já
envolve tudo que precisamos para nos comunicar com o display.
Acender/apagar backlight,
posicionar cursor para escrita e escrever.
void loop() { //acende o backlight do LCD lcd.setBacklight(HIGH); //posiciona o cursor para escrita //.setCursor(coluna, linha) lcd.setCursor(0,0); lcd.print("FERNANDOK.COM"); lcd.setCursor(0,1); lcd.print("ACESSE!!!"); delay(1000); //intervalo de 1s //desliga o backlight do LCD lcd.setBacklight(LOW); delay(1000); //intervalo de 1s }
13 Comentários
Legal! Parabéns pelo vídeo. Explicação muita clara e objetiva!
ResponderExcluirComo o arduino sabe que as portas A4 e A5 são para comunicação? Como mudar o end do conversor?
ResponderExcluirexit status 1
ResponderExcluir'POSITIVE' was not declared in this scope
Boa tarde
Excluiro meu está dando o mesmo erro.
conseguiu resolver? como?
Grato
Tenta mudar o nome da pasta da biblioteca do I2C para "LiquidCristal_I2C"
ExcluirO meu esta dando um erro na wire, o código funciona ´perfeitamente no arduino mas no nodemcu da um erro: C:\Users\Tales\Documents\Arduino\libraries\Wire\utility\twi.c:25:20: fatal error: avr/io.h: No such file or directory
ResponderExcluir#include
Tenho que mudar alguma configuração no código quando se usa outra porta no NodeMCU (ESP8266)?
ResponderExcluirO meu não funcionou
ResponderExcluirdeu erro.
O meu deu esse erro:
ResponderExcluirArduino/libraries/LiquidCrystal/LiquidCrystal.cpp:179:48: error: 'analogWrite' was not declared in this scope
analogWrite ( _backlightPin, value );
Comigo deu o mesmo erro, é só abrir o arquivo LiquidCrystal.cpp e ir até a parte onde o analogWrite está escrito e colocar como comentário, ou simplesmente apagar esse trecho
ExcluirAqui o código compila normalmente, mas o lcd não liga
ResponderExcluirSe conseguiu fala, está dando o mesmo problema cmg
Excluirna ESP não funciona. Ele acende e apaga a luz de fundo, mas escrever não escreve nada. Desconfio que seja por conta dos pinos SDA e SCL
ResponderExcluir