Hi guys, im using esp32 withAdafruit SHTC3 sensor for temp and humidity. It has a push button on pin0.I am trying to get my program to read data on every second hit on the button (one hit reads, second doesnt, third reads and so on) but im stuck because this code reads data uncontrollably. What am I doing wrong?
#include "Adafruit_SHTC3.h"
Adafruit_SHTC3 shtc3 = Adafruit_SHTC3();
int tipkalo = 0;
int stanjeTipkala = 0;
int zadnjeStanjeTipkala = 0;
int brojac = 0;
float ocitaj_temp() {
sensors_event_t humidity, temp;
shtc3.getEvent(&humidity, &temp); // populate temp and humidity objects with fresh data
Serial.print("Temperature: ");
float temperatura = temp.temperature;
Serial.print(temperatura);
Serial.println(" degrees C");
return temperatura;
}
float ocitaj_vlagu() {
sensors_event_t humidity, temp;
shtc3.getEvent(&humidity, &temp);
Serial.print("Humidity: ");
float vlaznost = humidity.relative_humidity;
Serial.print(vlaznost);
Serial.println("% rH");
return vlaznost;
}
void setup() {
Serial.begin(115200);
pinMode(tipkalo, INPUT);
Serial.println("SHTC3 test");
if (!shtc3.begin()) {
Serial.println("Couldn't find SHTC3");
while (1) delay(1);
}
Serial.println("Found SHTC3 sensor");
}
void loop() {
stanjeTipkala = digitalRead(tipkalo);
if (stanjeTipkala != zadnjeStanjeTipkala) {
if (stanjeTipkala == HIGH) {
brojac++;
Serial.print("Broj pritisaka:");
Serial.println(brojac);
}
delay(50);
}
zadnjeStanjeTipkala = stanjeTipkala;
if (brojac % 2 == 0) {
ocitaj_temp();
ocitaj_vlagu();
}
}