//Definição de entrada do botão(pino 14)
int bot = 14;
int led[3] = {4,0,2};
int cor[3] = {255,255,0};
void setup() {
// put your setup code here, to run once:
pinMode(bot, INPUT);
for(int i = 0; i < 3; i++)pinMode(led[i], OUTPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
int ref = millis();
const int timeBounce = 10; //O bounce depende do tempo de esabilização. Assim, aqui presumi-se que depois de 10 ms as leituras estão estáveis.
int bounce = 0;
bool verificado = false;
do{
if(!digitalRead(bot) == 1 && verificado == false){
verificado = true;
bounce = millis();
}
if(millis() - bounce > timeBounce && verificado == true){
if(!digitalRead(bot) == 1){
for(int i = 0; i < 3; i++)digitalWrite(led[i], cor[i]);
delay(100);
for(int i = 0; i < 3; i++)digitalWrite(led[i], 0);
bounce = 0;
verificado = false;
}
}
}while(millis() - ref < 56000);
}