int pot = 32;
bool a = false;
bool b = false;
int vagasDisp = 0;
int vagasDefi=0;
//Multiplexador
int cont=0;
int EN=17;
int S0=16;
int S1=4;
int S2=2;
int S3=15;
uint8_t multiPlex[16][4]{
{0,0,0,0},
{1,0,0,0},
{0,1,0,0},
{1,1,0,0},
{0,0,1,0},
{1,0,1,0},
{0,1,1,0},
{1,1,1,0},
{0,0,0,1},
{1,0,0,1},
{0,1,0,1},
{1,1,0,1},
{0,0,1,1},
{1,0,1,1},
{0,1,1,1},
{1,1,1,1},
};
bool vag1 = false; // vag1 para 1
bool vag2 = false; // vag1 para 2
bool vag3 = false; // vag1 para 3
bool vag4 = false; // vag1 para 4
bool vag5 = false; // vag1 para 5
bool vag6 = false; // vag1 para 6
//botões
const int pinoBotao1 = 12;
const int pinoBotao2 = 14;
const int pinoBotao3 = 27;
const int pinoBotao4 = 26;
const int pinoBotao5 = 25;
const int pinoBotao6 = 33;
const int BotaoGrenn = 19;
const int BotaoRed = 23;
int lup=0;
void setup() {
Serial.begin(115200);
pinMode(EN, OUTPUT);
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
// Configuração dos botões
pinMode(pinoBotao1, INPUT);
pinMode(pinoBotao2, INPUT);
pinMode(pinoBotao3, INPUT);
pinMode(pinoBotao4, INPUT);
pinMode(pinoBotao5, INPUT);
pinMode(pinoBotao6, INPUT);
}
void loop() {
// Leitura do potenciômetro
int potvalue = analogRead(pot);
vagasDefi = map(potvalue, 0, 4095, 0, 3);
if(cont>=16)cont=0;
vagasDisp=6;
digitalWrite(EN, HIGH);
vag1 = 0;vag2 = 0,vag3 =0;vag4 = 0;vag5 = 0;vag6 = 0;
bool vaga1 = digitalRead(pinoBotao1);
if (vaga1 == HIGH){vag1 = HIGH;vagasDisp--;}
bool vaga2 = digitalRead(pinoBotao2);
if (vaga2 == HIGH){vag2 = HIGH;vagasDisp--;}
bool vaga3 = digitalRead(pinoBotao3);
if (vaga3 == HIGH){vag3 = HIGH;vagasDisp--;}
bool vaga4 = digitalRead(pinoBotao4);
if (vaga4 == HIGH){vag4 = HIGH;vagasDisp--;}
bool vaga5 = digitalRead(pinoBotao5);
if (vaga5 == HIGH){vag5 = HIGH;vagasDisp--;}
bool vaga6 = digitalRead(pinoBotao6);
if (vaga6 == HIGH){vag6 = HIGH;vagasDisp--;}
if (cont == 0 && vag1 == HIGH) digitalWrite(EN, LOW);
if(cont==1 && vag1==LOW && vagasDefi < 1)digitalWrite(EN, LOW);
if(cont==2 && vag1==LOW && vagasDefi>=1)digitalWrite(EN, LOW);
if (cont == 3 && vag2 == HIGH)digitalWrite(EN, LOW);
if (cont == 4 && vag2 == LOW && vagasDefi<2) digitalWrite(EN, LOW);
if (cont == 5 && vag2 == LOW && vagasDefi>=2) digitalWrite(EN, LOW);
if (cont == 6 && vag3 == HIGH) digitalWrite(EN, LOW);
if (cont == 7 && vag3 == LOW && vagasDefi<3) digitalWrite(EN, LOW);
if (cont == 8 && vag3 == LOW && vagasDefi>=3) digitalWrite(EN, LOW);
if (cont == 9 && vag4 == HIGH) digitalWrite(EN, LOW);
if (cont == 10 && vag4 == LOW) digitalWrite(EN, LOW);
if (cont == 11 && vag5== HIGH) digitalWrite(EN, LOW);
if (cont == 12 && vag5 == LOW) digitalWrite(EN, LOW);
if (cont == 13 && vag6 == HIGH) digitalWrite(EN, LOW);
if (cont == 14 && vag6 == LOW) digitalWrite(EN, LOW);
digitalWrite(S0,multiPlex[cont][0]);
digitalWrite(S1,multiPlex[cont][1]);
digitalWrite(S2,multiPlex[cont][2]);
digitalWrite(S3,multiPlex[cont][3]);
cont++;
lup++;}
Loading
cd74hc4067
cd74hc4067