Отобразить изображение с 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);
}
@KCI, 👍-1
Обсуждение1 ответ
▲ 1
Убедитесь, что ваша SD - карта имеет формат Fat16. По крайней мере, это было требованием тестового кода, который у меня был на таком же дисплее.
,
@CoreyCoop
Смотрите также:
- Преобразовать байтовый текстовый файл в массив
- Команда SPI против данных?
- SPI между ведущим arduino и ведомым arduino
- Как использовать SPI на Arduino?
- Печать string and integer LCD
- Как увеличить скорость записи на SD-карту в Ардуино
- SD-карта не инициализируется
- Отправка значения с одного Arduino на другой
Большинство модулей SD-карт не допускают использование других микросхем на одной и той же шине SPI, @chrisl
Привет, спасибо за информацию. Мне удалось решить проблему с ошибкой инициализации SD-карты. я сделал значение sd_cs равным 10, и это сработало. Но теперь я столкнулся с другой проблемой. Я столкнулся с проблемой при загрузке изображения с SD-карты. Сообщение об ошибке: "Изображение загрузки: файл не найден: ошибка arduino.bmp при загрузке arduino.bmp" Я использую SD-карту объемом 1 ГБ, а размер bmp-изображения составляет 7,5 кб. это 24-битное bmp-изображение размером 50x50 пикселей. В чем может быть проблема?, @KCI