#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>

// Defina os pinos para os displays
#define TFT1_CS   15
#define TFT2_CS   5

#define TFT_DC    2  // Pino DC compartilhado
#define TFT_RST   4  // Pino RST compartilhado

// Hardware SPI bus
Adafruit_ILI9341 tft1 = Adafruit_ILI9341(TFT1_CS, TFT_DC, TFT_RST);
Adafruit_ILI9341 tft2 = Adafruit_ILI9341(TFT2_CS, TFT_DC, TFT_RST);

void setup() {
  Serial.begin(115200);
  Serial.println("Iniciando...");

  Serial.println("Iniciando ambos os displays");
  tft1.begin();
  tft2.begin();

  tft1.setRotation(0); // Rotação para o primeiro display
  tft2.setRotation(0); // Rotação para o segundo display

  Serial.println("Testando cores em ambos os displays");
  testarCores(tft1);
  testarCores(tft2);

  Serial.println("Testando cores individuais");
  tft1.fillScreen(ILI9341_PURPLE); // Roxo no primeiro display
  tft2.fillScreen(ILI9341_CYAN);   // Ciano no segundo display
  delay(500);

  tft1.fillScreen(ILI9341_CYAN);   // Ciano no primeiro display
  tft2.fillScreen(ILI9341_PURPLE); // Roxo no segundo display
  delay(500);

  Serial.println("Fim do setup");
}

void loop() {
  delay(10);
}

void testarCores(Adafruit_ILI9341 &tft) {
  tft.fillScreen(ILI9341_GREEN); // Verde
  delay(500);
  tft.fillScreen(ILI9341_RED);   // Vermelho
  delay(500);
  tft.fillScreen(ILI9341_BLUE);  // Azul
  delay(500);
}