Boa noite, senhores!

Por acaso poderiam me ajudar com a documentação de um Display lcd 24x4?
era de  um aparelho telefônico que quebrou.

Estou tentando utilizar com 4 bits e deu quase certo; os números até aparecem, porem não estão na posição em que foi determinada. 

Pelo que entendi, o erro é devido à diferença de controlador, posto que os mais comuns trabalham com até 80 caracteres.

Se por acaso alguém já trabalhou com display desta dimensão e puder me ajudar com a documentação, ficarei muito agradecido.

Seguem as fotos do display em anexo.

Exibições: 830

Anexos

Responder esta

Respostas a este tópico

Ops

CC não  CCS.

RV mineirin

segue o resultado com a programaçao que vc enviou 

Olá, Paulo Cézar!

   Mais algumas tentativas.

   Use o programa anexo e faça uma foto do display.

   Depois modifique as linhas 62 a 64 para gerar mais 3 fotos, como abaixo:


// Segundo programa, segunda foto
Lcd_Cmd( _LCD_SECOND_ROW ); // Move cursor to the 2nd row
Lcd_Out_Cp( txt_ROW_1_COL_0 ) ;



// Terceiro programa, terceira foto
Lcd_Cmd( _LCD_THIRD_ROW ); // Move cursor to the 3th row
Lcd_Out_Cp( txt_ROW_2_COL_0 ) ;



// quarto programa, quarta foto
Lcd_Cmd( _LCD_FOURTH_ROW ); // Move cursor to the 4th row
Lcd_Out_Cp( txt_ROW_3_COL_0 ) ;

D. T. Ribeiro

Faltou o anexo   :-)

Vai agora

Anexos

Boa tarde PCMG, (se não gosta que te chame pelas iniciais, avise),

você pode postar arquivos com o código e com a biblioteca que usou para conseguir o este resultado :

Você pode também postar um esquema de como ligou ele no PIC e na fonte?

RV mineirin

Desculpe a demora RV, segue o comando e a documentação da biblioteca que tive este resultado e a imagem da ligação 

Anexos

Olá, Paulo Cezar!

   Pelo esquema que você enviou, já dá para percceber porque você só está conseguindo escrever em duas das quatro linhas: O sinal Enable0, que aciona as duas primeiras linhas não está sendo usado.

   Pela pinagem do display, por ter dois 'enables', deduz-se que foi implementado internamente como dois displays de duas linhas cada. E você só está acionando um deles.

   Como imagino que o sinal 'Enable' do display é comandado pela biblioteca, já prevejo uma grande dificuldade de fazer isto funcionar.

   Outro ponto: Por que motivo o pino RW ( Read / Write, pino 5 ) está ligado a um 'pretenso' circuito divisor de tensão, como se fosse o pino do contraste? ( Na verdade só será um divisor de tensão se o pino 5 tiver um pull down / pull up interno )

D. T. Ribeiro

Boa tarde,

Então teria que editar a biblioteca para poder oscilar entre os 2 displays e corrigir o mapeamento dos últimos caracteres das linhas. O problema é que eu não consegui ter acesso ao arquivo da biblioteca para poder estuda-lo e fazer as modificações 

se eu jampiar os 2 enable o esperado é que duplique as informações nas duas metades certo?

Na verdade, aquilo n é um divisor como eu não sabia se o rw seria ligado no gnd ou no vcc eu coloquei um resistor para cada e testei na placa então tem um resistor de 0r soldado e o outro está sem 

agora que sei na próxima versão da placa já arrumo isso 

