Hello à tous,
J'arrive à la fin de mon projet d'hydroponie, et tout fonctionne sauf un aspect, cela fait plus d'un mois que je cherche le problème mais je commence réellement à désespérer :
-il m'est impossible d'afficher proprement une image sur mon écran TFT à partir d'une carte SD.
J'ai essayé les deux libraries (tinyfat & SDraw), la première ne me donne absolument rien du tout, la seconde fonctionne mais ne me donne pas les bonnes couleurs.
Même s'il est possible de faire une inversion des couleurs dans SDraw, rien n'y fait, le rendu n'est pas du tout fidèle à l'image originale.
Voici le code
#include <SPI.h>
// SdFat lib from here :-
// https://github.com/greiman/SdFat/archive/master.zip
#include <SdFat.h>
#include <UTFT.h>
#include <URTouch.h>
#include <UTFT_Buttons.h>
#include <UTFT_SdRaw.h>
extern uint8_t SmallFont[];
extern uint8_t BigFont[];#define SD_CHIP_SELECT 53 // SD chip select pin
// file system object
SdFat sd;
// print stream
ArduinoOutStream cout(Serial);int wait = 2, pressed_button;
UTFT myGLCD(ILI9486, 38, 39, 40, 41);
URTouch myTouch( 6, 5, 4, 3, 2);
UTFT_SdRaw myFiles(&myGLCD);
UTFT_Buttons myButtons(&myGLCD, &myTouch);void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(115200);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.println(F("Initialising SD card..."));
bool mysd = 0;
// see if the card is present and can be initialized:
while (!mysd)
{
if (!sd.begin(SD_CHIP_SELECT, SPI_FULL_SPEED)) {
Serial.println(F("Card failed, or not present"));
Serial.println(F("Retrying...."));
}
else
{
mysd = 1;
Serial.println(F("Card initialised."));
}
}
Serial.println(F("Initialising LCD."));
myGLCD.InitLCD();
myGLCD.clrScr();
myGLCD.setFont(SmallFont);
myTouch.InitTouch();
myTouch.setPrecision(PREC_MEDIUM);
myGLCD.fillScr(255,255,255);
myButtons.setTextFont(BigFont);
int butskip = myButtons.addButton( 85, 219 , 70, 20, "Skip");
Serial.println(F("LCD initialised."));myFiles.load(0, 0, 60, 51, "therm60x51.RAW",1,1);
myFiles.load(300, 0, 60, 51, "1therm.RAW",16,1);
myFiles.load(100, 100, 48, 63, "clock48x63.RAW",1,1);
myFiles.load(200, 200, 28, 28, "moon28x28.RAW",1,1);
myFiles.load(300, 280, 30, 30, "home30x30.RAW",1,1);}
void loop()
{
}
Comme vous pouvez voir en pièce jointe, les couleurs ne correspondent pas du tout, et le rendu n'est pas net.
Voici l'écran que je possède, ECRAN
même si je doute fortement que le problème vient de là. Tout le reste a toujours marché, la librairie UTFT etc.
Je serai éternellement reconnaissant pour toute aide utile !
Merci