//MONITORAMENTO AUTOMATIZADO DE VAGAS DE ESTACIONAMENTO
#include <stdio.h>
#include "pico/stdlib.h"
#include "pico/cyw43_arch.h"
#define botao1 5
#define botao2 6
#define led1 12
#define led2 13
#define SW 22
int contador = 0;
int vagas = 5;
int main() {
stdio_init_all();
gpio_init(botao1);
gpio_set_dir(botao1, GPIO_IN);
gpio_pull_up(botao1);
gpio_init(botao2);
gpio_set_dir(botao2, GPIO_IN);
gpio_pull_up(botao2);
gpio_init(led1);
gpio_init(led2);
gpio_set_dir(led1, GPIO_OUT);
gpio_set_dir(led2, GPIO_OUT);
gpio_init(SW);
gpio_set_dir(SW, GPIO_IN);
gpio_pull_up(SW);
while (true) {
//ACENDE O LED AZUL E INCREMENTA O CONTADOR (SOMA 1 AO CONTADOR)
if (gpio_get(botao1) == 0) {
gpio_put(led1, 1);
gpio_put(led2, 0);
contador++;
vagas --;
printf("REGISTRANDO ENTRADA DE VEICULO. \n");
sleep_ms(1000);
gpio_put(led1, 0);
gpio_put(led2, 0);
}
//ACENDE O LED VERMELHO E DECREMENTA O CONTADOR (SUBTRAI 1 DO CONTADOR)
else if (gpio_get(botao2) == 0) {
gpio_put(led1, 0);
gpio_put(led2, 1);
contador--;
vagas ++;
printf("REGISTRANDO SAIDA DE VEICULO. \n");
sleep_ms(1000);
gpio_put(led1, 0);
gpio_put(led2, 0);
}
//SE NENHUM DOS DOIS BOTÕES FOR PRESSIONADO, OS LEDS CONTINUAM APAGADOS
//E NADA ACONTECE COM O CONTADOR
else if (gpio_get(SW) == 0) {
gpio_put(led1, 0);
gpio_put(led2, 0);
printf("TOTAL DE VAGAS DISPONIVEIS NO MOMENTO: %d \n", vagas);
}
sleep_ms(250);
}
}