Arduino Uno Mini Pro e ILI9341 harduer SPI non funziona

Uso questo semplice sketch:

  /***************************************************
    ----> http://www.adafruit.com/products/1651
    These displays use SPI to communicate, 4 or 5 pins are required to
    interface (RST is optional
    https://www.danielealberti.it/2019/12/come-utilizzare-un-display-tft-ili9341.html
                     
   Arduino UNO FUNZIONA!  10 febbraio 2025
   
    NODE MCU 1.0 (ESP 12E module) FUNZIONA!
    
    DEV KIT V2  FUNZIONA!  5 febbraio 2025
   ****************************************************/
  #include "SPI.h"
  #include "Adafruit_GFX.h"
  #include "Adafruit_ILI9341.h"
  
  #define TFT_DC  9     // arancio
  #define TFT_CS  10    // bianco
  #define TFT_MOSI  11  // verde
  #define TFT_MISO  12  // grigio
  #define TFT_CLK 13    // blu
  #define TFT_RST 8     // giallo

  // Use hardware SPI (on Uno, #13, #12, #11) and the above for CS/DC
  //Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
  // If using the breakout, change pins as desired
  Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO);
  
  void setup() {
    Serial.begin(9600);
    tft.begin();
  }
  void loop(void) {
    uint8_t rotation = 3; // scrittura orizzontale sul display
      tft.setRotation(rotation);
      TextIni();
      delay(100);
  }
  
  unsigned long TextIni() {
    tft.fillScreen(ILI9341_BLUE);
    tft.setCursor(70, 50); // colonna, riga
    tft.setTextColor(ILI9341_WHITE); tft.setTextSize(2);
    tft.println("Versione 4.0");
    tft.setCursor(50, 100); // colonna, riga
    tft.setTextColor(ILI9341_CYAN); tft.setTextSize(2);
    tft.println("10 febbraio 2025");  // 26 caratteri
    delay(3000);
    
    tft.fillScreen(ILI9341_BLACK);
    tft.setCursor(130, 80); // colonna, riga
    tft.setTextColor(ILI9341_CYAN); tft.setTextSize(10);
    tft.println("X");
    delay(3000);
    tft.setCursor(130, 80); // colonna, riga
    tft.setTextColor(ILI9341_BLACK); tft.setTextSize(10);
    tft.println("X");
    delay(1000);
  }

Se uso le impostazioni dei pin come evidenziato nello sketch, il programma funziona e sul video lcd vedo regolarmente tutto.
Se invece uso queste impostazioni:

  Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);

Lo schermo rimane bianco.
Su internet ho trovato diversi sketch dove usano questa impostazione, ma ne ho provati diversi e non ne funziona nessuno.
Mi piacerebbe capire il perché.

EzioGi

Non so bene perché non ho mai usato un Mini Pro, ma la butto lì: sarà perché c'è scritto nei commenti che con quelle impostazioni (con due parametri) usa l'hardware SPI e magari non si devono/possono usare su un Mini Pro? O perché devi specificare anche il pin TFT_RST nel costruttore?

E, in sostanza, scusa: se ti funziona con le impostazioni che hai messo, a parte l'eventuale curiosità, qual è il problema? :wink:

Era solo la curiosità di capire il perché nei siti dove vengono usati solo due pin, c'è scritto che funziona e invece a me che ho copiato lo sketch pedestremente non mi funziona.

EzioGi

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.