Ir ao conteúdo
  • Cadastre-se

Arduino + LCD (Texto não aparece)


Posts recomendados

Olá,

 

Estou tentando fazer um lcd 16x2 funcionar em um arduino, mas não consigo fazer o texto aparecer. Não sei se o LCD está com algum defeito por isso queria ter certeza se não é problema de montagem antes de comprar outro.

Os materiais são: Um arduino Uno R3 Smd Atmega 328p , um lcd 16x2 QAPASS, um drive I2C. Fiz a montagem exatamente como a imagem em anexo.

 

Já testei vários códigos diferentes (O desta página por exemplo), eles compilam normalmente, coisas como o LCD piscar sem parar ou por alguns segundos, a luz apagar depois de um tempo, tudo isso funciona normalmente. Agora o texto não aparece de jeito nenhum, testei tudo que foi código.

Qual são as saidas do drive I2C e entradas do arduino responsáveis pelo texto do lcd?

 

PS: No código do link o endereço do módulo i2c é 0x27 o do meu é 0x3F, eu coloco o endereço certo no código antes de compilar, mesmo assim o texto não aparece só pisca o lcd.

Circuito-Arduino-i2c-display-lcd-16x2.png

Link para o comentário
Compartilhar em outros sites

@HenriSp ,

 

Primeiro tenha a certeza de que seu display segue a pinagem padrão. Já comprei displays que tinham pinagem  diferente, invertendo o RS com o WR .

 

Segundo, cuidado com acender o backlite, alguns displays consomem muita corrente e podem até torrar o regulador de seu Arduino ( aconteceu comigo com um display 4X20 .... ) .

 

Paulo

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@HenriSp i2c costuma ser meio chatinho pra configurar, primeiro verifica na sua plaquinha onde vai o LCD se os pinos SDA e SCL vão para os pinos SDA e SCL do Arduíno bem como o negativo e positivo da plaquinha indo para os respectivos pinos no Arduíno. 

 

Outra coisa, pelo que andei consultando, esse seu Arduíno, tem um jampeamento para 3 e 5v, verifica o manual dele para que esteja correto, acredito que esta plaquinha sua seja de 5v.

 

Depois de ter certeza de que o hardware está todo correto, entra nesse site:

http://playground.arduino.cc/Main/I2cScanner

e instala esse sketch no seu Arduíno e manda compilar, ele vai te mostrar se tem algum dispositivo i2c online. Caso encontre, vai te mostrar o endereço real dele, daí, se mesmo tendo o endereço correto, não aparecer nada no display, verifica a pinagem do display se está correta. Se não encontrar nada, ou sua plaquinha/Arduíno estão com defeito ou então o hardware está errado.

 

O i2c scanner vai retornar o resultado da busca em um terminal, logo, mande abrir ele(Ferramentas>>Monitor Serial)

 

Boa sorte.

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@aphawk Obrigado por responder.

 

Quando você fala inverter o Rs com o Rw você quer dizer no código?

 

No código está assim:

...

LiquidCrystal_I2C lcd(0x3F,2,1,0,4,5,6,7,3, POSITIVE);

...

 

Inverter seria fazer isso?

...

LiquidCrystal_I2C lcd(0x3F,2,0,1,4,5,6,7,3, POSITIVE);

...

 

Porque se for eu fiz e não funcionou.

 

Como eu faço pra saber qual é a pinagem certa do meu display?

 

Muito grato.

adicionado 6 minutos depois

@ViniciusKruz Obrigado por responder

 

Eu já testei o I2C scanner, o endereço é 0x3F , é o único que aparece no scanneamento.

 

A plaquinha é de 5v mesmo, se eu botar em 3v o LCD fica com a luz bem fraquinha.

E como eu saberia para quais pinos do arduino iriam? Eu só conheço essa montagem da imagem que eu postei.

 

Desde já agradeço.

 

 

Link para o comentário
Compartilhar em outros sites

2 horas atrás, HenriSp disse:

E como eu saberia para quais pinos do arduino iriam?

No Arduíno tem escrito nos pinos SCL e SDA, pode procurar que encontra mas provavelmente você já ligou no lugar certo porque caso contrário, o scanner não encontraria a plaquinha. 

 

Como a plaquinha foi encontrada, você terá que verificar depois dela se está tudo conectado corretamente. Pra saber você vai precisar do datasheet(manual) do display, geralmente eles vem com um adesivo atras que dá pra pesquisar por este número, tendo o datasheet em mãos confere a pinagem.

 

 

Link para o comentário
Compartilhar em outros sites

@aphawk @ViniciusKruz Vixe, então acabo de perceber que eu nem sabia o que era pinagem. Eu estava achando que era uma sequência numérica, e essa sequência usaria no código.

 

Se pinagem é o nome dos pinos então é idêntico à imagem que @aphawk postou. e o fundo tirei uma foto. Então se meu tá com pinagem padrão só pode estar como defeito mesmo para o texto não aparecer, pois não aparece nada, só a luz azul.

CAM00039[1].jpg

Link para o comentário
Compartilhar em outros sites

@HenriSp  O Datasheet do seu LCD é esse: https://www.openhacks.com/uploadsproductos/eone-1602a1.pdf

 

e a pinagem dele é esta:

1602.png.91a331b73b9eeaafa4ea8719a784fd8c.png

 

Pelo que pude verificar aqui, o seu display é compatível com a placa i2c. 

Como há compatibilidade, o problema pode estar na placa i2c, no firmware ou no display já que o firmware que você está usando é "confiável", sobrou para o display ou a placa i2c.

 

Embora a placa i2c esteja se comunicando(constatado pelo scanner), isso não significa que ela esteja 100% boa, pode acontecer de que ela esteja recebendo os dados mas não consiga passá-los para o display. 

 

 

Link para o comentário
Compartilhar em outros sites

@ViniciusKruz Muito obrigado, me ajudou bastante.

Teve um detalhe que eu esqueci de mencionar, eu comprei um potenciômetro e testei com a montagem sem o drive da imagem abaixo, e o problema persistiu, liga tudo direitinho só o texto que não aparece, então estou quase 100% certo de que o display está mesmo com defeito.

 

Muito grato pela ajuda

Ligacao-LCD.png

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • 3 meses depois...
  • 4 meses depois...

@David Luiz, tenho a impressão de que você é o único que vai me responder kkk

Instalei o sketch I2c_Scanner e descobri o endereço real. Atualizei o endereço no sketch e funcionou, com uma exceção. Só a primeira letra aparece. Peguei um sketch pronto e sou novato então, devo estar esquecendo de inserir alguma informação.

 

Segue meu sketch abaixo: (A ligação está correta kkk)

 

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup()
{
 lcd.init();                      // initialize the lcd 
 // Print a message to the LCD.
 lcd.backlight();
 lcd.print("Aello, world!");
}
void loop()
{
}

O "A" no Hello World foi pra testar mesmo.

 

Segue imagem em anexo também.

IMG_20171229_162117765.jpg

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...