#include <Adafruit_GFX.h> // Incluimos la librería principal de gráficos
#include <Adafruit_ILI9341.h> // Incluimos la librería para la pantalla TFT
#include <SPI.h> // Incluimos la librería SPI
#include <Wire.h> // Incluimos la librería Wire para I2C
#define TFT_CS 10
#define TFT_RST 9
#define TFT_DC 8
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);
#define BAR_WIDTH 40
#define BAR_SPACING 10
#define CHART_X_OFFSET 10
#define CHART_Y_OFFSET 30
#define CHART_WIDTH 320
#define CHART_HEIGHT 240 - CHART_Y_OFFSET
void setup() {
Serial.begin(9600);
tft.begin();
tft.setRotation(1);
tft.fillScreen(ILI9341_BLACK);
}
void loop() {
int valores[5];
// Generamos valores aleatorios para la gráfica de barras
for (int i = 0; i < 5; i++) {
valores[i] = random(50, 200); // Valores aleatorios entre 50 y 200
}
// Dibujamos la gráfica de barras
for (int i = 0; i < 5; i++) {
int barra_altura = map(valores[i], 50, 200, 0, CHART_HEIGHT);
int barra_x = CHART_X_OFFSET + (BAR_WIDTH + BAR_SPACING) * i;
int barra_y = 240 - barra_altura;
// Dibujamos la barra
tft.fillRect(barra_x, barra_y, BAR_WIDTH, barra_altura, ILI9341_BLUE);
// Mostramos el valor sobre la barra
tft.setTextSize(1);
tft.setTextColor(ILI9341_WHITE);
tft.setCursor(barra_x + 5, barra_y - 10);
tft.print(valores[i]);
}
delay(5000); // Esperamos 5 segundos antes de volver a generar la gráfica
tft.fillScreen(ILI9341_BLACK); // Limpiamos la pantalla para la próxima iteración
}