//SEMATEC_2023 - Pratica 5
//chave em D5 e Led em D4. D5 comanda D4 (ação pisca-pisca)
//PB verde (D18) incrementa o tempo 
//PB vermelho (D19) decrementa o tempo
//processamento do loop não é influenciado pelo tempo (chamada de função por tempo)

const int ledPin = 4;
const int ledChave = 5;
const int pushButtonInc = 18;
const int pushButtonDec = 19;
int i_tempoDelay=100;
long l_tempoPisca;
# define pinoAnalogico 34
float f_volt34;
long l_incTdelay;

void setup() {
  pinMode(ledPin,OUTPUT);
  pinMode(ledChave,INPUT);
  pinMode(pushButtonInc,INPUT);
  pinMode(pushButtonDec,INPUT);
  Serial.begin(115200);
}

void acionarLed(){
  if(digitalRead(ledChave) == HIGH){
    digitalWrite(ledPin, !(digitalRead(ledPin)));
  } else{
    digitalWrite(ledPin,LOW);
  }
  Serial.print("V34: ");
  Serial.print(f_volt34);
  Serial.print("\t");
  Serial.print("millis(): ");
  Serial.print(millis());
  Serial.print("\t");
  Serial.print("tPisca: ");
  Serial.print(l_tempoPisca);
  Serial.print("\t");
  Serial.print("TDelay: ");
  Serial.println(i_tempoDelay);
}
void loop(){
  
  if(digitalRead(pushButtonInc)&&(millis() - l_incTdelay >5)){
    l_incTdelay = millis();
    i_tempoDelay = i_tempoDelay + 1;
  }
  if(digitalRead(pushButtonDec)) i_tempoDelay = i_tempoDelay - 1;
  if(millis() - l_tempoPisca > i_tempoDelay){
    l_tempoPisca=millis();
    acionarLed();
  }  
  if(i_tempoDelay >= 700) i_tempoDelay = 700;
  if(i_tempoDelay < 0) i_tempoDelay = 0;
  int i_volt34 = map(analogRead(pinoAnalogico),0,4095,0,100);
  f_volt34 = i_volt34/1.0;  
}