Garagistas, bom dia.

Talvez alguém possa me ajudar.

Estou tentando conectar para fazer um teste simples de um disaplay LCD 16x2 com um Arduino Nano Conforme arquivo anexo (com exceção que eu mudei as portas para 9,8,7,6,5,4 e tambem sem este sensor de temperatura).

Peguei este sketch no site do Filipeflop conforme consta em anexo mas editei as portas conforme a ligação fisicamente.

//Programa: Teste de Display LCD 16 x 2
//Autor: FILIPEFLOP

//Carrega a biblioteca LiquidCrystal
#include <LiquidCrystal.h>

//Define os pinos que serão utilizados para ligação ao display
LiquidCrystal lcd(9, 8, 7, 6, 5, 4);

void setup()
{
//Define o número de colunas e linhas do LCD
lcd.begin(16, 2);
}

void loop()
{
//Limpa a tela
lcd.clear();
//Posiciona o cursor na coluna 3, linha 0;
lcd.setCursor(3, 0);
//Envia o texto entre aspas para o LCD
lcd.print("FILIPEFLOP");
lcd.setCursor(3, 1);
lcd.print(" LCD 16x2");
delay(5000);

//Rolagem para a esquerda
for (int posicao = 0; posicao < 3; posicao++)
{
lcd.scrollDisplayLeft();
delay(300);
}

//Rolagem para a direita
for (int posicao = 0; posicao < 6; posicao++)
{
lcd.scrollDisplayRight();
delay(300);
}
}

No entanto, ao invés de aparecer os caracteres "FILIPEFLOP", as letras não aparecem e ficam toda a matriz de cada caractere "pintado" e o display de fundo acende normalmente. Também ao girar o potenciômetro, não ocorre os caracteres ficarem mais acesos ou menos acessos conforme oscila a impedância no pino correspondente.

Exibições: 787

Anexos

Responder esta

Respostas a este tópico

Olá, Sérgio!

Já experimentou verificar se a tensão do contraste do LCD está efetivamente variando e se o display muda de "caracteres todos pintados" para matriz toda "em branco". Tem que fazer este teste para ver se o ajuste de contraste está, de fato, funcionando.

Espero ter ajudado.

Sucesso!

Bom dia,

É provável que tenha algum erro na sua montagem ou mau-contato.

Enviie uma foto nírida da sua montagem. 

Sugiro que estude meu tutorial:

Guia completo do Display LCD – Arduino

https://blog.eletrogate.com/guia-completo-do-display-lcd-arduino/

const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7; // definicao dos pinos do Display
LiquidCrystal lcd(rs, en, d4, d5, d6, d7); // configurando os pinos

Boa noite,

em primeiro lugar, trate de seguir as regras do fórum, não é um capricho e sim uma necessidade, caso desconheça veja este link por favor https://labdegaragem.com/forum/topics/sugest-o-de-como-postar 

Sergio testei seu código usando a simulação no meu Proteus com o modulo vsm para arduino, e só para registrar subi no meu canal e incorporei aqui, a simples leitura do código não deixa duvidas que não existe problemas no código, por tanto como já frisou o colega J.G. Murta, revise sua ligação, seu display, ou outros motivos, o código não tem erro algum.

O contraste, dependendo da cor do seu display fica as vezes imperceptível, ele é mais notório nos display com fundo azul e letras brancas, agora se o que você quer é controlar o brilho, ou seja, a iluminação do display, os pinos 15 e 16 são os responsáveis pela iluminação BL.

Boa sorte.

Abs.

 

CK

Foram muito uteis vossas instruções, muito obrigado.

Eu tenho uma duvida...Sobre a pinagem do display LCD 16x2.Como eu devo solda-la?

Estanhar os pinos na parte frontal do display e consecutivamente os pinos ficarão voltados para a parte "traseira" do display ou estanhar os pinos na parte posterior?

Uma outra duvida.

Posso utilizar qualquer pino digital do Arduino Nano para ligação no display? Existe a necessidade de eu ligar um pino do Arduino especificamente em um determinado pino no displkay?

Espero ter sido claro em meu questionamento.

Obrigado.

Olá, Sérgio:

   1. Quanto ao lado do display em que os pinos vão ser soldados, depende de onde ele será montado ( gabinete, por exemplo ). No meu caso sempre foi possível fazer com que os pinos salientem pela parte de trás do display e a solda, como você disse, fica na parte da frente.

   2. Quanto a se deve existir uma correspondência fixa entre alguns pinos específicos do Arduino e pinos específicos do display, acho que não, embora eu não seja um grande conhecedor da biblioteca LiquidCrystal.

   Se eu a tivesse escrito, não exigiria tal correspondência. A única coisa a qual deves atentar é de não usar mais de uma função em um pino. Por exemplo, se estiveres utilizando a Serial Virtual, os pinos da Serial Virtual não podem ser compartilhados com a interface de display ( nem com nenhuma outra coisa ).

   Também os pinos da interface serial nativa do µC do Arduino devem seguir o mesmo princípio. 

   Isto obedecido e verificando se não há mau contato ou erro de montagem, conforme sugerido pelo  Gustavo, deverá funcionar. E a questão do contraste, verificou? Tá funcionando?

Abração!

D.T. Ribeiro.

D.T. Ribeiro, obrigado pelo retorno

A questão do contraste esta funcionando eu fiz um teste retirando o Arduino e o display do painel de montagem e os conectei diretamente um ao outro com o auxilio de Jumpers e o protoboard.

Agora esta aparecendo apenas caracteres "0" no display verifiquei a questão do mau contado e esta tudo ok. Sobre a soldagem dos pinos do display, eu soldei na parte frontal do mesmo (Ilhas de soldagem na parte forntal) pois estou encaixando o display por baixo de um painel. Ai ele fica mais rente e melhor encaixado a abertura.

Se eu trocar nas conexões do display as portas do Arduino (Ex. pino 14 do display na porta D3 do arduino e pino 13 na porta D4.Ai em inverto esta ligações para 14-D4 e 13-D3), não influenciará em nada?

No aguardo, obrigado.

Olá, Sérgio!

   De fato, se o LCD está encaixado por baixo de um painel, entâo é melhor fazer assim como fizestes. Já vi produtos assim.

   Em princípio, além da questão de usar apenas uma única função para cada pino do Arduino, qualquer combinação pode ser usada, desde que seja corretamente especificada no sketch.

   Se as tuas ligações estão conforme a figura que postastes e o sketch é o que pusestes no anexo, parece que está tudo ok.

   Tente fazer o LCD funcionar com um sketch bem mais simples primeiro, como o seguinte:

#include <LiquidCrystal.h>

int rs=12, en=11, db4=5, db5=4, db6=3, db7=2;

LiquidCrystal lcd (rs,en,db4,db5,db6,db7);

void setup() {

lcd.begin(16,2);
lcd.print("Teste");
}

void loop(){
}

   Se não funcionar, os suspeitos serão: Mau contato, ligações erradas, o LCD danificado ( pouco provável ), alguma porta do Arduino danificada ( também pouco provável ).

   Para testar se é o display o problema, só conseguindo outro que tenha certeza que esteja funcionando ou colocando-o em um outro sistema que também tenha certeza que está funcionando.

   Para testar as portas do arduino faça um sketch que fique invertendo o sinal lógico em cada pino a cada 1 s e meça com o voltímetro. Mantenha o display conectado, porque ele não vai estragar e você já verifica se é ele que está "matando" o sinal do Arduino. Se alguma porta não funcionar, retire o LCD e teste denovo. Se agora funcionar, é porque é o LCD que está "matando" o sinal do Arduino.

   Mau contato pode ser testado, ainda que não 100%, com um medidor de continuidade.

   Se possível, peça para alguém conferir as tuas ligações. às vezes quem faz fica "viciado no erro". Na empresa onde trabalho nunca a conferência é feita por quem executou a tarefa.

   Emfim, é o que eu poderia dizer no momento.

   Boa Sorte!

D.T. Ribeiro 

Boa noite a todos.

Fiz uma checagem em toda a instalação e a refiz conforme esta figura no site

Fiz o teste de continuidade entre a barra de pinos soldada no display e não esta fechando curto entre os pinos. Carreguei novamente o sketch e apareceram no display alguns caracteres estranhos (segunda foto) que depois mudou conforme terceira foto.

Tentei fazer o teste com o sketch simples sugerido pelo D.T.Ribeiro (só mudando a pinagem conforme esta ligado fisicamente) mas não apareceu nada no display.Segue o sketch

#include <LiquidCrystal.h>

int rs=4, en=5, db4=6, db5=7, db6=8, db7=9;

LiquidCrystal lcd (rs,en,db4,db5,db6,db7);

void setup() {

lcd.begin(16,2);
lcd.print("Teste");
}

void loop(){
}

Anexos

Boa noite SCS.

Onde está ligado o pino 5 do LCD?

RV mineirin

O pino 5 do lcd esta ligado no GND do Arduino

Olá, Sérgio!

    Pelas fotos, não parece ser o mesmo display que é vendido pela FilipeFlop, mas até pode ser.

   Entretanto isto me suscitou uma questão: Nem todos os displays tem a mesma pinagem.

   Você tem que conferir a pinagem na datasheet do display que você está usando .

   Apenas a título de ilustração, veja na foto abaixo, dois displays de 16 colunas por 2 linhas e suas pinagens radicalmente diferentes:

   Boa caçada!

D.T.Ribeiro

Eu tenho uma segunda opção de display que eu posto as fotos dele agora. Só que não consegui o datasheet dele. Este era um display de uma placa de Balança de caminhão Filizola de uma empresa que trabalhei. O técnico teve que trocar a placa e eu peguei a placa pois poderia usar muitos componentes nela, inclusive os displays. Notem que em uma das fotos. Note que existem dois pinos jumpeados um por solta (1 e 15) e outro por um pequeno cabo (2 e 16) Será que eu posso utilizá-lo com o Arduino e fazer testes? Acho que este é ou pelo menos se assemelha mais ao Winstar WH1602A. Como faço a ligação deste display ao Arduino? Obrigado.

Anexos

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço