#include <DHT.h>
#define BT0 13
#define BT1 11
#define BT2 9
#define BT3 7
#define ledAZ 3
#define ledVM 4
#define ledAM 5
#define ledVD 6
#define POT A0
#define tipoDHT DHT22
#define pinoDHT 2
// Instanciar o objeto dht
DHT dht(tipoDHT, pinoDHT);
// Variáveis booleanas
bool stBT0, stBT1, stBT2, stBT3, flag0, flag1, flag2, flag3;
// Variáveis para analógico e sensor DHT
int valorAnalog;
float temp, umid;
// Variável de contagem (ex01)
int cont1 = 0;
void setup() {
Serial.begin(9600);
pinMode(BT0, INPUT_PULLUP);
pinMode(BT1, INPUT_PULLUP);
pinMode(BT2, INPUT_PULLUP);
pinMode(BT3, INPUT_PULLUP);
pinMode(ledAM, OUTPUT);
pinMode(ledVM, OUTPUT);
pinMode(ledVD, OUTPUT);
pinMode(ledAZ, OUTPUT);
dht.begin();
}
void loop() {
ex01();
}
void leituraBTs(){
// Leitura dos estados dos pinos dos botões
stBT0 = digitalRead(BT0);
stBT1 = digitalRead(BT1);
stBT2 = digitalRead(BT2);
stBT3 = digitalRead(BT3);
delay(50); // delay para estabilização do sinal de status dos botões
}
void ex01(){
leituraBTs();
// Borda de descida
if(cont1 < 5){
if(stBT3 == 0 && flag3 == 0){
flag3 = 1;
}
// Borda de subida
if(stBT3 == 1 && flag3 == 1){
Serial.println("Borda de subida!");
cont1++;
flag3 = 0;
pisca1();
}
}
else {
Serial.println("Meta atingida!");
digitalWrite(ledAZ, HIGH);
}
}
void pisca1(){
for(int i = 0; i < cont1; i++){
digitalWrite(ledAZ, HIGH);
delay(300);
digitalWrite(ledAZ, LOW);
delay(300);
}
}