Olá, Paulo Cezar!

   Editar a biblioteca só se tiver acesso ao código fonte, o que parece que a MikroE não está disposta a liberar.

   Sim, se jumpear os 2 ENABLE, muito provavelmente a informação aparecerá duplicada nas duas partes do display, mas tem uma opção, caso a MikroE se disponha a dar uma "forcinha".

   Uma idéia para poder usar todas as linhas do LCD é usar 2 pinos distintos para os sinais Enable do LCD e redefinir dinamicamente qual o pino que a biblioteca vai usar, toda vez que se for escrever algo no LCD.

   Uma vez que nunca programei PIC, e muito menos usei o mikroC PRO for PIC compiler, não tenho idéia de como se poderia fazer isto.

   Se as documentações do compilador e da biblioteca fossem pelo menos razoáveis, poder-se-ia ver se é possível fazê-lo e, caso positivo, como.

   Até o Arduino, que está longe de ser um 'professional ecosystem' faz muito melhor do que isto.

   Sugiro então que você poste a thread abaixo no forum MikroE : < LINK

   ( Coloque IO pins dynamic redefinition no assunto )

Hi!

   I'm trying to use the MikroE LCD library with mikroC PRO for PIC compiler on a PIC18F4520.

   I have a four lines LCD that has 2 Enable pins, acting like 2 separate LCDs.

   I intend to use one distinct pin of the PIC µC for each one of the Enable pins, in order to be able to use both "parts" of the LCD.

   Hence, I'd like to dynamically redefine the pin of the PIC µC that is used for the Enable of the LCD for use into the library.

   

   Is this possible? If so, how?

   Thanks in advance.

Boa tarde

Se eu pegar  uma biblioteca para arduino por exemplo e fazer as modificações será que da certo ?

essa é a documentação da biblioteca do mikroc

Anexos

Olá, Paulo Cezar!

   Não vi, na documentação da biblioteca, nada que pudesse ajudar.

   Dependendo da forma como a definição dos pinos é feita, se puder ser alterada dinamicamente, pode ser a solução mais fácil e prática.

   Na biblioteca, diz que o sinal ENABLE do LCD tem que ser declarado da seguinte forma:

         extern sfr sbit LCD_EN;

   Mas no manual do MikroC, não há informação suficiente sobre o especificador de memória sfr para que possamos saber se esta definição pode ser dinamicamente modificada, por isso te sugeri perguntar para a MikroE.

   Quando se faz um projeto com Arduino, usando a IDE do Arduino, é necessário definir qual placa Arduino se vai utilizar, porque a IDE e as bibliotecas precisam saber detalhes do hardware do processador para "traduzir" corretamente as instruções de alto nível.

   Por exemplo, um digitalWrite() para o AVR ATmega328( UNO, NANO ) provavelmente é implementado de modo diferente em um Cortex M SAM3X8E( DUE ).

   Desta forma, se houver uma placa Arduino com o PIC18F4520( ou compatível ) e uma biblioteca para LCD para esta placa, é bem possível que se consiga utilizá-la na tua placa.

   Meu conhecimento de Arduino é muito baixo, de modo que não sei se esta placa existe, é uma questão de pesquisar.

   Uma outra solução é "demultiplexar" por hardware o sinal ENABLE que vem do PIC, usando um outro pino do PIC para fazer isto como, por exemplo, na figura abaixo.

   DSP_SEL é o pino do PIC que vai fazer a seleção da "parte" do display em que você quer escrever, e que deve ser alterado conforme a necessidade sempre antes de usar qualquer função que escreva no display.

   LIB_EN é o sinal de ENABLE do PIC que você já usa.

   Quando DSP_SEL = 1, o sinal de ENABLE que vem do PIC vai para a saída ENABLE_1 e quando DSP_SEL = 0, o sinal de ENABLE que vem do PIC vai para a saída ENABLE_0.

Boa Sorte!

D. T. Ribeiro

Muito boa a ideia, mas não consigo adaptar isso na placa atualmente pois ela já está feita; na próxima, já faço com os 2 pinos no pic.

 

Minha ideia é criar algumas funções para trabalhar com o display sem a biblioteca.

Andei lendo como funciona o display, e como a biblioteca "quase funciona", acredito que os comandos padrões vão funcionar; só preciso confirmar o mapeamento da memória.

Juntando os testes que eu fiz e os que você sugeriu, acredito que o mapeamento não será difícil.  Vou montar o código e testar, depois posto para vocês o resultado.  

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço