Go Down

Topic: Problema com LCD 20 x 4 (Read 3820 times) previous topic - next topic

wilsonalves

Já consegui com que a tela do lcd trocasse com o botão agora está a acontecer aquilo que o bubulindo falou atrás tenho o lcd a piscar o problema é que está a piscar muito lentamente e é do tipo as primeiras funções mal se percebe que piscam agora as ultimas piscam muito lentamente.
Como minimizo/acabo este problema????

wilsonalves

Alguém sabe como faço para que o lcd não pisque??
Disseram me para utilizar a função string() só não faço ideia de como a utilizar!!
Cumprimentos

LegendBR

Já tentou aumentar um pouco o contraste do LCD? As vezes isso resolve o problema de piscar.

wilsonalves

Não o problema é mesmo do código estou a fazer um refresh ao lcd.

LegendBR

Ele pisca a cada 1 segundo, é isso? Se for isso mesmo, acredito ser limitação do hardware mesmo, e não acho que se possa fazer alguma coisa.

wilsonalves

Tenho dois pedaços de código dentro de ARRAYS() para depois integrar no void loop() através de Swich() Case() foi o bubulindo que me deu esta ideia mas tambem me alertou que teria de fazer um refresh ao código senão não ia ler os valores só quando mudasse com o botão eu nunca pensei foi que o refresh se fosse notar tanto: envio o pedaço de código com o void loop para que perceba                                                           
Code: [Select]
//------------------------------------------------------------------------------------------------------------------------------------------
void loop()
{
if (digitalRead(SWITCH) == HIGH && encrava == 0){
var_menus++;
trata_lcd();
encrava = 1;
}
if (digitalRead(SWITCH) == LOW) encrava = 0;
//refresca o LCD de segundo a segundo.
if (millis() - refresh >= 500) {
trata_lcd();
refresh = millis(); //actualiza a contagem.
}
}
void trata_lcd()
{
switch(var_menus%NUM_MENUS) {

case 0:
lcd.clear();
vinstantaneo();
break;

case 1:
lcd.clear();
vhora();
break;
}



Ontem estive com pessoal que entende disto e disseram-me para utilizar strings para acabar com o problema eu só não consigo perceber como se integram no meu código para acabar com este problema.

LegendBR

Repito a pergunta:

Ele pisca a cada 1 segundo, é isso?

wilsonalves

Ele pisca segundo a segundo se eu quiser agora está piscar de meio em meio segundo basta alterar o valor neste pedaço de código:
Code: [Select]
if (digitalRead(SWITCH) == LOW) encrava = 0;
//refresca o LCD de segundo a segundo.
if (millis() - refresh >= 500) {
trata_lcd();
refresh = millis(); //actualiza a contagem.
}

Tive de incorporar isto porque o bubulindo disse que tinha de o fazer porque senão os valores não actualizavam e tinha toda a razão que já fiz  o teste

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy