#include <SPI.h>
#include <LiquidCrystal.h> //Inclui a biblioteca do LCD

#define Luz_Fundo 7

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Configura os pinos do Arduino para se comunicar com o LCDint LDR; //declara variavel
int Threshold = 500; // Controle do limite de luz
int LDR0, LDR1, LDR2, LDR3, LDR4, LDR5, LDR6, LDR7, LDR8, LDR9, LDR10, LDR11; // Valor lido nos LDR's
int Vaga0, Vaga1, Vaga2, Vaga3, Vaga4, Vaga5, Vaga6, Vaga7, Vaga8, Vaga9, Vaga10, Vaga11; // Indicação do estado da vaga
int VagasT = 0; // Total de vagas ocupadas

//-------------------------------------------
void setup()
{
lcd.begin(16, 2); //Inicia o LCD com dimensões 16x2(Colunas x Linhas)
pinMode(Luz_Fundo,OUTPUT); //define o pino como saída
digitalWrite(Luz_Fundo,HIGH); // Liga a luz do display.
}
//------------------------------------
void loop()
{
LDR0 = analogRead(A0); // Le LDR0
delay(1); // Delay de leitura analoga
if (LDR0 >Threshold) Vaga0 = 1;else Vaga0 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1

LDR1 = analogRead(A1); // Le LDR1
delay(1); // Delay de leitura analoga
if (LDR1 >Threshold) Vaga1 = 1;else Vaga1 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1

LDR2 = analogRead(A2); // Le LDR2
delay(1); // Delay de leitura analoga
if (LDR2 >Threshold) Vaga2 = 1;else Vaga2 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1

LDR3 = analogRead(A3); // Le LDR3
delay(1); // Delay de leitura analoga
if (LDR3 >Threshold) Vaga3 = 1;else Vaga3 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1

LDR4 = analogRead(A4); // Le LDR4
delay(1); // Delay de leitura analoga
if (LDR4 >Threshold) Vaga4 = 1;else Vaga4 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1

LDR5 = analogRead(A5); // Le LDR5
delay(1); // Delay de leitura analoga
if (LDR5 >Threshold) Vaga5 = 1;else Vaga5 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1

LDR6 = analogRead(A6); // Le LDR6
delay(1); // Delay de leitura analoga
if (LDR6 >Threshold) Vaga6 = 1;else Vaga6 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1

LDR7 = analogRead(A7); // Le LDR7
delay(1); // Delay de leitura analoga
if (LDR7 >Threshold) Vaga7 = 1;else Vaga7 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1

LDR8 = analogRead(A8); // Le LDR8
delay(1); // Delay de leitura analoga
if (LDR8 >Threshold) Vaga8 = 1;else Vaga8 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1

LDR9 = analogRead(A9); // Le LDR9
delay(1); // Delay de leitura analoga
if (LDR9 >Threshold) Vaga9 = 1;else Vaga9 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1

LDR10 = analogRead(A10); // Le LDR10
delay(1); // Delay de leitura analoga
if (LDR10 >Threshold) Vaga10 = 1;else Vaga10 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1

LDR11 = analogRead(A11); // Le LDR11
delay(1); // Delay de leitura analoga
if (LDR11 >Threshold) Vaga11 = 1;else Vaga11 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1


VagasT = Vaga11 + Vaga10 + Vaga9 + Vaga8 + Vaga7 + Vaga6 + Vaga5 + Vaga4 + Vaga3 + Vaga2 + + Vaga1 + Vaga0 ; // Soma vagas vazias

lcd.setCursor(0, 0); //Posiciona o cursor na primeira coluna(0) e na primeira linha(0) do LCD
lcd.print("ESTACIONAMENTO"); //Escreve no LCD
lcd.setCursor(0,1 ); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCD
lcd.print("Num de Vagas "); //Escreve no LCD
lcd.setCursor(14, 1); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCD
lcd.print(VagasT); //Escreve no LCD
}

Exibições: 302

Responder esta

Respostas a este tópico

Resolução do problema

#include <SPI.h>
#include <LiquidCrystal.h> //Inclui a biblioteca do LCD
#define Luz_Fundo 7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Configura os pinos do Arduino para se comunicar com o LCDint LDR; //declara variavel
int Threshold = 500; // Controle do limite de luz
int LDR0, LDR1, LDR2, LDR3, LDR4, LDR5, LDR6, LDR7, LDR8, LDR9, LDR10, LDR11; // Valor lido nos LDR's
int Vaga0, Vaga1, Vaga2, Vaga3, Vaga4, Vaga5, Vaga6, Vaga7, Vaga8, Vaga9, Vaga10, Vaga11; // Indicação do estado da vaga
int VagasT = 0; // Total de vagas ocupadas
//-------------------------------------------
void setup()
{
lcd.begin(16, 2); //Inicia o LCD com dimensões 16x2(Colunas x Linhas)
pinMode(Luz_Fundo,OUTPUT); //define o pino como saída
digitalWrite(Luz_Fundo,HIGH); // Liga a luz do display.
}
//------------------------------------
void loop()
{
LDR0 = analogRead(A0); // Le LDR0
delay(1); // Delay de leitura analoga
if (LDR0 >Threshold) Vaga0 = 1;else Vaga0 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR1 = analogRead(A1); // Le LDR1
delay(1); // Delay de leitura analoga
if (LDR1 >Threshold) Vaga1 = 1;else Vaga1 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR2 = analogRead(A2); // Le LDR2
delay(1); // Delay de leitura analoga
if (LDR2 >Threshold) Vaga2 = 1;else Vaga2 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR3 = analogRead(A3); // Le LDR3
delay(1); // Delay de leitura analoga
if (LDR3 >Threshold) Vaga3 = 1;else Vaga3 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR4 = analogRead(A4); // Le LDR4
delay(1); // Delay de leitura analoga
if (LDR4 >Threshold) Vaga4 = 1;else Vaga4 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR5 = analogRead(A5); // Le LDR5
delay(1); // Delay de leitura analoga
if (LDR5 >Threshold) Vaga5 = 1;else Vaga5 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR6 = analogRead(A6); // Le LDR6
delay(1); // Delay de leitura analoga
if (LDR6 >Threshold) Vaga6 = 1;else Vaga6 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR7 = analogRead(A7); // Le LDR7
delay(1); // Delay de leitura analoga
if (LDR7 >Threshold) Vaga7 = 1;else Vaga7 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR8 = analogRead(A8); // Le LDR8
delay(1); // Delay de leitura analoga
if (LDR8 >Threshold) Vaga8 = 1;else Vaga8 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR9 = analogRead(A9); // Le LDR9
delay(1); // Delay de leitura analoga
if (LDR9 >Threshold) Vaga9 = 1;else Vaga9 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR10 = analogRead(A10); // Le LDR10
delay(1); // Delay de leitura analoga
if (LDR10 >Threshold) Vaga10 = 1;else Vaga10 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR11 = analogRead(A11); // Le LDR11
delay(1); // Delay de leitura analoga
if (LDR11 >Threshold) Vaga11 = 1;else Vaga11 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1

VagasT = Vaga11 + Vaga10 + Vaga9 + Vaga8 + Vaga7 + Vaga6 + Vaga5 + Vaga4 + Vaga3 + Vaga2 + + Vaga1 + Vaga0 ; // Soma vagas vazias
lcd.setCursor(0, 0); //Posiciona o cursor na primeira coluna(0) e na primeira linha(0) do LCD
lcd.print("ESTACIONAMENTO"); //Escreve no LCD
lcd.setCursor(0,1 ); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCD
lcd.print("Num de Vagas "); //Escreve no LCD
if (VagasT<10)
{
lcd.setCursor(14, 1); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCD
lcd.print(" "); //Escreve no LCD
lcd.setCursor(15, 1); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCD
lcd.print(VagasT); //Escreve no LCD
}
else
lcd.setCursor(14, 1); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCD
lcd.print(VagasT); //Escreve no LCD
}

Feita por Rui viana 

 Como pode observar, apenas a mudança na linha lcd.print(" "); resolve isso. 

 É importante comentar  para que seja um problema resolvido e explicado.

Quando em um LCD abaixamos de um valor de dois dígitos para um digito, existe a possibilidade de 10, ir para 90, por exemplo, existem duas formas para corrigir isso, uma como  a postada pelo Rui, deixar vazio um espaço (" ")

lcd.print(" "); //Escreve no LCD.

Ou:

lcd.print("NUM DE VAGAS ");
lcd.setCursor(14, 2);
lcd.print("  ");        //limpa o que estava escrito anteriormente
if (VagasT < 10) {
lcd.setCursor(15, 2);
} else {
lcd.setCursor(14, 2);
}
lcd.print(VagasT);
}

Causaria o mesmo efeito.

Não esqueça de agradecer ao Rui pela ajuda, a palavra obrigado é magica.

Boa sorte no seu projeto.

Abs,

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço