#include <TFT_eSPI.h> // Hardware-specific library
TFT_eSPI tft = TFT_eSPI(); // init display
TFT_eSprite bg = TFT_eSprite(&tft); // create sprite for background
TFT_eSprite rpm = TFT_eSprite(&tft); // create sprite for header
TFT_eSprite digit = TFT_eSprite(&tft); // create sprite for digit
void setup () {
tft.init();
tft.setRotation(1); // image orientation
tft.fillScreen(TFT_BLACK);
// bg.setColorDepth(8);
bg.createSprite(200, 200);
// bg.setSwapBytes(true);
}
void loop() {
bg.fillSprite(TFT_YELLOW);
// bg.fillRect(0, 0, 220, 220, getRpmColor(angleRound));
// bg.pushSprite(0, 0);
// bg.deleteSprite();
rpm.setColorDepth(8);
rpm.createSprite(85, 30);
rpm.fillRect(0, 0, 95, 40, TFT_YELLOW);
rpm.setTextSize(2);
// rpm.setFreeFont(FS9);
// rpm.setFreeFont(FSB9);
// rpm.setFreeFont(FS12);
// rpm.setFreeFont(FSB12);
rpm.setTextColor(TFT_WHITE);
rpm.setCursor(22, 12);
rpm.print("RPM");
rpm.setTextColor(TFT_BLUE);
rpm.setCursor(20, 10);
rpm.print("RPM");
rpm.pushSprite(15, 5);
// rpm.deleteSprite();
digit.setColorDepth(8);
// digit.setFreeFont("micross15");
digit.createSprite(120, 70);
digit.fillRect(0, 0, 120, 70, TFT_YELLOW);
digit.setTextSize(3);
// digit.setFreeFont(FSB12);
// digit.setTextFont(1);
digit.setTextColor(TFT_WHITE);
digit.setCursor(24, 30);
// digit.print(sensorValue);
// digit.print(angle);
digit.print("1500");
digit.setTextColor(TFT_BLACK);
digit.setCursor(22, 28);
// digit.print(sensorValue);
// digit.print(angle);
digit.print("1500");
digit.pushSprite(50, 110);
// digit.deleteSprite();
// digit.unloadFont();
rpm.pushToSprite(&bg, 200, 200, TFT_TRANSPARENT);
// digit.pushRotated(&bg, 0, getRpmColor(angleRound));
digit.pushToSprite(&bg, 200, 200, TFT_TRANSPARENT);
// rpm.pushToSprite(&bg, 200, 200, getRpmColor(angleRound));
bg.pushSprite(0, 0);
}
uint16_t getRpmColor(int rpm) {
if (rpm < 2500) {
return TFT_GREEN;
} else if (rpm < 3200) {
return TFT_YELLOW;
} else {
return TFT_RED;
}
}