Отобразить изображение с SD-карты на ЖК-дисплей ILI9486

Я совершенно новичок в Arduino. Мне был предоставлен побочный проект для отображения изображения с SD-карты для отображения. Используемый ЖК-дисплей-это ILI9486, который имеет слот для SD-карты на задней панели модуля дисплея. Я вставил карту Micro SD объемом 1 ГБ. Я использую приведенный ниже пример кода, чтобы попытаться открыть SD - карту и отобразить изображение на модуле отображения. Я получаю ошибку на последовательном мониторе "Не удалось инициализировать SD - карту". Может ли кто-нибудь сообщить мне, как отобразить изображение с SD - карты на экран.

#include <SD.h>
#include <SPI.h>
#include <TFT.h>  // Arduino LCD library

// pin definition for the Uno
#define sd_cs  4
#define lcd_cs 10
#define dc     9
#define rst    8

TFT TFTscreen = TFT(lcd_cs, dc, rst);

// this variable represents the image to be drawn on screen
PImage logo;

void setup() {
    // initialize the GLCD and show a message
    // asking the user to open the serial line
    TFTscreen.begin();
    TFTscreen.background(255, 255, 255);

    TFTscreen.stroke(0, 0, 255);
    TFTscreen.println();
    TFTscreen.println(F("Arduino TFT Bitmap Example"));
    TFTscreen.stroke(0, 0, 0);
    TFTscreen.println(F("Open serial monitor"));
    TFTscreen.println(F("to run the sketch"));

    // initialize the serial port: it will be used to
    // print some diagnostic info
    Serial.begin(9600);

    while (!Serial) {
        // wait for serial port to connect. Needed for native USB port only
    }

    // clear the GLCD screen before starting
    TFTscreen.background(255, 255, 255);

    // try to access the SD card. If that fails (e.g.
    // no card present), the setup process will stop.
    Serial.print(F("Initializing SD card..."));
    if (!SD.begin(sd_cs)) {
        Serial.println(F("failed!"));
        return;
    }
    Serial.println(F("OK!"));

    // initialize and clear the GLCD screen
    TFTscreen.begin();
    TFTscreen.background(255, 255, 255);

    // now that the SD card can be access, try to load the
    // image file.
    logo = TFTscreen.loadImage("arduino.bmp");
    if (!logo.isValid()) {
        Serial.println(F("error while loading arduino.bmp"));
    }
}

void loop() {
    // don't do anything if the image wasn't loaded correctly.
    if (logo.isValid() == false) {
        return;
    }

    Serial.println(F("drawing image"));

    // get a random location where to draw the image.
    // To avoid the image to be draw outside the screen,
    // take into account the image size.
    int x = random(TFTscreen.width() - logo.width());
    int y = random(TFTscreen.height() - logo.height());

    // draw the image to the screen
    TFTscreen.image(logo, x, y);

    // wait a little bit before drawing again
    delay(1500);
}

, 👍-1

Обсуждение

Большинство модулей SD-карт не допускают использование других микросхем на одной и той же шине SPI, @chrisl

Привет, спасибо за информацию. Мне удалось решить проблему с ошибкой инициализации SD-карты. я сделал значение sd_cs равным 10, и это сработало. Но теперь я столкнулся с другой проблемой. Я столкнулся с проблемой при загрузке изображения с SD-карты. Сообщение об ошибке: "Изображение загрузки: файл не найден: ошибка arduino.bmp при загрузке arduino.bmp" Я использую SD-карту объемом 1 ГБ, а размер bmp-изображения составляет 7,5 кб. это 24-битное bmp-изображение размером 50x50 пикселей. В чем может быть проблема?, @KCI


1 ответ


1

Убедитесь, что ваша SD - карта имеет формат Fat16. По крайней мере, это было требованием тестового кода, который у меня был на таком же дисплее.

,