/*
* Este programa utiliza una pantalla TTGO con el chip controlador ST7735 y un microcontrolador ESP32.
* El programa realiza las siguientes acciones:
* - Inicializa la pantalla y la configura.
* - Cada segundo, selecciona un color aleatorio (rojo, azul o verde) y dibuja un círculo en la pantalla con ese color.
* - Muestra el texto "Hello" en el centro de la pantalla con el mismo color del círculo.
* El programa repite estas acciones en un bucle infinito, actualizando el círculo y el texto cada segundo.
*/
#include <TFT_eSPI.h> // Incluye la librería para gráficos y fuentes para el chip controlador ST7735
#include <SPI.h> // Incluye la librería para la interfaz SPI
TFT_eSPI tft = TFT_eSPI(); // Crea un objeto de la clase TFT_eSPI, los pines están definidos en User_Setup.h
uint32_t targetTime = 0; // Variable para el tiempo objetivo del siguiente timeout de 1 segundo
uint16_t colors[3] = {TFT_RED, TFT_BLUE, TFT_GREEN}; // Arreglo que contiene tres colores: rojo, azul y verde
uint8_t sel; // Variable para seleccionar un color aleatorio del arreglo
void setup(void) { // Función de configuración que se ejecuta una vez al inicio
tft.init(); // Inicializa la pantalla
tft.setRotation(1); // Establece la orientación de la pantalla
tft.fillScreen(TFT_BLACK); // Llena la pantalla con el color negro
tft.setTextColor(TFT_YELLOW, TFT_BLACK); // Establece el color del texto en amarillo con fondo negro
targetTime = millis() + 1000; // Establece el tiempo objetivo al tiempo actual más 1 segundo (1000 ms)
}
void loop() { // Función principal que se ejecuta en bucle continuamente
if (targetTime < millis()) { // Comprueba si ha pasado 1 segundo
targetTime = millis() + 1000; // Actualiza el tiempo objetivo al tiempo actual más 1 segundo
sel = random(3); // Selecciona un número aleatorio entre 0 y 2
tft.fillCircle(120, 120, 40, colors[sel]); // Dibuja un círculo en la posición (120, 120) con radio 40 y un color aleatorio del arreglo
tft.setTextColor(colors[sel], TFT_BLACK); // Establece el color del texto al mismo color aleatorio del círculo con fondo negro
tft.drawCentreString("Hello", 115, 180, 4); // Dibuja el texto "Hello" centrado en la posición (115, 180) con fuente de tamaño 4
}
}