Найти в Дзене

Код для вывода BMP картинки на TFT дисплей ЗДЕСЬ!

Вывод картинки на TFT
Вывод картинки на TFT

Всем привет! В этой статье я выложил код для вывода изображения с SD карты на дисплей TFT 1.8".

Почему только BMP? Потому что BMP это формат изображений, которые хранятся и передаются как набор закодированных точек, что понятно из названия - BitMap Picture.

Ссылка на видео с показом работы кода.


РАСПИНОВКА И СКЕТЧ:

* ПОДКЛЮЧЕНИЕ МОДУЛЯ MICROSD
** MOSI - пин 11 на Arduino
** MISO - пин 12 на Arduino
** CLK - пин 13 на Arduino
** CS - пин 4 на Arduino.
** 3.3v - питание 3.3 вольта
** GND - земля (-)


* ПОДКЛЮЧЕНИЕ ДИСПЛЕЯ
** Led - пин 3.3 v
** SCK - пин 13
** SDA - пин 11
** A0 - пин 9
** RESET - пин 8
** CS - пин 10
** GND - пин GND
** VСС - пин 5v


То, что некоторые пины пересекаются, это нормально, так как эти порты являются портами для SPI, и в другие подключать нельзя
Если на дисплее плохо показывается картинка, вытащите SD карту из слота. Изображение уже загрузилось, оно не пропадёт.

НАЧАЛО СКЕТЧА:

// Подключение библиотек
#include "SPI.h" // Библиотека для протокола SPI
#include "SD.h" // Библиотека для SD карты
#include "TFT.h" // Библиотека для дисплея TFT

#define sd_cs 4 // Порт CS (ChipSelect) для SD карты
#define lcd_cs 10 // Порт CS (ChipSelect) для TFT дисплея
#define dc 9 // Порт А0 или DC дисплея
#define rst 8 // Порт RESET дисплея

TFT TFTscreen = TFT(lcd_cs, dc, rst); // Конфигурация дисплея
PImage logo; // Конфигурация переменной для картинки

void setup() {
TFTscreen.begin(); // Запуск дисплея
TFTscreen.background(0, 0, 0); // Установка черного фона
TFTscreen.stroke(0, 0, 255); // Установка красного цвета текста
TFTscreen.println(); // Выводим на дисплей пустоту
TFTscreen.println(F("Arduino TFT Bitmap Echo")); // Выводим на дисплей надпись
TFTscreen.stroke(255, 255, 255); // Установка белого цвета текста
TFTscreen.println(F("Open serial monitor")); // Выводим на дисплей надпись
TFTscreen.println(F("to see status")); // Выводим на дисплей надпись
delay(2000); // Ждём 2 секунды
Serial.begin(9600); // Запуск Сериал Монитор
while (!Serial) {} // Ждём открытие Сериал Монитор
TFTscreen.background(255, 255, 255); // Ставим белый фон на дисплей
Serial.print(F("Запуск SD карты...")); // Выводим надпись в Сериал Монитор
if (!SD.begin(sd_cs)) { // Если SD карта не запустилась...
Serial.println(F("Ошибка!")); // ...выводим сообщение ОШИБКА
return;
}
Serial.println(F("Всё хорошо!")); // ... или ВСЁ ХОРОШО
TFTscreen.background(255, 255, 255); // Ставим белый фон на дисплей
logo = TFTscreen.loadImage("arduino.bmp"); // Указываем имя файла картинки .BMP
if (!logo.isValid()) { // Если картинка не подходит...
Serial.println(F("Ошибка загрузки изображения!")); // ...выводим ОШИБКУ
}
if (logo.isValid() == false) { // иначе...
return; // ...ничего не делаем :)
}
Serial.println(F("Вывод изображения...")); // Выводим надпись в Сериал Монитор
delay(500); // Ждём 1,5 секунды
TFTscreen.image(logo, 0, 0); // Выводим изображение по координатам 0 и 0
}
void loop() { // Цикл ЛУП, тут ничего не делаем :)
}// Конец скетча


Удачи при сборке!!

---
Подпишись на канал! Здесь много интересных и полезных видео про Arduino!