#include "Free_Fonts.h"
#include <TFT_eSPI.h>
#include <SPI.h> // this is needed for display
// The display also uses hardware SPI, plus #9 & #10
#define TFT_CS 15
#define TFT_DC 2
#define TFT_MOSI 23
#define TFT_SCLK 18
#define ROTATE_PIN 34
float dispTemp = 22.3;
TFT_eSPI tft = TFT_eSPI(); // Invoke custom library with default width and height
void setup(void) {
tft.begin();
tft.setRotation(0);
Serial.begin(115200);
}
void loop() {
getRotateEvent();
}
int rotate_state = 0;
int rotateCounter = 0;
int rotateDebounceTime = 100;
long previousRotateTime = 0;
bool rotateMeasurement = true;
float rpmMeasurement = 0;
float burningCalories = 0;
float burningCaloriesDisplay = 0;
double approximateBurningPerMinutes = 9;
void getRotateEvent()
{
rotate_state = digitalRead(ROTATE_PIN);
if (rotate_state == LOW && millis()-previousRotateTime >= rotateDebounceTime && rotateMeasurement)
{
rotateCounter += 1;
rotateMeasurement = false;
rpmMeasurement = round(60000/(millis()-previousRotateTime));
burningCalories = burningCalories + ((rpmMeasurement/60)*approximateBurningPerMinutes)/100;
previousRotateTime = millis();
Serial.println(rotateCounter);
Serial.println(rpmMeasurement);
Serial.println(burningCalories);
}
if (rotate_state == HIGH)
{
rotateMeasurement = true;
}
}