Como usar o módulo I2C com Arduino e display LCD 16×2
Como usar o módulo I2C com Arduino e display 16×2? Quem precisa conectar um display LCD 16×2 ou 20×4 ao Arduino sabe que vai precisar de pelo menos 6 fios (ou jumpers) para conexão. Em placas com um número menor de portas, como o Arduino Uno, isso significa sacrificar algumas portas que poderiam ser utilizadas para ligação de outros componentes, como sensores ou motores. Um módulo que pode ser utilizado para contornar esse problema é o módulo I2C para display LCD com CI PCF8574 (datasheet):
Com esse módulo, você consegue controlar um display LCD, seja ele 16×2 ou 20×4, utilizando apenas dois pinos do Arduino: o pino analógico 4 (SDA) e o pino analógico 5 (SCL), que formam a interface de comunicação I2C.
Estrutura do módulo I2C
Na lateral esquerda do módulo temos 4 pinos, sendo que dois são para alimentação (Vcc e GND), e os outros dois são da interface I2C (SDA e SCL).
O potenciômetro da placa serve para ajuste do contraste do display. O jumper na lateral oposta permite que a luz de fundo (backlight) seja controlada pelo programa ou permaneça apagada.
Por padrão o módulo vem configurado com o endereço 0x27, mas você pode alterar esse endereço utilizando os pinos A0, A1 e A2 seguindo a tabela abaixo:
Em alguns casos o módulo I2C pode vir configurado com uma faixa de endereços diferente, para descobrir qual o endereço do módulo, utilize o programa I2C Scanner, que eu mostro nesse post.
Ligação do módulo I2C com Arduino e display LCD 16×2
O módulo possui 16 pinos que podem ser ligados diretamente ao display, ou você pode testar a conexão na protoboard, como eu fiz montando o circuito abaixo, onde utilizei um display LCD 16×2 com controlador HD44780 ligado ao Arduino Uno:
Caso você esteja usando um Arduino Mega 2560, utilize os pinos 20 (SDA) e 21 (SCL):
Programa e biblioteca LiquidCrystal_I2C
Para controlar esse módulo I2C vamos utilizar a biblioteca LiquidCrystal_I2C, que pode ser instalada a partir da própria IDE do Arduino.
Para isso, na IDE acesse o menu Sketch -> Incluir Biblioteca -> Gerenciar Bibliotecas. Na janela do Gerenciador de Bibliotecas, procure por liquidcristal_I2c e instale a biblioteca LiquidCrystal I2C by Frank de Brabander, conforme imagem abaixo
Dúvidas na instalação da biblioteca? Confira o post Como instalar uma biblioteca na IDE Arduino.
Os comandos para controle do display são praticamente os mesmos da biblioteca LiquidCrystal que utilizamos normalmente, com comandos como lcd.print() e lcd.setCursor().
Não se esqueça de alterar a linha 8 do programa, colocando o endereço I2C do display que você tem aí, ok? Utilize o I2CScanner, como eu comentei anteriormente. No meu caso, o endereço I2C do display é 0x27.
Na biblioteca I2C, o comando lcd.setBacklight() liga (HIGH) ou desliga (LOW) a luz de fundo do display. Uso isso nas linhas 17 e 23 do programa.
//Programa: Display LCD 16x2 e modulo I2C //Autor: Arduino e Cia #include <Wire.h> #include <LiquidCrystal_I2C.h> //Inicializa o display no endereco 0x27 LiquidCrystal_I2C lcd(0x27,16,2); void setup() { lcd.init(); } void loop() { lcd.setBacklight(HIGH); lcd.setCursor(0,0); lcd.print("Arduino e Cia !!"); lcd.setCursor(0,1); lcd.print("LCD e modulo I2C"); delay(1000); lcd.setBacklight(LOW); delay(1000); }
Para usar o módulo I2C com Arduino e display LCD 20×4, altere a linha 8. Nesse caso, a linha fica assim:
LiquidCrystal_I2C lcd(0x27,20,4);
Para conexão do display 20×4 usamos o mesmo esquema de conexão mostrado acima.
No artigo LCD 16×2 com módulo I2C e RTC DS1307 eu mostro como utilizar esse módulo juntamente com o módulo RTC DS1307 para mostrar as informações de data e hora no display.
Atualizado em 27/12/2016: Quer usar esse módulo I2C na Raspberry Pi? Veja como fazer isso no post Como usar um display LCD I2C com Raspberry Pi!
Atualizado em 21/02/2018: Quer ligar dois displays I2C ao mesmo tempo? Confira também o post Como conectar dois displays LCD I2C no Arduino.
Atualizado em 22/08/2020: Inclusão da biblioteca pela IDE Arduino.
Olá tenho um LCD e fiz como no tutorial, mas ele fica só azul e sem aparecer nada de letras. O que ṕode ser?
Oi Swellington,
Isso parece ser algum problema no ajuste do contraste (pino 3 do LCD, se você estiver utilizando o mesmo tipo de display LCD 16×2), nesse caso, pode ser algum problema de conexão entre o módulo I2C e o display. Ou então você precisa apenas ajustar o potenciômetro do módulo.
Abraço !
de acordo com [Arduino, 2022] ” Existem versões de 7 e 8 bits de endereços I2C. 7 bits identificam o dispositivo, e o oitavo bit determina se ele está sendo escrito ou lido. A biblioteca Wire usa endereços de 7 bits por toda parte.”
portanto pode ser que ocorra esse erro por essa variação;
Referencias: https://www.arduino.cc/reference/en/language/functions/communication/wire/
o meu deu o mesmo problema
Que tipo de display você está usando ? o controlador é o mesmo (HD44780) ?
O problema eh na comunicacao I2C
De uma olhada nesse link:
http://forum.arduino.cc/index.php?topic=128635.0
No meu caso tive q usar
#define I2C_ADDR 0x3F
ao inves do valor dado no codigo
esta ligação tem que ser feita com resistores de pull-up nas vias sda e scl, nao?
O meu LCD 16×2 de fundo verde funcionou corretamente utilizando o endereço 0x3F.
Olá, no meu tambem deu o mesmo problema, mas troquei a biblioteca e deu tudo certo…
0x3F funciona perfeitamento com o Arduino NANO.
#include
#include
// Inicializa o display no endereco 0x27
LiquidCrystal_I2C lcd(0x3f,2,1,0,4,5,6,7,3, POSITIVE);
void setup()
{
lcd.begin (16,2);
}
void loop()
{
lcd.setBacklight(HIGH);
lcd.setCursor(0,0);
lcd.print("Arduino e Cia !!");
lcd.setCursor(0,1);
lcd.print("LCD e modulo I2C");
delay(1000);
lcd.setBacklight(LOW);
delay(1000);
}
Teste o pino V0 direto em VCC (tente também em GND) e veja se as letras aparecem. Se aparecerem as letras verifique as conexões originais e o ajuste do potenciômetro. Se não aparecerem as letras verifique o código. Raramente será um problema no LCD.
Realmente, não entendo esse endereçamento do módulo, será que há mais versões desse módulo? algumas com todos os jumpers abertos deveria funcionar em 0x20 e não com 0x3f…
Amigo, não sei se resolveu, mas isso é o endereço do módulo I2C que esta errado. procuro pelo sketch i2c_scanner. Rode ele com o módulo ligado e pegue o endereço do módulo.
Esse realmente deu certo
Pessoal que apenas liga o Display.
Aconselho girar todo pra direita o potenciômetro e depois vc ajusta o mesmo pra poder aparecer o que foi escrito.
É exatamente o que o pessoal já falou acima. (comigo ocorreu isso).
isso mesmo testei no uno e deu certo!
o meu, apresenta erro de compilação na linha de:
LiquidCrystal_I2C lcd(0x3f,2,1,0,4,5,6,7,3, POSITIVE);
Fiz essa alteração para utilizar no Mega, funcionou perfeito.
Obrigado pela ajuda, ensinando e aprendendo.
Não entendi a linha
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE);
se só usamos dois pinos analógicos a4 e a5 , o que seriam esses “2,1,0,4,5,6,7,3, POSITIVE”.
Obrigada !
Oi Lu,
Esses números se referem ao endereço I2C do display, e o restante é a pinagem utilizada para comunicação entre o módulo e o display.
Abraço!
Adilson
olha, eu tive o mesmo problema, e o problema era a parte do codigo : LiquidCrystal_I2C lcd(0x26,16,2);
aqule 0x26 eu troquei por outros numeros e funcionou, baixa um codigo de arduino scanner, e ve o9que ele mandar
Amigo,
A Biblioteca não está mais disponível para baixar. Tem como me enviá-la?
[email protected]
Att.
Boa noite,
Já consertei o link, pode baixar a biblioteca normalmente. Provavelmente o erro de POSITIVE que você citou está acontecendo por não ser a biblioteca correta.
Abraço !
Prezado,
o Seu sketch está dando erro no POSITIVE. informa que não foi declarado.
Pode me ajudar?
[email protected]
Att.
Boa noite,
Qual versão de IDE você está utilizando ? Aqui eu testei com a 1.0.6
Abraço !
Olá, tentei com a versão que vc citou, 1.0.6, e mesmo assim dá o problema do POSITIVE.
O que fazer?
Boa tarde,
Baixe a biblioteca à partir desse link, que irá funcionar normalmente :
https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/LiquidCrystal_V1.2.1.zip
Abraço !
Fiquei extremamente grato pela rapidez na resposta! Poucos sites o pessoal é rapido assim, parabéns!
Porém ainda não funciona, embora não seja mais o erro do positive. Segue o erro:
This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Arduino: 1.0.6 (Windows 7), Board: "Arduino Uno"
LiquidCrystal_I2CLiquidCrystal_I2C.cpp.o: In function `LiquidCrystal_I2C::pulseEnable(unsigned char)':
C:UsersUsuárioDocumentsArduinolibrariesLiquidCrystal_I2C/LiquidCrystal_I2C.cpp:247: multiple definition of `LiquidCrystal_I2C::pulseEnable(unsigned char)'
LiquidCrystalLiquidCrystal_I2C.cpp.o:C:UsersUsuárioDocumentsArduinolibrariesLiquidCrystal/LiquidCrystal_I2C.cpp:287: first defined here
LiquidCrystal_I2CLiquidCrystal_I2C.cpp.o: In function `LiquidCrystal_I2C::send(unsigned char, unsigned char)':
C:UsersUsuárioDocumentsArduinolibrariesLiquidCrystal_I2C/LiquidCrystal_I2C.cpp:229: multiple definition of `LiquidCrystal_I2C::send(unsigned char, unsigned char)'
LiquidCrystalLiquidCrystal_I2C.cpp.o:C:UsersUsuárioDocumentsArduinolibrariesLiquidCrystal/LiquidCrystal_I2C.cpp:240: first defined here
LiquidCrystal_I2CLiquidCrystal_I2C.cpp.o: In function `LiquidCrystal_I2C::setBacklight(unsigned char)':
C:UsersUsuárioDocumentsArduinolibrariesLiquidCrystal_I2C/LiquidCrystal_I2C.cpp:278: multiple definition of `LiquidCrystal_I2C::setBacklight(unsigned char)'
LiquidCrystalLiquidCrystal_I2C.cpp.o:C:UsersUsuárioDocumentsArduinolibrariesLiquidCrystal/LiquidCrystal_I2C.cpp:167: first defined here
LiquidCrystal_I2CLiquidCrystal_I2C.cpp.o: In function `LiquidCrystal_I2C::begin(unsigned char, unsigned char, unsigned char)':
C:UsersUsuárioDocumentsArduinolibrariesLiquidCrystal_I2C/LiquidCrystal_I2C.cpp:47: multiple definition of `LiquidCrystal_I2C::begin(unsigned char, unsigned char, unsigned char)'
LiquidCrystalLiquidCrystal_I2C.cpp.o:C:UsersUsuárioDocumentsArduinolibrariesLiquidCrystal/LiquidCrystal_I2C.cpp:144: first defined here
LiquidCrystal_I2CLiquidCrystal_I2C.cpp.o: In function `LiquidCrystal_I2C::init()':
C:UsersUsuárioDocumentsArduinolibrariesLiquidCrystal_I2C/LiquidCrystal_I2C.cpp:36: multiple definition of `LiquidCrystal_I2C::init()'
LiquidCrystalLiquidCrystal_I2C.cpp.o:C:UsersUsuárioDocumentsArduinolibrariesLiquidCrystal/LiquidCrystal_I2C.cpp:194: first defined here
C:Program Files (x86)Arduinohardwaretoolsavrbinavr-ar: unable to rename 'core.a'; reason: File exists
LiquidCrystal_I2CLiquidCrystal_I2C.cpp.o: In function `LiquidCrystal_I2C::pulseEnable(unsigned char)':
C:UsersUsuárioDocumentsArduinolibrariesLiquidCrystal_I2C/LiquidCrystal_I2C.cpp:247: multiple definition of `LiquidCrystal_I2C::pulseEnable(unsigned char)'
LiquidCrystalLiquidCrystal_I2C.cpp.o:C:UsersUsuárioDocumentsArduinolibrariesLiquidCrystal/LiquidCrystal_I2C.cpp:287: first defined here
LiquidCrystal_I2CLiquidCrystal_I2C.cpp.o: In function `LiquidCrystal_I2C::send(unsigned char, unsigned char)':
C:UsersUsuárioDocumentsArduinolibrariesLiquidCrystal_I2C/LiquidCrystal_I2C.cpp:229: multiple definition of `LiquidCrystal_I2C::send(unsigned char, unsigned char)'
LiquidCrystalLiquidCrystal_I2C.cpp.o:C:UsersUsuárioDocumentsArduinolibrariesLiquidCrystal/LiquidCrystal_I2C.cpp:240: first defined here
LiquidCrystal_I2CLiquidCrystal_I2C.cpp.o: In function `LiquidCrystal_I2C::setBacklight(unsigned char)':
C:UsersUsuárioDocumentsArduinolibrariesLiquidCrystal_I2C/LiquidCrystal_I2C.cpp:278: multiple definition of `LiquidCrystal_I2C::setBacklight(unsigned char)'
Boa tarde !
Não sei dizer o que é exatamente, mas me parece que há algum conflito entre a biblioteca "nova" e a "antiga". Você apagou a biblioteca anterior ?
Abraço !
Boa tarde ,
Eu gostaria de pedir uma ajuda, segui os passos que voces comentaram no blog e nao consigo rodar o LCD com i2C … sempre tenho o erro do POSITIVE , reinstalei o sw arduido varias vezes , apaguei biblioteca etc etc etc … : ( Alguem tem aquela dica magica pra ajudar ?
.
Abraco Roberto Ctba
Boa tarde
Eu também tive este mesmo problema e estava quase desistindo.
Olhei o erro e notei que o programa esta buscando libraries em um local diferente da que eu esperava. Pois como estava desanimado, baixei vários e creio que gravei em locais diferentes da previsto.
Fiz uma busca geral e apaguei todos, deixei somente um na pasta do arduino.
Não sou muito bom em redação, espero possam ajudar todos os arduianos.
abraços
Mario Kano
Fiz o teste com o meu arduino mega e não deu nada, mas com o uno funcionou perfeitamente, sabe me dizer o pq?
Boa noite Saulo,
No Arduino Mega, você deve usar os pinos 20 (SDA) e 21 (SCL), ao invés dos pinos 4 e 5 do Arduino Uno. Acabei de testar aqui e funcionou normalmente.
Abraço !
Arduino e Cia, obrigado, fiz o teste agora e funcionou perfeitamente!
Obrigado Saulo !
Achei a sua pergunta muito útil e incluí essa informação sobre o Arduino Mega no post. 🙂
Abraço !
Olá!utilizo a versão 1.0.6 em um Windows8, baixei a versão da biblioteca que você citou acima,e segui os passos descritos,copiei o seu sketch.Porém não consigo compilar pois aparece o erro :'LiquidCrystal_I2C' does not name a type. Percebi também que quando importo a biblioteca do LiquidCrystall2C ela não aparece.Quando tento utilizar os exemplos,aparece o mesmo erro.Excluí a biblioteca que já vem inclusa no arduino para testar se não estavam entrando em conflito porém o erro continua. Sabes me dizer como resolvo isso??
Boa tarde,
Eu também utilizei a versão 1.0.6 da IDE, mas com o Windows 7. Acho estranho ela não estar aparecendo quando você importa. Consegue testar com a versão 1.0.5 ?
Abraço.
Boas eu adiciono a biblioteca e faço as ligações mas da-me um erro com o "POSITIVE"
Alguém me pode ajudar?
Boa noite,
Esse erro aparece aonde ?
Cara vlw mesmo, funcionou blza o meu lcd com esse seu tutorial. So nao consegui colocar Caracteres. quando eu tento onde eu peço pra escrever fica um quadrinho branco no lcd.
Tem haver com a biblioteca será?
Boa tarde,
Você fala de caracteres customizados (carinhas, símbolos, etc) ? Se for isso, eu ainda não testei, mas provavelmente é algum ajuste na biblioteca.
Abraço !
Parabéns.
Valeu. Abraço !
Olá,
Há um engano na sua tabela de endereços.
O endereço 0x26 é 0-1-1 e não 1-1-1.
De qualquer forma, parabens pela dica, me ajudou bastante.
Abração.
Renato
Boa tarde Renato,
Muito obrigado, já corrigi a tabela. 🙂
Abraço !
Olá, gostaria de saber quantos LCD's posso conectar em um Arduino Mega através do módulo I2C?
A princípio meu projeto necessita de 10 LCD's com possível expansão para 20 LCD's.
Seria possível através de um Arduino controlar os 10 LCD's através de endereçamento?
Vi aqui na página que o módulo I2C tem 8 possíveis endereços, mas não entendi se posso usar mais que 8, como exemplo, do 0x30 ao 0x40.
Agradeço pela ajuda.
Boa tarde Giuliano,
Não sei se seria possível com esse módulo I2C, já que o próprio datasheet do controlador, o PCF85574, informa que são 8 endereços programáveis.
Abraço !
Senhores boa noite, uma pequena dica que espero sirva para solucionar problemas.
Comigo aconteceu os mesmos problemas o display acendia mas nada da mensagem, recarreguei várias vezes a biblioteca e nada, solucionei da seguinte forma.
Rodei o Sketch "IC2 Scanner" que pode ser encontrado aqui (http://playground.arduino.cc/Main/I2cScanner), com isso consegui o endereçamento da minha placa I2C que no caso foi 0x3F, substitui na linha 8 no lugar do 0x27 e funcionou.
Boa tarde,
Boa dica, pois você pode encontrar por aí placas sem o endereço "padrão" que eu listei acima.
Abraço !
Boa tarde,
Estou com o mesmo problema, o LCD acende mas nada aparece… Às vezes aparece alguns traços ou quadrados na tela, à medida que mexo no contraste… Utilizei o I2C Scanner e verifiquei que o endereço correto é "0x3F"… Mesmo assim não teve efeito algum. Já utilizei vários endereços diferentes e várias bibliotecas diferentes e mesmo assim nada. O meu programa é uma tranca eletrônica e roda perfeitamente, mas sem aparecer absolutamente nada na tela do LCD. Meu arduino é o mega 2560, já tentei utilizar tanto as entradas A4 e A5 quanto as 20 e 21, para SDA e SCL e mesmo assim não tive resultado nenhum. Gostaria de saber o que pode ser e se eu preciso necessariamente soldar A0, A1 e A2 para que funcione, pois isso ainda não fiz.
Agradeço desde já.
Boa noite,
Teoricamente você não precisa mudar nada nos pinos A0, A1 e A2. No meu eu usei direto, sem alterações.
Você tem outro para testar ? Estou suspeitando que o módulo está com defeito.
Abraço!
Jose Espindola, você é um gênio parceiro, eu ja tinha desistido, mais segui sua dica, uma luz no final do túnel e funcionou, estou feliz de mais parceiro deu tudo certo aqui. show um grande abraço pra você e esse site show mesmo vlw
Valeu José, obrigado dica. Fiz o que você sugeriu e funcionou…Resolveu meu problema.
Olá, achei bem bacana o modelo desenhado para explicar essa montagem, parabéns.
Gostaria de saber onde posso encontrar o arquivo .fzpz do módulo I2C para o Fritzing.
Obrigado.
Boa tarde,
Obrigado. Infelizmente eu não tenho, também procurei o componente e como não encontrei, desenhei para fazer o post. 🙂
Abraço !
Olá eu tenho ele.
É só copiar e baixar no link:
http://www.ewap.ch/fritzing/LCM1602_IIC.fzpz
Eu encontrei nesse site gringo aki:
http://www.ewap.ch/?p=208
Olá,
Gostaria de saber como crio caracteres personalizados nesta biblioteca.
Eu testei o exemplo do smiley do Arduino (http://www.arduino.cc/en/Reference/LiquidCrystalCreateChar) mas apareceram apenas caracteres randômicos.
Boa tarde Mateus,
Comigo funcionou, tente este codigo (coloque o include para as bibliotecas wire e liquidcrystal_i2c no inicio do programa):
#include
#include
// Inicializa o display no endereco 0x27
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE);
byte smiley[8] = {
B00000,
B10001,
B00000,
B00000,
B10001,
B01110,
B00000,
};
void setup() {
lcd.begin(16, 2);
lcd.createChar(0, smiley);
lcd.setCursor(1,1);
lcd.write(byte(0));
}
void loop() {}
Abraço !
Boa tarde,
tentei compilar o código e deu esse erro:
teste.ino:2:31: fatal error: LiquidCrystal_I2C.h: No such file or directory
compilation terminated.
Erro compilando.
o que pode ser?
Muito obrigado.
Boa noite Myshel,
Me parece algum erro na instalação da biblioteca.
Abraço !
Myshel…. descobri seu problema que era o mesmo do meu!!…
quando vc descompactar a pasta, vc vai perceber que irão ter duas outras dentro "_MACOSX" e "LiquidCrystal".
Esqueça a primeira pasta e renomeie APENAS a pasta "LiquidCrystal" para "LiquidCrystalI2C".
Depois é só jogar para a Libraries de seu Arduino APENAS a pasta que vc renomeou!
Detalhe fdp!
Arduino é Cia…. parabéns pelo post!… resolveu minha vida! vou até por uma dedicatória pra vc no meu projeto!…rs
abraço a todos!
Valeu Marcel !!! rs 🙂
Abraço.
Como fazer com dois ldc's e 2 sensores dht22, dois controles.
Grato
Boa tarde amigo, as vezes quando dou um Reset o display buga aparecendo tudo embaralhado, e é só eu desligar e ligar que volta ao normal, o que seria esse bug? Seria necessário resistores pullup na saída do Atmega?
Boa noite,
Não sei te dizer, vou tentar arrumar outro módulo para ver se isso acontece.
Abraço.
Bom dia! Como sempre parabéns pelo post, excelente, sempre me ajudando no meu aprendizado.
Estou com um "projetinho" para usar dois LCD´s I2CS com modulo (PCF85574 ).
Somente fiquei na dúvida de como fazer a mudança de endereço no modulo (PCF85574 ), olhando a seleçao de endereço, o quê devo fazer? "curto-circuitar com solda?" os pontos AO;A1;A2; Pra cima? Para o lado? Você poderia mostra uma "tabelinha?".
Desde já muito obrigado
Roberto Carlos
Bom dia Roberto,
Exatamente. Curto-circuitar com solda. Se você olhar a imagem dos detalhes da pinagem, vai ver dois pontos acima do A0, A1 e A2, basta juntar esses pontos. vou tentar fazer um esqueminha pra mostrar, mas se tiver dificuldade, é só entrar em contato.
Abraço e obrigado !
Boa noite,
Fiz exatamente como mostra no tutorial, porém persiste o erro:
'POSITIVE' was not declared in this scope
Boa noite,
Ao transferir o código a tela fica somente azul, já rodei o scanner e o endereço está certo, no meu caso 0x27. Poderia me ajudar
Boa tarde Victor,
Você tentou configurar o contraste usando o potenciômetro do módulo ?
Abraço!
Boa tarde. Obrigado pela resposta tão eficiênte. Fiz conforme você orientou e deu tudo certo. Fiz a solda do A2 para o ponto de cima e o modulo ficou com o endereço 0x23.
Como faço para enviar as fotos?
Mais uma dúvida…vc conhece este modulo?(Universal Serial:UART/IIC/I2C/SPI Adapter for 128×64 LCD DS12864LCD-UNA).
Para mudar de UART para I2C é só fechar os pontos (3 pontos) com solda?
veja no link:
http://www.digole.com/index.php?productID=535
muito obrigado…
Boa tarde,
Utilize o formulário de contato no lado direito da página, eu te respondo com o meu email e aí você pode enviar fotos.
Não conheço esse módulo, mas pela descrição, você tem que unir apenas os 2 pinos da direita (o I2C com o pino do meio).
Aliás, obrigado pela informação, estava procurando um módulo que funcionasse com display gráfico 128×64. 🙂
Vc tem esse módulo ? Comprou aonde ?
Abraço!
Olá esta dando esse erro aqui, poderia me ajudar
ChangeUID:8: error: 'POSITIVE' was not declared in this scope
Boa noite Bruno,
Tente baixar a biblioteca deste link: https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/LiquidCrystal_V1.2.1.zip
Abraço!
Baixei no link que vc postou para mim, o erro continua o mesmo.
sketch_aug20a:8: error: 'POSITIVE' was not declared in this scope
NO MEU DISPLAY A TELA FICA AZUL E A PRIMEIRA FILEIRA DE CIMA FICA COMPLETAMENTE ACESA , EU ENVIEI O SKETCH NAO ACONTECEU NADA . O QUE EU FAÇO 😕
Não tenho certeza se é o real motivo… faltam os resistores de pullups na ligação.
Tive problemas também, quando o lcd não era necessariamente iniciado com o microcontrolador.
O barramento I2C fica ocioso em nível logico alto com resistor de pull-up nas vias SDA e SCL.
Assim quando o LCD não comunicar e ficar só na tela azul borrada, é só resetar o micro. Sem os resistores tinha que resetar muitas vezes até que por acaso a comunicação sincronizava, na sorte.
vejam o esquema.
http://www.robot-electronics.co.uk/images/i2ca.GIF
Dependendo do circuito, pode ser esse o problema sim. Aqui funcionou normalmente durante os testes, só não sei se esse módulo já tem os resistores pull up embutidos.
Abraço!
O meu ficou assim, com a tela azul e a primeira fileira acesa, porque o endereço estava incorreto, utilizei o i2c scaner e alterei o código e funcionou.
Preciso de uma ajuda
Olá,
Não entendi como usar a tabela para alteração de endereço. Preciso usar pinos analógicos diferentes dos A4 e A5. Se eu for usar os pinos A0 e A1, qual endereço seria e porque? O endereço 0x27, que corresponde aos pinos A4 e A5, na tabela se refere ao A0 A1 e A2. Porque?
Obrigado
Bom dia Anderson,
A comunicação do módulo é via I2C, então você terá que utilizar os pinos A4 e A5 do Arduino mesmo.
As marcações A0, A1 e A2 se referem apenas à configuração do endereço do módulo (0x20, 0x21, 0x22 etc), e não tem nada a ver com a configuração das portas.
Resumindo: No Arduino Uno, o módulo será sempre ligado às portas A4 e A5, mas você pode ligar mais de um módulo no mesmo barramento, com endereços diferente, para isso serve o A0, A1 e A2 .Você pode ter o primeiro módulo configurado como 0x20, e o segundo com o 0x25, por exemplo.
Abraço!
Prezados,
Continuo a receber o sms:
sketch_sep21a.ino:10:45: error: 'POSITIVE' was not declared in this scope
Já baixei a biblioteca de referencia no link disponível no vosso site nem com isso o problema se resolve.
Agradeço o vosso suporte e ajuda.
Mayele
[email protected]
Prezados,
continuo sem conseguir de aparecer as letras no meu LCD 20×4 com o Modulo I2C, ele só fica com uns quadradinhos branco e não aparece a escrita, já mudei o contraste mais não aparece nada só diminui a intensidade da cor do quadradinho. Já fiz todos os teste dos comentários e do tutorial e não consigo nada e quando vou fazer o Rodei o Sketch "I2C Scanner" e da este erro device found e não saber se é 0x27, 0x20 ou 0x3F. Alguém tem alguma solução??
Bom dia Leonardo,
Já tentou colocar resistores pull-up nos pinos SDA e SCL ? Eu não precisei colocar, mas talvez o seu LCD precise disso.
Abraço!
Vou tentar!!
Arduino e Cia, tem algum e-mail a onde eu posso mandar um vídeo do que está acontecendo. E como coloco esses resistores nos pinos SDA e SCL, pois estou utilizando o Modulo Serial I2C
Eu comprei na Filipeflop e estou utilizando este LCD e Modulo
— LCD 20×4
http://www.filipeflop.com/pd-6b7e6-display-lcd-20×4.html?ct=41d86&p=1&s=1
–Modulo Serial I2C
http://www.filipeflop.com/pd-179dbc-modulo-serial-i2c-para-display-lcd-arduino.html?ct=41d96&p=1&s=1
Boa tarde Leonardo,
Por favor entre em contato utilizando o formulário de contato no lado direito da página, e conversamos por email, assim você pode me mandar o vídeo.
Abraço!
Ola, é possivel o mesmo lcd, ( usando A4 e A5 ) no uno funcionar ok e no mega não ?
Preciso alterar algo para que funcione no mega tambem ?
Grato
desculpe o incomodo, acabei de postar uma pergunta mas ja resolvi .
Muito obrigado pelo post
Boa tarde,
Legal que conseguiu resolver. Qualquer coisa, estou à disposição. 🙂
Abraço!
Boa Noite, seria possível usando um lcd com o modulo i2c, colocar uma certa informação na tela, e depois colocar um Push Button, para aparecer outra informação na tela? Por exemplo, no lcd esta mostrando Temperatura: 35 °C, dai eu apertaria o Push Button, e na tela apareceria outra informação, tipo Umidade: 50%.
Boa noite.
Seria possível usar junto com o LCD e o módulo I2C, um Push Button, para mostrar diferentes informações, em diferentes telas?
Por exemplo, na tela do LCD apareceria Temperatura: 35°C, dai eu apertaria o botão, e a tela mostraria Umidade: 40%, mas sem mostrar a temperatura, mostrando só a umidade.
Desde já agradeço.
Bom dia Guilherme,
Eu não tenho nenhum código pronto com isso, mas é uma boa sugestão. Seria legal também você colocar números grandes no display, como eu faço neste post:
http://www.arduinoecia.com.br/2013/04/lcd-16×2-rtc-numeros-grandes.html
Abraço!
Boa tarde!
Não estou tento sucesso com o seu código, meu lcd apenas fica acendendo e desligando. As ligações estão corretas, o endereço é 0x27 e não consigo encontrar o erro.
Desde já agradeço.
Boa noite Vinicius,
Estranho. Pelo que você está descrevendo, uma parte do programa funciona, pq uma das funções é ligar e desligar o backlight.
Você já conferiu com o I2CScanner se o endereço é mesmo o 0x27 ?
Abraço!
Estou com o mesmo problema, ele pisca e não aparece nada de texto. já troquei o 0x27 por 0x3F mas daí tiro o codigo de piscar e ele não comunica, ou seja, está comunicando certo com a 0x27
Boa tarde Arduino e Cia, usei o código que foi passado e não obtive sucesso na primeira vez, foi quando fiz o I2CSanner e descobri que o endereço era o 0x3F e nao o 0x27, e isso mesmo? coloquei o endereço e esta funcionando porem o brilho do fundo esta muito forte e quase nao aparece os caracteres, sim eu já mexi no potenciômetro e não tem como austar mais, tem alguma dica ou algo que possa fazer?
muito obrigado pela atenção
Abraço
Boa tarde Jonathan,
Sim, em alguns módulos tem vindo endereços diferentes, mas com o I2C Scanner fica fácil de descobrir isso.
Quanto ao contraste, tente adicionar esse comando antes do lcd.setBacklight():
lcd.setBacklightPin(Pino_Backlight,POSITIVE);
Abraço!
Ola. Gostaria de saber como o módulo consegue ligar e desligar o backlight se jumper não foi utilizado?
Boa tarde Iraí,
Ele usa um dos pinos do controlador para fazer isso.
Abraço!
boa tarde
o meu codigo da erro no positive porque??
Boa tarde Zé!
Você utilizou a biblioteca que está no post ?
Abraço!
Bom dia!
No meu caso inicialmente só ficava azul o visor, dai passei o I2C Scanner, e o resultado foi 0x3F.
Alterei o Código, e a partir deste momento o LCD começou a piscar conforme o código faz. Porem não aparece as letras, sabe o motivo?
Estou Utilizando uma Arduino Nano (utilizando os pinos A4 e A5).
Segue parâmetros
#define I2C_ADDR 0x3F
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
#define BACKLIGHT_PIN 3
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin,BACKLIGHT_PIN,POSITIVE);
Boa noite Bruno,
Você não é o primeiro a relatar esse problema.. estranho. Pode me dizer onde comprou esse módulo e se você já tentou ajustar o contraste usando o potenciômetro da placa ?
Abraço!
também estou esse exato problema… alguém tem a solução?
Boa noite!
Meu caso quando envio o código para LCD, Ex:
#include
#include
LiquidCrystal_I2C lcd(0x27,20,4);
void setup()
{
lcd.init();
lcd.backlight();
lcd.print("Hello, world!");
}
void loop()
{
}
Aparece apenas no Display LCD a letra (H), e não Hello, world.
Gostaria de ajuda para solucionar o problema.
Att!
Bom dia,
Você tentou usar o código exatamente como está no post ? Deu certo ?
Abraço!
Sempre que envio uma mensagem para o LCD, aparece apenas a primeira letra da mensagem e nunca a mensagem completa. Já troquei a biblioteca do liquidCrystal_I2C por outras versões, mas o problema persiste. Estou acreditando que o Display LCD esta com defeito.
Estou com o mesmo problema, só aparece a primeira letra, mas rodei o exemplo da biblioteca, e as palavras que digitei via serial aparecem inteiras.
tenho o mesmo problema, alguém conseguiu resolver?
Olá, gostaria de saber se é possível colocar esse display em vez do display LDC do tipo JHD 162A no projeto abaixo e se sim, como? Grato!
#include "LiquidCrystal.h"
#include "Limits.h"
const int sensorLuz = 0; //Pino analógico que o sensor de luz está conectado.
const int sensorTemp = 1; //Pino analógico que o sensor de temperatura está conectado.
//Variáveis
int valorSensorLuz = 0; //usada para ler o valor do sensor de luz.
int valorSensorTemp = 0; //usada para ler o valor do sensor de temperatura.
int menorValorTemp = INT_MAX; //usada para armazenar o menor valor da temperatura.
//Criando um objeto da classe LiquidCrystal e
//inicializando com os pinos da interface.
LiquidCrystal lcd(9, 8, 5, 4, 3, 2);
void setup() {
//Inicializando o LCD e informando o tamanho de 16 colunas e 2 linhas
//que é o tamanho do LCD JHD 162A usado neste projeto.
lcd.begin(16, 2);
}
void loop() {
//Lendo o valor do sensor de luz
valorSensorLuz = analogRead(sensorLuz);
//Para evitar as grandes variações de leitura do componente
//LM35 são feitas 8 leitura é o menor valor lido prevalece.
menorValorTemp = INT_MAX; //Inicializando com o maior valor int possível
for (int i = 1; i <= 8; i++) {
//Lendo o valor do sensor de temperatura.
valorSensorTemp = analogRead(sensorTemp);
//Transformando valor lido no sensor de temperatura em graus celsius aproximados.
valorSensorTemp *= 0.54 ;
//Mantendo sempre a menor temperatura lida
if (valorSensorTemp < menorValorTemp) {
menorValorTemp = valorSensorTemp;
}
delay(150);
}
//Exibindo valor da leitura do sensor de temperatura no display LCD.
lcd.clear(); //limpa o display do LCD.
lcd.print("Temp: "); //imprime a string no display do LCD.
lcd.print(menorValorTemp);
lcd.write(B11011111); //Simbolo de graus celsius
lcd.print("C");
//Exibindo valor da leitura do sensor de luz no display LCD.
lcd.setCursor(0,1); //posiciona o cursor na coluna 0 linha 1 do LCD.
lcd.print("Luz: "); //imprime a string no display do LCD.
lcd.print(valorSensorLuz);
delay(2000); //aguarda 2 segundos
}
Ola!
Para que serve lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE);
esses numeros sao das portas digitais do arduino?
Eu tbem estava com esse mesmo problema.
exclui a biblioteca I2C que vc instalou, baixa a que tem na descricao do link fornecido pelo ARDUINO & CIA e extrai a pasta, troca o nome dela para liquidCrystal_I2C, e adiciona na biblioteca.zip do arduino, reinicia o app e copia a programacao e cola, copila e ja eraaaa..!!!!
abraccsss
Fiz exatamente como vc descreveu, e deu certo. Agora é só alegria.
Valeu pela dica, muito obrigado.
Abraço!
Desculpe a interferência, já renomeei a pasta , já coloquei a mesma na library, mas não funciona, o que é cola e copia, como faço isto?
Obrigado
Olá alguém pode me ajudar? estou tentando usar o modulo I2C (PCF8574T) acoplado ao display 20×4 e conectado ao Arduíno Uno. Porem não esta aparecendo nada no visor, já mudei a biblioteca e nada. tudo parece ser problema de comunicação…. mas não estou conseguindo solucionar, tem alguém ai pra me ajudar????
Link para ver o que esta aparecendo no display.
https://goo.gl/photos/uU9BgkBc7UPepit3A
Olá alguém pode me ajudar? estou tentando usar o modulo I2C (PCF8574T) acoplado ao display 20×4 e conectado ao Arduíno Uno. Porem não esta aparecendo nada no visor, já mudei a biblioteca e nada. tudo parece ser problema de comunicação…. mas não estou conseguindo solucionar, tem alguém ai pra me ajudar????
Link para ver imagem do display
https://goo.gl/photos/uU9BgkBc7UPepit3A
Oi Diogo,
Você chegou a verificar o endereço do módulo com o I2CScanner ?
Abraço!
ola estou com o problema do erro do Positive vc sabe o que e?
Olá,
Muito bem explicado o tutorial, parabéns.
Fiz o meu projeto em um Arduino Uno, funcionou perfeitamente, agora estou migrando para o arduino pro mini, e não existe as pinos analógicos 4 e 5, somente os pinos 6 e 7, mas não consegui fazer funcionar, na verdade não consegui entender foi informado as portas 4 e 5, tem alguma dica?
Muito obrigado
Olá,
Muito bem explicado o tutorial, parabéns.
Fiz o meu projeto em um Arduino Uno, funcionou perfeitamente, agora estou migrando para o arduino pro mini, e não existe os pinos analógicos 4 e 5, somente os pinos 6 e 7, e não consegui fazer funcionar, na verdade não consegui entender pq utilizamos as portas 4 e 5 no UNO, tem alguma dica?
Muito obrigado
Boa noite,
Os pinos A4 e A5 são os pinos utilizados pela interface I2C do Arduino. O Pro Mini tem esses pinos (pelo menos o que eu tenho aqui tem os pinos A4 e A5).
Dê uma olhadinha nesse diagrama, por favor: http://www.robotsteel.com/arduino_promini_pinnar.png
Abraço!
Boa noite,
Eh verdade , fica no meu da placa.
Valeu, muito obrigado!
Cara…li todos os comentários aqui.
O meu tava dando erro no Positive – Resolvido!
Não localizava o modulo (0x3F) – Resolvido!
O codigo não dá erro, compila certo – Resolvido.
E ainda não funciona. Não aparece nada no LCD.
Alguma dica?
Boa noite,
Dificil hein ? rs. o seu módulo é igual ao do post ?
Abraço!
Olá tudo bem?
Estou com o mesmo problema do LCD não aparece as letras. Só que a programação é muito complexa. Este LCD está ligado num DUEMILANOVE alterado que o dono do projeto indicou de comprar via aliexpress.
Ele diz no tutorial que A5-SCL e o SDA- A4 mas não está funcionando.
Sei que as informações estão vagas mas realmente não sei mais o que fazer visto que o dono do projeto (que é da Russia) não me responde.
O LCD tem o controlador já soldado nele.
Poderia me ajudar?
O curioso que eu rodei aquele sketch para ver qual o endereço do LCD e ele não achou.
Obrigado!
Oi Luciano,
Realmente o primeiro passo seria o I2CScanner encontrar o módulo…. vc tem algum outro Arduino para testar ?
Abraço!
Olá!
Então, hoje durante a tarde aconteceu o seguinte: Eu tenho 2 LCD que vem soldado o shield controlador. Os 2 eu testei no arduino UNO com a sua biblioteca 🙂 e eles funcionaram! Ficaram piscando mas apareceu as letras. Agora, quando ligo eles no DUEMILANOVE da Keyes (funduino) ele volta a ficar só aceso o backlight mesmo estando na pinagem que ele pediu no tutorial. E descobri os endereços. O LCD + controlador da Keyes que comprei na Aliexpress (o que ele mandou comprar) é 0x27 e vi que está assim na programação. E o outro que comprei aqui é o 0x3F.
Muito obrigado pela ajuda!!
Olá!
Funcionou! Na verdade o erro estava no tutorial dele. Ele falou uma coisa e na foto que exemplificava mostrava outra. Eu fucei aqui e finalmente achei a entrada certa.
Obrigado!!
Ola!
Para um LCD 20×4 I2c a ligação é a mesma ?
Obrigado!
Boa tarde,
É sim, não esqueça de mudar a linha 12 do programa para:
lcd.begin (20,4);
Abraço!
Boa noite, quando tento compilar o código aparece esse erro:
C:UsersjosemDocumentsArduinolibrariesliquidCrystal_I2CI2CIO.cpp:35:26: fatal error: ../Wire/Wire.h: No such file or directory
#include <../Wire/Wire.h>
^
compilation terminated.
exit status 1
Erro compilando.
Oq poderia ser??
Desde já grato pela ajuda.
Boa noite,
Coloque no programa o include para a biblioteca Wire.h
Abraço!
Aqui acontece o mesmo erro. #include já está incluso no código.
Tenho o mesmo problema. Possuo o include no inicio da lógica e ja tentei incluir o Wire.h nas libraries do Arduino. Não funciona. Talvez seja um problema devido as atualizações do software.
É só abrir o arquivo LiquidCrystal_I2C.cpp e mudar a linha
#include <../Wire/Wire.h>
para
#include
Bondia!
Fiz esse procedimento e o erro continua.
Olá, estou com problema na biblioteca wire. Poderiam me ajudar? Ela deve estar na pasta de arquivo do arduino?
Oi Ariane,
Tem que estar na pasta Libraries.
Abraço!
Bom dia, o meu não ta compilando fica mostrando essa mensagem
C:UsersjadirDocumentsArduinolibrariesLiquidCrystal_I2C._FastIO.cpp:1:9: error: 'Mac' does not name a type
C:UsersjadirDocumentsArduinolibrariesLiquidCrystal_I2C._FastIO.cpp:1:163: error: expected unqualified-id before numeric constant
Usando a biblioteca Wire na versão 1.0 na pasta: C:Programasarduino-nightly-windowsarduino-nightlyhardwarearduinoavrlibrariesWire
Usando biblioteca LiquidCrystal_I2C na pasta: C:UsersjadirDocumentsArduinolibrariesLiquidCrystal_I2C (legacy)
exit status 1
Error compiling for board Arduino/Genuino Uno.
Boa tarde,
Aparentemente é algum erro na instalação da biblioteca. Já verificou se não está em conflito com alguma outra ?
Abraço!
ta dando isso agora mais eu coloco o dois includes no começo
C:Programasarduino-nightlylibrariesLiquidCrystal_I2CI2CIO.cpp:35:26: fatal error: ../Wire/Wire.h: No such file or directory
#include <../Wire/Wire.h>
Eu boto a biblioteca na pasta libraries que o arduino cria nos meus documentos ou na pasta que eu extrai o arduino?
Ja tentei nas duas e não deu. Ele não compila
Boa noite,
Como você instalou a IDE ? Coloque na pasta em "meus documentos" e veja se aparece na IDE.
Abraço!
Pessoal tive o mesmo problema, é que não temos a biblioteca Wire, segue o link onde vcs podem acrescentar na suas bibliotecas: https://github.com/codebendercc/arduino-library-files
Bom dia !
Estou com um problema na hora de transferir os dados para o arduino, aparece a seguinte frase
"exit status 1
Error compiling for board Arduino/Genuino Uno." o que pode ser ? meu display é 20×4 e meu arduino e uno R3n
Boa tarde,
Não parece ser nada relacionado ao programa. Você tentou transferir algum outro ?
Abraço!
ola, o meu esta dando o seguinte erro.
Arduino: 1.6.8 (Windows 7), Placa:"Arduino/Genuino Uno"
C:Program Files (x86)ArduinolibrariesLiquidCrystalIC2I2CIO.cpp:35:26: fatal error: ../Wire/Wire.h: No such file or directory
#include <../Wire/Wire.h>
^
compilation terminated.
exit status 1
Error compiling for board Arduino/Genuino Uno.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
e esta selecionado o arduino uno la nas configurações normal…
sabe dizer o que poderia ser? obrigado
Meu Deus espero que tenha alguem oline 🙂
// Programa : Display LCD 16×2 e modulo I2C
// Autor : Arduino e Cia
#include
#include
// Inicializa o display no endereco 0x27
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE);
void setup()
{
lcd.begin (16,2);
}
void loop()
{
lcd.setBacklight(HIGH);
lcd.setCursor(0,0);
lcd.print("Arduino e Cia !!");
lcd.setCursor(0,1);
lcd.print("LCD e modulo I2C");
delay(1000);
lcd.setBacklight(LOW);
delay(1000);
}
Ao compilar da erro:
Error compiling for board Arduino/Genuino Uno.
Olá pessoal, alguem pode me informar onde consigo ou me enviar o arquivo do LCD 20×4 o do I2C para desenhar no Fritzing? Qualquer coisa por emial, [email protected]
Grato
Boa noite estou pegando o programa para fazer um teste mais quando esta carregando aparece o seguinte erro Arduino: 1.6.8 (Windows 7), Placa:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"
C:UsersBrunoDocumentsArduinolibrariesLiquidCrystal_I2CI2CIO.cpp:35:26: fatal error: ../Wire/Wire.h: No such file or directory
#include <../Wire/Wire.h>
^
compilation terminated.
Foram encontradas múltiplas bibliotecas para "LiquidCrystal_I2C.h"
Usado: C:UsersBrunoDocumentsArduinolibrariesLiquidCrystal_I2C
Não usado: C:UsersBrunoDocumentsArduinolibrariesLiquidCrystalI2C
Não usado: C:UsersBrunoDocumentsArduinolibrariesLiquidCrystal
exit status 1
Error compiling for board Arduino/Genuino Mega or Mega 2560.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
poderia me auxiliar onde estou errado baixei a biblioteca no link mudei o nome mais continua dando esse conflito help!!!!
Estou utilizando um PCF8574P ligado com um display 16×2, a IDE que utilizo é1.6.7 mas não estou conseguindo fazer funcionar, aparece só as primeiras letras de cada linha. Usando a IDE 0022 e outra biblioteca está funcionando normalmente, mas essa IDE é muito ruim, alguém sabe a solução para o problema nessa IDE mais nova? Já usei varias bibliotecas e nenhuma funcionou direito… ????
Pra quem estiver com esse problema de aparecer apenas a primeira letra de cada linha, é um bug da biblioteca, baixe esta:
https://github.com/marcoschwartz/LiquidCrystal_I2C
pra mim funcionou.
Toda vez que tento, qualquer coisa que eu escreva só aparece no lcd a primeira letra. Alguem sabe como resolver?
Oi João,
Vc soldou o módulo no LCD ? Isso me parece problema de conexão.
Abraço!
Pra quem estiver com esse problema de aparecer apenas a primeira letra de cada linha, é um bug da biblioteca, baixe esta:
https://github.com/marcoschwartz/LiquidCrystal_I2C
pra mim funcionou.
Bom dia, estou com o seguinte erro na compilação do programa:
C:Program Files (x86)ArduinolibrariesLiquidCrystal_I2CI2CIO.cpp:35:26: fatal error: ../Wire/Wire.h: No such file or directory
#include <../Wire/Wire.h>
^
compilation terminated.
Usando a biblioteca Wire na versão 1.0 na pasta: C:Program Files (x86)ArduinohardwarearduinoavrlibrariesWire
Usando biblioteca LiquidCrystal_I2C na pasta: C:Program Files (x86)ArduinolibrariesLiquidCrystal_I2C (legacy)
exit status 1
Erro compilando para a placa Arduino/Genuino Uno
sou novo em arduino, alguem pode me ajudar?
Boa noite,
Está faltando a biblitoeca wire na sua IDE.. qual versão de IDE você está usando ?
Abraço!
Obrigado pela atenção. A IDE é 1.6.9, ja desinstalei e instalei umas tres vezes e nada, sempre o mesmo erro.
obrigado pela ajuda.
Boa tarde,
Consegui reproduzir o erro com a versão 1.6.9 da IDE. tente fazer o seguinte:
1 – entre na pasta da biblioteca LiquidCrystal_I2C
2 – Edite o arquivo I2CIO.cpp
3 – altere a linha 35 de:
#include <../Wire/Wire.h>
para:
#include < Wire.h > (retire os espaços em branco)
4 – Salve o arquivo I2CIO.cpp
5 – Tente compilar novamente
Aqui rodou legal depois dessa alteração, só não consegui testar ainda com o módulo I2C.
Depois me fale se funcionou, por favor. 🙂
Abraço!
Adilson
Boa noite Adilson! voce é o cara, ja estava quase arrancando a solda do i2c do lcd mas agora ficou show de bola
problema resovido obrigado pela atenção.
abraços
Wagner.
Opa! Legal Wagner ! Que bom que funcionou.
Abraço!
Adilson
Para descobrir o endereço base I2C deste módulo basta verificar se o circuito integrado existente é o PCF8574T(27H) ou o PCF8574AT(3FH).
Estou aprendendo ainda a usar o arduino e gostaria de primeiro aprender no simulador e depois fazer na placa!
Gostaria de Saber qual é o software que você usa para mostrar a montagem?
http://4.bp.blogspot.com/-_HF49j9nId8/VJB4VCiL9jI/AAAAAAAADOE/Tc9sWafCtVM/s1600/Circuito-Arduino-i2c-display-lcd-16×2.png
Oi Vinicius,
Para desenhar os circuitos eu uso o Fritzing, que vc pode baixar neste endereço: http://www.fritzing.org
Abraço!
Ah sim, baixei ele aqui, mas não achei por exemplo esse I2C, e alguns módulos… Haha
Como proceder?
Olá pessoal seguidores do canal Arduino e Cia, depois de longas tentativas e horas de pesquisas, finalmente consegui fazer funcionar meu modulo I2C. No 1º momento ficou oscilando a frase Arduino e Cia acendia e apagava ai troquei o setBacklight LOW por HIGH, ficou beleza. Só uma coisa não entendi, se mexe em algum fio, tem que carregar de novo o código, alguém sabe porque?
meu lcd não acende a luz de fundo, já usei a tag "lcd.setBacklight(HIGH);" e "lcd.backlight();" e nada… tÔ com biblioteca liquidcrystal v1.2.1 e versão do arduino 1.6.9 , como resolver isso, pq se for ligar luz de fundo diretamente vai ficar uma gambiarra.
Oi Isaac,
O jumper do backlight está no conectado corretamente ?
Abraço!
Olá pessoal, estou tentando utilizar o display WH1602A, e sem sucesso. Coloquei na protoboard, e fiz os ajustes com os pinos, ligando o 16 e o 15 do L2C na porta 1 e 2 do display. Mas mesmo assim o display não funciona. Fica ligado direto, com alto contraste. Inclusive tentei diminuir o contraste via potenciometo do L2C, mas quase não já diferença.
Notei que se inicio com LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, NEGATIVE); o contraste até ajusta mais, mas mesmo assim o problema persiste.
Será que tem mais alguma manha para ligar este display no L2C?
Abraço e obrigado pessoal!
Boa tarde,
A pinagem do WH1602A é um pouco diferente. Tente fazer as alteraçõs, comparando com a pinagem do HD44780. Nesse link eu falo da pinagem do WH1602A:
http://www.arduinoecia.com.br/2013/03/display-lcd-winstar-wh1602a.html
Abraço!
Olá, segui a orientação descrita acima, fiz o download e descompactei o arquivo. Entretanto, na hora de compilar para o arduino dá o seguinte erro e se pudesse me ajudar ficaria muito grato…
C:Program FilesArduinolibrariesLiquidCrystalI2CI2CIO.cpp:35:26: fatal error: ../Wire/Wire.h: No such file or directory
#include <../Wire/Wire.h>
^
Se pudesse me ajudar ficaria muito agradecido, pois segui os passos descritos mas a compilação está dando erro:
C:Program FilesArduinolibrariesLiquidCrystalI2CI2CIO.cpp:35:26: fatal error: ../Wire/Wire.h: No such file or directory
#include <../Wire/Wire.h>
Boa noite Bruno,
Desculpe a demora. Tente esse procedimento:
1 – entre na pasta da biblioteca LiquidCrystal_I2C
2 – Edite o arquivo I2CIO.cpp
3 – altere a linha 35 de:
#include <../Wire/Wire.h>
para:
#include < Wire.h > (retire os espaços em branco)
4 – Salve o arquivo I2CIO.cpp
5 – Tente compilar novamente
Depois me fale se funcionou, por favor. 🙂
Abraço!
Adilson
No meu caso continua dando o erro NO POSITIVE, como dos outros colegas, baixei a biblioteca do link mas tambem nao resolveu, alguém pode me ajudar?
Oi Eduardo,
Você tentou a biblioteca desse link aqui? https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/LiquidCrystal_V1.2.1.zip
Abraço!
ola amigo esse link ta quebrado, onde era hospedado saiu do ar
Oi Kalismar,
Muito obrigado! Atualizei o post e já aproveitei pra dar uma revisada. 🙂
Abraço!
Adilson
para os que tem problemas de Compilação com o wire.h
Resolucao:
baixe do git https://github.com/codebendercc/arduino-library-files
descompacte coloque os arquivos da pasta library deste zip na pasta library do arduino
e resolvido
Olá. Estou tendo problemas quanto a utilização do LCD. O seguinte erro aparece e não sei como corrigi-lo.
C:Program Files (x86)ArduinolibrariesLiquidCrystal_I2CLiquidCrystal_SR2W.cpp:48:93: warning: unused parameter 'lines' [-Wunused-parameter]
void LiquidCrystal_SR2W::init(uint8_t srdata, uint8_t srclock, t_backlighPol blpol, uint8_t lines, uint8_t font)
^
C:Program Files (x86)ArduinolibrariesLiquidCrystal_I2CLiquidCrystal_SR2W.cpp:48:108: warning: unused parameter 'font' [-Wunused-parameter]
void LiquidCrystal_SR2W::init(uint8_t srdata, uint8_t srclock, t_backlighPol blpol, uint8_t lines, uint8_t font)
^
In file included from C:Program Files (x86)ArduinolibrariesLiquidCrystal_I2CLiquidCrystal_SR3W.h:62:0,
from C:Program Files (x86)ArduinolibrariesLiquidCrystal_I2CLiquidCrystal_SR3W.cpp:77:
C:Program Files (x86)ArduinolibrariesLiquidCrystal_I2CLCD.h:71:40: warning: unused parameter 'uSec' [-Wunused-parameter]
inline static void waitUsec ( uint16_t uSec )
^
C:Program Files (x86)ArduinolibrariesLiquidCrystal_I2CLCD.h:444:43: warning: unused parameter 'value' [-Wunused-parameter]
virtual void setBacklightPin ( uint8_t value, t_backlighPol pol ) { };
^
C:Program Files (x86)ArduinolibrariesLiquidCrystal_I2CLCD.h:444:64: warning: unused parameter 'pol' [-Wunused-parameter]
virtual void setBacklightPin ( uint8_t value, t_backlighPol pol ) { };
^
C:Program Files (x86)ArduinolibrariesLiquidCrystal_I2CLCD.h:463:40: warning: unused parameter 'value' [-Wunused-parameter]
virtual void setBacklight ( uint8_t value ) { };
Agradeço o retorno.
Olá. Parabéns para o artigo.
Uma pergunta: se quero mais que um display, posso conectar os fios do I2C diretamente com todos módulos?
<a href="http://rentabilidadetesourodireto.com.br” target=”_blank”>Pedro</a>
Oi Pedro,
Sim, você usa os mesmos pinos SDA e SCL para todos os módulos. provavelmente você vai precisar de resistores pull-up.
Dê uma olhada neste artigo, por favor: http://tronixstuff.com/2010/10/20/tutorial-arduino-and-the-i2c-bus/
Abraço!
Hi! Thanks for this tutorial it's the best I found on the internet!
Hey "Androsoft" !!! 🙂
Thank you very much, and best regards!
Adilson
Esse programa so deu certo com a primeira biblioteca desse link:
https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
Gostaria de usar este módulo junto com um pc, isso é possível. Quero montar um htpc ou web radio player, tenho vários pcs antigos aqui e não queria comprar um raspberry pi ou similar para isso, sem falar do preço nas alturas. Não achei muita coisa cobre a integração PC + Arduino.
Oi Robson,
Você pode usar o Processing para criar uma interface gráfica e se comunicar com o Display. Eu não tenho nenhum artigo específico (ainda) sobre o I2C com Processing, mas tenho outros exemplos aqui no blog, dê uma olhada, por favor:
http://www.arduinoecia.com.br/search/label/processing
Abraço!
Vou pesquisar mais, obrigado pela atenção. Abraço.
Obrigado pelas dicas pessoal!
Não estava fazendo meus displays funcionarem e estas dicas foram muito valiosas! Obrigado!
Boa noite. Estou tentando configurar o display com um Arduino Uno contendo um ATmega 328p. Sou iniciante na área. Mesmo após carregar o Sketch, o display permanece com a primeira linha toda branca e a segunda apagada. Obs. Esse Arduino tem as conexões SCL e SDA. Tentei nessas e nas analógicas, sem sucesso.
Meu display também estava assim e seguindo o tutorial, fiz o escaneamento do endereçamento conforme link anexo no post e depois alterei o programa. No meu caso encontrou como 0x3F
Boa noite a todos!
Obrigado a equipe arduino e Cia por disponibilizar para nós estas informações e essa troca de ideias.
Vejo que os problemas são semelhantes, estava tendo problemas com erros diversos, fui descobrir minha pasta do arduino estava salva no desktop, foi só enviá-la para pasta meus documentos, copiei o código da programação novamente, ai sim compilou normalmente. Agora é só chegar em casa e passar pro Arduino para ver se deu tudo certo. Ha!!!não se esqueça de seguir os passos acima copiando a biblioteca LiquidCrystal_I2, e colando-a na pasta libraries do Arduino.
Boa noite a todos!
Gostaria de agradecer a toda equipe Arduino e Cia, pelas informações aqui postadas e por nos permitir essa troca de informações.
Sou principiante nesta área, tenho muito que aprender.Vejo que os problemas são semelhantes. O que aconteceu comigo foi que baixei o programa do Arduino no desktop, foi só baixar a biblioteca do "I2C" e copiar na pasta librari, e passar a pasta para meus documentos deu tudo certo, pelo menos a programação. Estou no trabalho, amanhã vou testar com Arduino, se funcionar compartilho com vocês.
Valeu! Abraço. 🙂
Bom dia!
Compilei o sketch supra, porém o meu display 16×2 com I2C, fica com o fundo verde e aparece a primeira fileira com retângulos cheios.
Preciso de ajuda, estou iniciando agora.
Obrigado.
Boa noite,
Confira se o endereço I2C do módulo está correto, por favor.
Abraço!
Bom dia. Gostaria de saber se é possível conectar mais de um Display LCD e uma mesma placa Arduino Mega. Obrigado.
Oi Sidnei,
Sim, a interface I2C permite que vc ligue vários displays em um mesmo barramento. Dê uma olhada no post sobre como mudar o endereço do módulo, pois nesse caso em que você ligar 2 ou 3 deles no mesmo barramento I2C, cada um deve ter um endereço diferente, ok ?
Abraço!
oi
fiz a programação arduino uno, led fica azul e piscando não aparece nada, já tentei regular no potenciômetro e não deu certo
Pra mim também
Acabei de testar com um display 20×4 e funciona perfeitamente! ! !
Obrigado por compartilhar esse conhecimento! ! ! !
Valeu Minoru! Abraço!
Muito bom, obrigado.
Valeu! Abraço.
o meu tambem deu erro no positive, e eu tenho ambas as bibliotecas instal
adas
Boa noite. Depois de muito pelejar meu display 2004A (20 x 4) funciona, "pero no mucho": Se eu escrevo uma frase com, digamos, 50 caracteres, ele preenche as linhas na sequência 1,3 2,4. O que poderia ser? Obrigado.
Oi Otto,
Isso não é um problema na conexão, mas sim na programação. O display tem apenas 20 colunas, logo, se a sua string tem 50 caracteres, ele automaticamente ai jogar isso na linha seguinte… O que você pode fazer é criar uma programação para rolagem das informações.
Abraço!
Isso acontece porque o primeiro chip controlador do Display manipula as linhas 1 e 3 e o segundo a 2 e 4, você vai ter que modificar seu programa tratando isso
Devo utilizar lcd.setBacklight(LOW) ou lcd.noDisplay(), tem alguma diferença?
Boa tarde,
gostaria de saber se tem algum programa que poderia me indicar para fazer simulações com o Arduíno?
E para gerar os esquemáticos? Estou fazendo um projeto e preciso documenta-lo.
Desde já agradeço.
Oi Stella,
Para fazer os esquemáticos eu uso o ótimo Fritzing (http://fritzing.org/home/). Já para os simuladores, por favor veja o link abaixo, creio que tenha o que você precisa:
http://fritzing.org/home/
Abraço!
Adilson
Obrigada Adilson.
Vou dar uma olhada.
Abraços, Stella.
estou querendo ligar um EPD (e-paper) com um ESP-01 sabe se existe alguma inferface como esta do tutorial mas que tenha conexao para cabo flat do display ?
Olá!
Parabéns pelo post. Eu testei aqui com um Arduino Mega e funcionou. Só tive que alterar o endereço do lcd de "0x27" para "0x3f", na hora de inicializar o display. Também tive que ajustar um pouco o potenciômetro do módulo I2C.
Eu só fiquei com uma dúvida: analisando a biblioteca "LiquidCrystal_I2C.h", verifiquei que a declaração da variável "lcd" deve seguir o padrão:
LiquidCrystal_I2C lcd(lcd_Addr, En, Rw, Rs, d4, d5, d6, d7, backlighPin, POSITIVE);
De acordo com o código apresentado no post, obteve-se:
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE);
Daí vem a pergunta: como você achou os valores para os parâmetros? Ou seja:
En = 2, Rw = 1, Rs = 0, d4 = 4, d5 = 5, d6 = 6, d7 = 7, backlighPin = 3
Muito obrigado pela colaboração!
Oi Helton,
Esses valores se referem à ligação dos pinos do conversor I2C/Paralelo (PCF8574) no display LCD.
Assim, se verificarmos a pinagem de um LCD 16×2 "padrão" HD44780, teremos o pino 2 do PCF8574 ligado ao pino 6 do LCD, o pino 1 do PCF8574 ligado ao pino 5 do LCD, e assim por diante.
Você pode ver as informações da pinagem do LCD neste link: http://www.arduinoecia.com.br/2013/12/lcd-16×2-arduino-hd44780.html
Abraço!
Sou novato, estes parametros do construtor significam o quê?
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE);
Curioso que os pinos de 0 a 7 não estão funcionando? É coincidência?
Oi Tales,
Esses valores se referem à ligação dos pinos do conversor I2C/Paralelo (PCF8574) no display LCD.
Assim, se verificarmos a pinagem de um LCD 16×2 "padrão" HD44780, teremos o pino 2 do PCF8574 ligado ao pino 6 do LCD, o pino 1 do PCF8574 ligado ao pino 5 do LCD, e assim por diante.
Você pode ver as informações da pinagem do LCD neste link: http://www.arduinoecia.com.br/2013/12/lcd-16×2-arduino-hd44780.html
Esse conversor funciona no modo de transferência de dados de 4 bits, por isso alguns pinos (D0, D1, D2 e D3 do LCD) não são utilizados.
Abraço!
Pessoal do Arduino e CIA, alguém ai já se deparou com o I2C contendo SDA, SCL e MRQ? Não consigo encontrar muita informação sobre essa modificação do I2C e estou precisando muito. Outra coisa eu tenho um master trabalhando com I2C (SDA, SCL e MRQ), mas não sei o endereço dele, pois é um rádio de carro GM, mas já tentei deixar o arduino como slave escutando em todos os endereços e não consigo "recuperar" os dados que o master envia, já que o rádio só envia dados e não recebe. Vou utilizar o arduino como uma saída de display para o rádio. Abraço!
Boa noite,
Infelizmente não…. :/
Abraço!
Adilson
Como deveria ser feito se eu quiser usar no projeto mais de um display com IC2?
Eu uso alguma porta em comum entre eles (além da alimentação/terra)?
Cada display irá ocupar 2 canais?
Oi Eliabe,
O que você tem que fazer é definir um endereço para cada um, e depois ligar os mesmo pino SDA e SCL em todos eles, mais ou menos como fiz nesse post aqui: http://www.arduinoecia.com.br/2015/04/arduino-lcd-16×2-modulo-i2c-rtc-ds1307.html
Abraço!
Adilson
Oi Eliabe,
O que você tem que fazer é definir um endereço para cada um, e depois ligar os mesmo pino SDA e SCL em todos eles, mais ou menos como fiz nesse post aqui: http://www.arduinoecia.com.br/2015/04/arduino-lcd-16×2-modulo-i2c-rtc-ds1307.html
Abraço!
Adilson
Oi Eliabe,
No caso, vc vai usar o mesmo pino SDA e o mesmo pino SCL para os dois displays, basicamente. O que você precisa é ter um endereço diferente para cada um deles.
Abraço!
Adilson
Oi Eliabe,
Você pode ligar os 2 displays no mesmo barramento, só não esqueça que cada um deve ter um endereço diferente, ok? Para ligar 2 módulos I2C no mesmo barramento, recomendo a leitura deste post: https://www.arduinoecia.com.br/2015/04/arduino-lcd-16×2-modulo-i2c-rtc-ds1307.html
Abraço!
Adilson
Como seria se eu quiser usar múltiplos displays?
Se eu quiser usar por exemplo 4 displays?
Oi Eliabe,
O que você tem que fazer é definir um endereço para cada um, e depois ligar os mesmo pino SDA e SCL em todos eles, mais ou menos como fiz nesse post aqui: http://www.arduinoecia.com.br/2015/04/arduino-lcd-16×2-modulo-i2c-rtc-ds1307.html
Abraço!
Adilson
Detectei o endereço para e alterei o código para 0x3F.
O LCD até acende a apaga (conforme código), mas nenhuma palavra aparece.
O que pode estar acontecendo?
Bom dia…
Tentou ajustar o potenciômetro na parte de trás do módulo I2c ?
Abraço!
Bom dia,
Estou usando este mesmo código, por ter baixado outras bibliotecas, quando baixei esta e tentei compilar o programa, deu erro no POSITIVE, descrito como:"Foram encontradas múltiplas bibliotecas para "LiquidCrystal_I2C.h"". Mesmo apagando as bibliotecas da pasta LiBRARIES, elas ainda aparecem no Sketch. Desinstalei o Arduino e instalei novamente, mas estas bibliotecas permanecem. Como posso resolver isto, por favor ?
Boa Tarde, ao compilar o programa de exemplo e adicionar a biblioteca correspondente, me deparei com o seguinte erro:
Arduino: 1.8.1 (Windows 7), Placa:"Arduino Due (Programming Port)"
C:UsersRafaelaDocumentsArduinolibrariesLiquidCrystalI2CIO.cpp:35:26: fatal error: ../Wire/Wire.h: No such file or directory
#include <../Wire/Wire.h>
^
compilation terminated.
exit status 1
Erro compilando para a placa Arduino Due (Programming Port
alguém pode me ajudar??
'POSITIVE' was not declared in this scope
Alguém ja solucionou este erro ?
'POSITIVE' was not declared in this scope
Sempre recebo este erro ao tentar inicializar meu LCD
Bom dia, compilei o programa apresentado a cima com o arduino uno e mega, e deu certo, porém eu tenho um due, e gostaria de saber como poderia alterar a biblioteca para deixar compatível com o Arduino Due.
Pessoal, Tenho o LDC16x2 com I2C. Só consigo visualizar os caracteres se colocar o contraste do potenciometro no máximo. Mesmo assim fica bem fraco. E o backlight fica sempre apagado mesmo quando coloco lcd.setBacklight(HIGH).
Muito estranho. Alimentei com fonte externa de 5V e nada mudou.
Alguma sugestão?
Endereçamento do Módulo
Se o seu módulo tiver o sinal de "+" em cima do P da legenda POWER ele começa o endereçamento em 0x3f se não tiver o "+" o endereçamento começa em 0x20 como o mostrado neste post.
Ola boa tarde . eu insiro este código porém nao funciona , ajustei o potenciômetro do Módulo porem so aparece os quadrados brancos ao invés de letras.
se puderem me ajudar. Obrigado
Boa tarde, alguém sabe me explicar o método construtor da classe newLiquidCrystal??
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE);
Boa tarde, em um projeto eu pretendo usar o modulo I2C e um amplificador operacional (ADS 1115) mas infelizmente os dois usam a mesma entrada analogica(a4 e a5), é possivel mudar essas portas?
Boa Noite Amigos.
estou elaborando um projeto com o diplay e esta dando este erro.
Estou usando um arduino uno
Arduino: 1.8.4 (Windows 7), Placa:"Arduino/Genuino Uno"
O sketch usa 4890 bytes (15%) de espaço de armazenamento para programas. O máximo são 32256 bytes.
Variáveis globais usam 265 bytes (12%) de memória dinâmica, deixando 1783 bytes para variáveis locais. O máximo são 2048 bytes.
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x30
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x20
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x30
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x20
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x30
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x20
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x30
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x20
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x30
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x20
Ocorreu um erro enquanto o sketch era carregado
Este relatório teria mais informações com
"Mostrar a saida detalhada durante a compilação"
opção pode ser ativada em "Arquivo -> Preferências"
Preciso colocar 3 lcd com i2c no mesmo programa , posso?
Pra que servem os numeros aqui depois do 0x27 que entendi sejam o endereco do LCD : LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE);….
Ola estou com um problema para fazer o teste, porém ele não mostra só fica com a mensagem scanning, tentei o endereço 0x27 e não apareceu nada no visor. Obrigado
Oi Fabio,
Checou as conexões para verificar se o SDA e o SCL estão invertidos? Qual placa você está usando?
Abraço!
Adilson
Não funcionou comigo o texto não aparece no display 🙁
Bom dia Luis,
Você chegou a passar o I2CScanner para verificar o endereço e se o display está sendo reconhecido pelo microcontrolador?
Abraço!
Adilson
Boa tarde. Estou usando o Arduino Mega ADK e Display LCD 20×4 I2C.
Estou fazendo o teste juntamente com um Keypad. O problema é que não mostra o texto no Display LCD. Preciso muito de uma ajuda.
Esquema:
https://www.prometec.net/wp-content/uploads/2015/12/esquema.png
Código:
https://www.prometec.net/wp-content/uploads/2015/12/Control_acceso.rar
boa noite
é possivel utilizar com o arduino NANO
Oi Cristian,
É possível sim. 🙂
Abraço!
Adilson
no meu não funcionou as veses da o erro do positive as veses não mas não aparece nada no display, eu tentei outro codigo foi o unico que deu certo
#include
#include
#include
#define I2C_ADDR 0x27 // Define I2C Address where the PCF8574A is
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
int n = 1;
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
void setup()
{
lcd.begin (20,4);
// Switch on the backlight
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
lcd.home (); // go home
lcd.print("SainSmart I2C ");
lcd.setCursor ( 0, 1 ); // go to the 2nd line
lcd.print("linha abaixo");
lcd.setCursor ( 0, 2 ); // go to the third line
lcd.print("Test & demonstration");
lcd.setCursor ( 0, 3 ); // go to the fourth line
lcd.print("Iteration No: ");
}
void loop()
{
// Backlight on/off every 3 seconds
lcd.setCursor (14,3); // go col 14 of line 3
lcd.print(n++,DEC);
lcd.setBacklight(LOW); // Backlight off
delay(5);
lcd.setBacklight(HIGH); // Backlight on
delay(5);
}
Boa tarde,
Não tenho muita experiência com LCD, estou a um tempo quebrando cabeça para tentar usar esse adaptador I2C (https://robotdyn.com/i2c-graphic-128×64-lcd-adapter.html), porém o máximo que consegui foi apenas ligar o display. Não consegui entender direito o que significa esse pino LCD+ também. Seria possível uma ajuda? Este foi o único material que consegui a respeito mas está difícil também filtrar a informação (http://www.gammon.com.au/forum/?id=10940)
Sds
quando tento compilar o código, obtenho esse erro :
Arduino: 1.8.5 (Windows 10), Placa:"Arduino/Genuino Uno"
E:DocumentosArduinolibrariesLiquidCrystal_I2CI2CIO.cpp:35:26: fatal error: ../Wire/Wire.h: No such file or directory
#include <../Wire/Wire.h>
^
compilation terminated.
exit status 1
Erro compilando para a placa Arduino/Genuino Uno
a mi no me funciono el codigo tuve que hacer una pequeña modificacionen el lcd y ahi me funciono
LiquidCrystal_I2C lcd(0x27,16,2);
void setup()
{
Serial.begin(9600);
Wire.begin();
//Informacoes iniciais
lcd.setBacklight (HIGH);
lcd.begin (16,2);
lcd.setCursor(0,0);
lcd.print("Arduino FM Radio");
Serial.println("Arduino FM Radio ");
a mi no me funciono por eso de positive en el lcd tuve que hacer una pequeña modificacion al codigo parece que tengo otra version de la libreria i2c
LiquidCrystal_I2C lcd(0x27,16,2);
void setup()
{
Serial.begin(9600);
Wire.begin();
//Informacoes iniciais
lcd.setBacklight (HIGH);
lcd.begin (16,2);
lcd.setCursor(0,0);
lcd.print("Arduino FM Radio");
Serial.println("Arduino FM Radio ");
como eu utilizo o displayi2c com esp32 ??
Boa noite,
Em breve terei um post mostrando como ligar o display tanto no ESP8266 como no ESP32.
Abraço!
Adilson
Se o seu módulo I2C for com o circuito PCF8574T , então e bom baixar esta biblioteca..
Opa, segui esse tutorial, e não dar nenhum erro, porém, o arduíno alimentado pelo cabo USB, só acende o display, não mostra nada, mas alimentado pela fonte, aparece textos como o número 3 até o final, ou ? Até o final, mas não mostra o texto que eu escrevi. Não sei mais como testar. Meu display vem com o IC2 soldado junto dele…
, o meu display não está carregando as informações. Ele fica somente assim: https://photos.app.goo.gl/r4pUbPFjXsHwBa9M8
Eu estou montando o projeto de monitoramento da caixa d'água. Socorro
Oi Talita,
Você já checou o endereço I2C do seu display? Provavelmente é isso.
Abraço!
Adilson
Gostaria de saber como eu faço para que o Arduino lê o que tá escrito em um display de um multímetro, e replicação em LCD no próprio Arduino.
Olá bom dia. Gostaria de saber se tem como usar o módulo RFID, o display LCD 16×2 com o serial I2C, matricial 4×4 e a câmera para arduino tudo junto no arduino? E vc teria uma programação ou biblioteca para fazer todos eles funcionar como por exemplo criar senha reconhecer o cartão? Obrigado desde já te agradeço.
Olá! Meu display é azul com letras brancas, mas só consigo enxergar o que está escrito com o backlight ligado, quando desligo o backlight as letras ficam muito apagadas. Será defeito do display ? Abraço.
Oi Lorenzo,
Você já fez o ajuste do contraste usando o potenciômetro? creio que resolva o seu problema.
Abraço!
Adilson
o meu VERIFICA, mas quando vai carregar da o erro:
O sketch usa 3448 bytes (10%) de espaço de armazenamento para programas. O máximo são 32256 bytes.
Variáveis globais usam 318 bytes (15%) de memória dinâmica, deixando 1730 bytes para variáveis locais. O máximo são 2048 bytes.
Ocorreu um erro enquanto o sketch era carregado
Ola, o meu deu erro no ide: no matching function for call to ‘LiquidCrystal_I2C::LiquidCrystal_I2C(int, int, int, int, int, int, int, int, int, const char [9])’
oque possso fazer?
Boa tarde,
Dê uma olhada na instalação da biblioteca. Talvez você tenha duas bibliotecas instaladas e estão entrando em conflito.
Abraço!
Adilson
Ola pessoal.
Eu tenho um projeto que usa um LCD 2X16 + 12C aquele circuitinho que faz usar somente 4 portas do Arduino..
A minha pergunta é : Eu posso usar ao invés do Arduino NANO o Stardalone ? Da certo ? O circuito 12C tambem funciona?
Eu sou iniciante neste assunto.
Agradeço qualquer ajuda.
Obrigado.
Oi Oliveira,
A interface I2C é “universal”.. Então qualquer placa que tenha essa interface vai possibilitar que você use o display.
Abraço!
Adilson
Eu conseguiria fazer o processo reverso com este Modulo?
Por exemplo, espionar a informação que está chegando no display e ilustrar a mesma em uma segunda tela?
Estou precisando replicar as informações do display e envia-las remotamente para outra interface.
Qualquer ajuda será preciosa. 🙂
Oi André!
Hahaha interessante isso. Não sei, eu talvez iria usar uma placa Raspberry Pi com câmera para fazer isso (a leitura) e depois enviar as informações para outra interface.
Mas é só uma das opções. 🙂
Abraço!
Adilson
Estou criando um simulador de testes usuario-maquina para um sistema supervisório.
No momento , estou usando um Arduino Uno e um Xbee para enviar as informações à plataforma de teste.
Já consegui manipular o teclado matricial remotamente ( o mais facil kkk ) agora preciso visualizar remotamente as informações no display para ver se tudo está sendo operado normalmente, na sequencia certa.
Pra esse primeiro momento, um Raspberry poderia encarecer o projeto, por se tratar de um protótipo ainda.
careço de vosso apoio e ajuda para conseguir um código de um ” SIST. DE PREVENÇÃO CONTRA INCENDIO com sensor de temperatura e de gás que quando acionados enviam sms a um número, liga bomba, liga um led e um buzzer”, por não ter grande habilidades em programação espero vossa ajuda no fornecimento de um código que atenda a descrição acima, ou envio de um link ou pagina aonde possa encontrar.
Meu endereço de email é: [email protected]
Não sei se alguém vai me responder, mas o meu LCD não acende a luz de fundo! Já fiz de tudo, com e sem módulo I2C, com potenciômetro, resistor e nada.
Oi Gustavo!
Por favor cheque se o jumper do backlight está posicionado corretamente. Não podemos descartar também que o módulo esteja com defeito.
Abraço!
Adilson
Boa tarde. Sou curioso e mudei a parte no programa
void setup()
{
lcd.begin(); <—– nao —– lcd.init()
}
ai funcionou
Oi Afonso,
Legal, podemos ter usado alguma biblioteca diferente da sua. O importante é que funcionou. 🙂
Abraço!
Adilson
Pessoal, preciso da ajuda de vocês. Acabei estragando o potenciômetro (rele acabou gastando a rosca e eu o retirei), agora só consta 3 pequenos pinos ao qual o potenciômetro se conectava. O que devo fazer para corrigir o problema?
Eu consigo usar um display LCD TOUCH?
Preciso fazer um projeto com LCD touch screen, um servo motor e um motor pequeno. Queria usar um arduino UNO MINI para compactar tudo e gastar menos, eu consigo?
Oi Guilherme,
Depende do projeto e do tamanho que vc precisa, mas eu já vi display I2C touch.
Abraço!
Adilson