.h>#include <LiquidCrystal.h> //Inclui a biblioteca do LCD#define Luz_Fundo 7LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Configura os pinos do Arduino para se comunicar com o LCDint LDR; //declara variavelint Threshold = 500; // Controle do limite de luzint LDR0, LDR1, LDR2, LDR3, LDR4, LDR5, LDR6, LDR7, LDR8, LDR9, LDR10, LDR11; // Valor lido nos LDR'sint Vaga0, Vaga1, Vaga2, Vaga3, Vaga4, Vaga5, Vaga6, Vaga7, Vaga8, Vaga9, Vaga10, Vaga11; // Indicação do estado da vagaint 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ídadigitalWrite(Luz_Fundo,HIGH); // Liga a luz do display.}//------------------------------------void loop(){LDR0 = analogRead(A0); // Le LDR0delay(1); // Delay de leitura analogaif (LDR0 >Threshold) Vaga0 = 1;else Vaga0 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1LDR1 = analogRead(A1); // Le LDR1delay(1); // Delay de leitura analogaif (LDR1 >Threshold) Vaga1 = 1;else Vaga1 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1LDR2 = analogRead(A2); // Le LDR2delay(1); // Delay de leitura analogaif (LDR2 >Threshold) Vaga2 = 1;else Vaga2 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1LDR3 = analogRead(A3); // Le LDR3delay(1); // Delay de leitura analogaif (LDR3 >Threshold) Vaga3 = 1;else Vaga3 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1LDR4 = analogRead(A4); // Le LDR4delay(1); // Delay de leitura analogaif (LDR4 >Threshold) Vaga4 = 1;else Vaga4 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1LDR5 = analogRead(A5); // Le LDR5delay(1); // Delay de leitura analogaif (LDR5 >Threshold) Vaga5 = 1;else Vaga5 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1LDR6 = analogRead(A6); // Le LDR6delay(1); // Delay de leitura analogaif (LDR6 >Threshold) Vaga6 = 1;else Vaga6 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1LDR7 = analogRead(A7); // Le LDR7delay(1); // Delay de leitura analogaif (LDR7 >Threshold) Vaga7 = 1;else Vaga7 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1LDR8 = analogRead(A8); // Le LDR8delay(1); // Delay de leitura analogaif (LDR8 >Threshold) Vaga8 = 1;else Vaga8 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1LDR9 = analogRead(A9); // Le LDR9delay(1); // Delay de leitura analogaif (LDR9 >Threshold) Vaga9 = 1;else Vaga9 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1LDR10 = analogRead(A10); // Le LDR10delay(1); // Delay de leitura analogaif (LDR10 >Threshold) Vaga10 = 1;else Vaga10 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1LDR11 = analogRead(A11); // Le LDR11delay(1); // Delay de leitura analogaif (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 vaziaslcd.setCursor(0, 0); //Posiciona o cursor na primeira coluna(0) e na primeira linha(0) do LCDlcd.print("ESTACIONAMENTO"); //Escreve no LCDlcd.setCursor(0,1 ); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCDlcd.print("Num de Vagas "); //Escreve no LCDif (VagasT<10){lcd.setCursor(14, 1); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCDlcd.print(" "); //Escreve no LCDlcd.setCursor(15, 1); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCDlcd.print(VagasT); //Escreve no LCD}elselcd.setCursor(14, 1); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCDlcd.print(VagasT); //Escreve no LCD}…
ossibilidade de usar o sensor de ré ,(Sensor de estacionamento), como opção, mas é um sistema relativamente complexo e sem informação de alguns componentes usados nos mesmos (chips raspados).
Recentemente ganhei de um amigo uma base de um sensor e também usei a do meu carro, pois estava com problemas no display, e como só vendem completo, eu troquei completo.
Comecei a estudar ambos.
Eu vou dividir o sensor em áreas.
1 Sensores ligados por cabos; Sensores à prova d'água com elementos piezo eletro;
2 Drives da transmissão ; Transistores e bobina para elevação da tensão de saída;
3 Recepção e amplificação pulsos recebidos; CI LN5532 ou similar (AmpOP);
4 Seleção da função: transmite ou recebe; CI HCF4052 (mux/demux);
5 Seleção do sensor (São 4 geralmente); CI HCF4052 (mux/demux);
6 Calculo da distancia e posição do sensor; CI não identificado (ucontrolador);
7 Saída para o display. CI não identificado (ucontrolador) trem de pulso analisado.
Estas áreas são muito similar nos 2 equipamentos que tenho sob teste, e conversando com outros amigos, (Gustavo) verifiquei que ele tem sensor com a mesma arquitetura.
Basicamente a diferença está no trem de pulsos enviados da base para o display.
Aqui não vou analisar o display, pois eu o substitui por um LCD.
Para que o sistema funcione, são necessário 2 condições
1 Pulso de 40 kHz para o piezo;
2 Medir o tempo do retorno do pulso.
Com base nestas condições, resolvi fazer um teste.
Identifiquei na CPU do módulo quais pinos saiam para o mux , para seleção e 40kHZ,
e qual pino recebia o retorno dos piezos via ampOP.
Removi a CPU do modulo. Um modulo a CPU é de 8 pinos e o outro com 14 pinos.
liguei fios no lugar do pinos da CPU que eu iria usar.
Liguei estes fios nos ports e gnd do Arduíno.
Escrevi um sketch par o Arduíno mini para enviar os pulsos de 40kHz e medir seu retorno.
Como o modulo tem 4 piezos, e são selecionados pelo CI 4052, resolvi fixar em um piezo somente,
colocando assim os pinos de mux do 4052 (S1 e S2) em nível 0 através de ports do arduíno.
Medi o tempo do retorno, calculei a distancia e joguei em um LCD.
O mais impressionante. Funcionou!!!!!!!!!!!!!!
Abaixo algumas imagens ilustrativas e anexo sketch utilizado por mim.
RV
Placa original.
CPU removida, fios soldados;
Ci 4052
Pulsos enviado e retorno
Display mostrando a medida em cm.
…
Adicionado por mineirin RV ao 12:24 em 24 maio 2019
mto longe... Aih ele pode ter tempo de ficar fuçando...
Acho ainda mais eficientes aqueles alarmes bobos do tempo do passat que tinha um botão escondido. Cada vez que vc abre a porta tem que apertar o botão senão o carro morre.
Ou a evolução dele que é o de presença.
Não quero desmerecer seu projeto, mas acho que o ideal seria ter um GPS pra mandar as coordenadas do carro depois de travado. Pq vai que ele pega uma estrada...
Pode ser mta viagem minha, teoria da conspiração, acusação sem provas, mas.... Ninguem me tira da cabeça que essas empresas que cobram pra rastrear na verdade querem achar o carro pra entregar pra seguradora (quando tem). Pq se entregar pra vc ganha o q ? Um "Muito obrigado!" ? Se entregar pra seguradora eles pagam um belo valor... Não sei qual, mas segundo uma reportagem do fantastico tem equipes especializadas só em achar carros roubados pra devolver pra seguradora.
Enfim, pode ser viagem minha, mas acho que isso é uma industria ! O ladrão rouba o carro, a policia acha, entrega pra seguradora, recebe a recompensa e vc transfere pra seguradora a posse e dá baixa do BO. BO baixado o carro não é mais roubado e sim propriedade da seguradora.
O ladrão pode simplesmente guardar o carro em um estacionamento, com chave e tudo, e entregar o papelzinho pra alguém que faz chegar à policia. Pronto ! Caso resolvido !
Senão com tanto carro com rastreador teria em algum lugar uma tela com um monte de pontos vermelhos aglomerados que seriam carros roubados indo para os receptadores... Até celular com rastreador (todo Apple e Android tem, só ligar) tem resolvido crimes, pq carros com rastreador de empresas especializadas nunca aparecem no noticiário ??? Certamente acham todos, mas a entrega é feita pra seguradora ! (acho, não tenho como provar, é apenas uma teoria, estória, suposição..)
…
Adicionado por Eduardo ao 23:02 em 24 janeiro 2013
bits é usado também em sensores de estacionamento.
Deve custar muito barato ! É de um fabricante chinês.
http://www.emc.com.tw/eng/
Simples, mas eficiente.
Links do Datasheet:
http://www.emc.com.tw/eng/8bit_gpio_ds.asp
http://www.emc.com.tw/eng/8bit_prod_dsc.asp?gid=&tid=000002&...
O Amplificador operacional LM324:
É um velho conhecido, muito usado e famoso. Ele é usado para amplificar e detectar o sinal de eco do ultrasom.
http://www.ti.com/lit/ds/symlink/lm124-n.pdf
E o MAX232 - driver de EIA232:
Esse chip é muito usado na interface serial RS232 para adaptar os sinais de 5V com os outros níveis.
Mas nesse módulo, ele é usado somente para gerar tensões mais altas para excitar o transdutor transmissor de ultrasom.
http://www.ti.com/lit/ds/symlink/max232.pdf
…
dá. Melhor virar estacionamento ou mercadinho.
Para atender projetos junto a universidades vc precisa de diploma e no máximo um CNPJ, não precisa de espaço. Quem precisa de espaço seria um candidato a incubadora ou aceleradora.
As incubadoras são legais, vc paga uns R$600,00/mes para ter direito a uma wifi, mesa, 2 cadeiras e as vezes um computador. Bom negocio pra quem mantem.
As aceleradoras oferecem ainda empréstimos financeiros e cobranças vorazes por resultados financeiros na forma de boletos das parcelas do empréstimo. Ótimo negocio para quem mantém, por isso Itau, Bradesco e Santander/Mastercard já montaram as suas.
http://startse.infomoney.com.br/portal/2015/05/28/12105/itau-lanca-...
http://www.inovabra.com.br/html/programa.shtm
http://startupi.com.br/2016/02/santander-e-mastercard-terao-laborat...
Fablabs cobram de cada associado coisa de R$60 a R$120 para pleno acesso com direito a gastar esse credito em horas de maquina, alem de cobrarem só a maquina no dia aberto. Visitei uma, falei com o dono e não há procura. Simplesmente o pessoal ama a ideia, visita, tira duvidas, elogia, apoia moralmente mas não poe a mão no bolso. A unica possibilidade de sobrevivência é um contrato de fomento. Houve um edital em 2015 aqui em SP, mto bom, mas só tive conhecimento depois:
http://porvir.org/prefeitura-de-s-paulo-lanca-nesta-semana-edital-p...
http://www.prefeitura.sp.gov.br/cidade/secretarias/servicos/noticia...
Mas é um ramo saturado ou que tende a saturar, alem de infrutífero como modelo de negócio já que o usuário quer dar continuidade à gratuidade e efeito "muamba da china" que faz qualquer valor proposto parecer absurdo.
De todos as incubadoras são o único modelo de negocio (para o gestor) que pode ser interessante, pq vc pode oferecer serviços a qualquer área (computação, arquitetura, direito, design, etc), que não estão sob esses efeitos de desvalorização e ainda consegue participar se algum incubado conseguir fomento.
Mas a pessoa tem que ter mto Q.I. (Quem Indica).…
/Porta analógica utilizada pelo LDR Servo myservo; void setup() { myservo.attach(10); Serial.begin(9600); //Inicializa a serial
} void loop() { int LDR = analogRead(portaLDR); //Lê o valor fornecido pelo LDR
if (LDR < 20 ) { myservo.write(0); delay(100); }else{ myservo.write(90); delay(100);}}
..................................................................................................................................................
Programa do estacionamento
#include <SPI.h> #include <MFRC522.h> #include <LiquidCrystal.h> #include <Servo.h> #define SERVO 9 // Porta Digital 9 PWM #define Luz_Fundo 7 #define SS_PIN 53 #define RST_PIN 8 MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance. LiquidCrystal lcd (12, 11, 5, 4, 3, 2); char st[20]; Servo s; // Variável Servo int pos; // Posição Servo
// sensor LDR #define LDRSensor A0 int LDRValor = 0; int LDRok = 0; void setup(){ Serial.begin(9600); // Inicia a serial SPI.begin(); // Inicia SPI bus mfrc522.PCD_Init(); // Inicia MFRC522 Serial.println("Aproxime o seu cartao do leitor..."); Serial.println(); //Define o número de colunas e linhas do LCD: lcd.begin(16, 2); mensageminicial(); pinMode(Luz_Fundo,OUTPUT); //define o pino como saída digitalWrite(Luz_Fundo,HIGH); // Liga a luz do display. s.attach(SERVO); Serial.begin(9600); } void loop(){ // Look for new cards if ( ! mfrc522.PICC_IsNewCardPresent()){ return; } // Select one of the cards if ( ! mfrc522.PICC_ReadCardSerial()){ return; } //Mostra UID na serial Serial.print("UID da tag :"); String conteudo= ""; byte letra; for (byte i = 0; i < mfrc522.uid.size; i++){ Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(mfrc522.uid.uidByte[i], HEX); conteudo.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ")); conteudo.concat(String(mfrc522.uid.uidByte[i], HEX)); } Serial.println(); Serial.print("Mensagem : "); conteudo.toUpperCase(); if (conteudo.substring(1) == "65 C1 20 29"){ //UID 1 - Chaveiro Serial.println("Ola Alessandro !"); Serial.println(); lcd.clear(); lcd.setCursor(0,0); lcd.print("Ola Alessandro !"); lcd.setCursor(0,1); lcd.print("Acesso liberado!"); //abre a cancela s.write(0); delay(3000);
//fecha a cancela while(LDRok == 0){ testeFechar(); } LDRok = 0; mensageminicial(); } if (conteudo.substring(1) == "A0 69 41 63"){ //UID 2 - Cartao Serial.println("Ola Cartao !!!"); Serial.println(); lcd.clear(); lcd.setCursor(0,0); lcd.print("Ola Cartao !"); lcd.setCursor(0,1); lcd.print("Acesso Negado !"); s.write(90); delay(3000); mensageminicial(); } delay(1000); } void testeFechar(){ LDRValor = analogRead(LDRSensor); // apagar essas duas linhas abaixo (SERIAL.PRINT) Serial.print("Entrou no While com valor LDR = "); Serial.println(LDRValor);
if(LDRValor <=200){ s.write(0); // apagar essas duas linhas abaixo (SERIAL.PRINT e o DELAY) Serial.println("Mantendo a Cancela ABERTA"); delay(1000); }else{ // apagar essa linha abaixo (SERIAL.PRINT) Serial.println("FECHANDO a Cancela"); delay(1000); s.write(90); LDRok = 1; } } void mensageminicial(){ lcd.clear(); lcd.print(" Aproxime o seu"); lcd.setCursor(0,1); lcd.print("cartao do leitor"); }
..................................................................................................................................
alguem poderia integrar o primeiro programa no segundo e me mandar obrgd a todos
minha itencao e apenas acionar um servo motor por ldr , se alguem conhecer outra maneira e quiser integrar ao 2 programa fico agradecido
…
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
}…
CDint LDR; //declara variavelint Threshold = 500; // Controle do limite de luzint LDR0, LDR1, LDR2, LDR3, LDR4, LDR5, LDR6, LDR7, LDR8, LDR9, LDR10, LDR11; // Valor lido nos LDR'sint Vaga0, Vaga1, Vaga2, Vaga3, Vaga4, Vaga5, Vaga6, Vaga7, Vaga8, Vaga9, Vaga10, Vaga11; // Indicação do estado da vagaint 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 analogaif (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 analogaif (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 analogaif (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 analogaif (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 analogaif (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 analogaif (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 analogaif (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 analogaif (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 analogaif (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 analogaif (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 analogaif (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 analogaif (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 LCDlcd.print("ESTACIONAMENTO"); //Escreve no LCD lcd.setCursor(0,1 ); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCDlcd.print("Num de Vagas "); //Escreve no LCD lcd.setCursor(14, 1); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCDlcd.print(VagasT); //Escreve no LCD }…