#include <Tiny4kOLED.h>
#include <dht.h>
dht DHT;
void iniciaDisplay();
void limpaDisplay();
void incrementa();
void decrementa();

int8_t contador = 0;

void setup(){
  // put your setup code here, to run once:

iniciaDisplay();
limpaDisplay();
pinMode(3, INPUT_PULLUP); 
pinMode(2, INPUT_PULLUP); 
attachInterrupt(digitalPinToInterrupt(3),incrementa,RISING);
attachInterrupt(digitalPinToInterrupt(2),decrementa,RISING);
}

void loop() {
  // put your main code here, to run repeatedly:
  
oled.setFont(FONT8X16); 
oled.setCursor(15, 0); 
oled.print(F("Contador: ")); 
oled.print(contador);  
oled.print((" "));
DHT.read22(5);
oled.setCursor(0, 3); 
oled.print(("Humidade "));
oled.print(DHT.humidity, 1);
oled.print((" % "));
oled.setCursor(0, 5); 
oled.print(("Temperat. "));
oled.print(DHT.temperature, 1);
oled.print((" °C"));
}

void iniciaDisplay(){
  delay(50);
  oled.begin(); 
  oled.clear();
  oled.setFont(FONT8X16);
  oled.setCursor(45,1);
  oled.print(F("IFPB"));
  oled.setFont(FONT6X8);
  oled.setCursor(30,4);
  oled.print(F("LUIZ JULIO"));
  oled.setCursor(10,6);
  oled.print(F("Sistemas Digitais"));
  delay(2000);
}

void limpaDisplay(){
  oled.clear();
  oled.switchRenderFrame();
  oled.clear();
  oled.switchRenderFrame();
}

void incrementa(){
static long tempo_anterior = 0; 
long tempo_atual = millis();  
  if ( (tempo_atual - tempo_anterior) > 200){ 
  contador++;
  }   
tempo_anterior = tempo_atual;
}

void decrementa(){
static long tempo_anterior = 0; 
long tempo_atual = millis();  
  if ( (tempo_atual - tempo_anterior) > 200){ 
  contador--;
  }   
tempo_anterior = tempo_atual;
}