Boa Tarde

Pessoal estou com o seguinte problema com o display, estou transmitindo um dado numérico gerado por um sensor ultrassônico através do modulo RF o mesmo é recebido no modulo receptor e transferido para o display na posição (6,0), o meu problema começa ai: Quando tenho um valor lido de 4 digitos e logo após retorno para um valor de 1 digito os 3 ultimos digitos ficam presos no display não apagado os mesmo, os mesmo só mudam quando outro valor de 4 digitos e escrito por cima. Soluciono isso dando um reset no display. Queria saber se existe alguma maneira de limpar essa posição do display.

EX.: 1º informação Enviada = 3560

        1º Informação recebida = 3560

        1º informação Lida = 3560

        2º Informação enviada = 1

        2º Informação recebida =1

        2º informação Lida = 1560

        

Desde já grato.

Exibições: 331

Responder esta

Respostas a este tópico

Você já tentou escrever o caractere de espaço na posição do números, antes de escrever um novo valor?

...

lcd.setCursor(6,0);

lcd.print("    ");

lcd.setCursor(6,0);

lcd.print(LeituraSensor);

...

mais ou menos isso neh?

Bom dia:

 O código seria esse:

void loop(){

uint8_t message[VW_MAX_MESSAGE_LEN];
uint8_t msgLength = VW_MAX_MESSAGE_LEN;

lcd.setCursor(6,0);

lcd.print("    ");

if (vw_get_message(message, &msgLength)) {

for (int i = 0; i < msgLength; i++){

lcd.setCursor(6,0);
lcd.write(message[i]);


}
}
}

Não tive sucesso com esse codigo apenas o 2 e o 3 digito apaga e permace apagado e o 4 digito continua fixo.

Você deve mudar algumas linhas de lugar...

void loop(){

uint8_t message[VW_MAX_MESSAGE_LEN];
uint8_t msgLength = VW_MAX_MESSAGE_LEN;

if (vw_get_message(message, &msgLength)) {

for (int i = 0; i < msgLength; i++){


lcd.setCursor(6,0);

lcd.print("    ");

lcd.setCursor(6,0);
lcd.write(message[i]);


}
}
}

Vai na fé que agora da certo rsrsrsrrs

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço