Pages: 1 2 [3]   Go Down
Author Topic: Problema com LCD 20 x 4  (Read 3165 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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????
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Aracaju, SE, Brasil
Offline Offline
Sr. Member
****
Karma: 4
Posts: 323
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Aracaju, SE, Brasil
Offline Offline
Sr. Member
****
Karma: 4
Posts: 323
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
//------------------------------------------------------------------------------------------------------------------------------------------
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.
Logged

Aracaju, SE, Brasil
Offline Offline
Sr. Member
****
Karma: 4
Posts: 323
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Repito a pergunta:

Ele pisca a cada 1 segundo, é isso?
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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
Logged

Pages: 1 2 [3]   Go Up
Jump to: