#include <Wire.h>
#include <LiquidCrystal_I2C.h>
int flagCarro = 0;
int flagPrimeiroCarro = 0;
int ldr = A0;
int ldr1 = A1;
int ldr2 = A2; // pins dos ldr
int ldrvalue = 0;
int ldrvalue1 = 0;
int ldrvalue2 = 0;
int contaCarros = 0;
const int led = 2; //leds do parque
const int led1 = 3;
const int led2 = 4;
const int novoLedPin = 5; // pin do led esgotado
LiquidCrystal_I2C lcd(0x27, 16, 2); // Endereço I2C 0x27, LCD 16 colunas x 2 linhas
void setup() {
lcd.init(); // Inicializa o LCD
lcd.backlight(); // Liga a luz de fundo (backlight)
lcd.setCursor(0, 0);
lcd.print("loja das mulas");
lcd.setCursor(0, 1);
lcd.print("Seja muito bem vindo");
pinMode(ldr, INPUT); // Define os pins dos LDRs como entrada
pinMode(ldr1, INPUT);
pinMode(ldr2, INPUT);
pinMode(led, OUTPUT); // Define os pins dos LEDs como saída
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
Serial.begin(9600);
pinMode(novoLedPin, OUTPUT); // Define o pin do novo LED como saída
delay(500);
}
void loop() {
ldrvalue = analogRead(ldr);
ldrvalue1 = analogRead(ldr1); //transforma os ldrs em analogreads
ldrvalue2 = analogRead(ldr2);
if (ldrvalue < 150) {
digitalWrite(led, HIGH); // Liga o led
if(flagCarro == 0){
contaCarros++;
flagCarro = 1;
flagPrimeiroCarro = 1;
}
} else {
digitalWrite(led, LOW);
if(flagPrimeiroCarro == 1){ // Desliga o led
contaCarros--;
flagCarro = 0;
flagPrimeiroCarro = 0;
}
}
if (ldrvalue1 < 150) {
digitalWrite(led1, HIGH); // Liga o led1
contaCarros++;
} else {
digitalWrite(led1, LOW); // Desliga o led1
//contaCarros--;
}
if (ldrvalue2 < 150) {
digitalWrite(led2, HIGH); // Liga o led2
contaCarros++;
} else {
digitalWrite(led2, LOW); // Desliga led2
//contaCarros--;
}
Serial.println(contaCarros);
// Acende o led quando o 3 led estao ligados
if (ldrvalue < 150 && ldrvalue1 < 150 && ldrvalue2 < 150) {
digitalWrite(novoLedPin, HIGH);
} else {
digitalWrite(novoLedPin, LOW);
}
if (contaCarros == 1) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("loja das mulas");
lcd.setCursor(0, 1);
lcd.print("2 lugares vagos");
}
if (contaCarros == 2) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("loja das mulas");
lcd.setCursor(0, 1);
lcd.print("1 lugares vagos");
}
if (contaCarros == 3) {
lcd.setCursor(0, 0);
lcd.print("loja das mulas");
lcd.setCursor(0, 1);
lcd.print("0 lugares vagos");
}
delay(100); // Adiciona um pequeno atraso para evitar leituras instáveis
}