#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;
}