//SEMATEC_2023 - Pratica 6
//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)
//Led Azul em D15 (acionado via MQTT)
const int ledVermPin = 4;
const int ledAzulPin = 15;
const int ledVermChave = 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(ledVermPin,OUTPUT);
pinMode(ledVermChave,INPUT);
pinMode(pushButtonInc,INPUT);
pinMode(pushButtonDec,INPUT);
Serial.begin(115200);
}
void acionarLed(){
if(digitalRead(ledVermChave) == HIGH){
digitalWrite(ledVermPin, !(digitalRead(ledVermPin)));
} else{
digitalWrite(ledVermPin,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;
}