Найти в Дзене
Электроника, ESP32, Arduino

Подключение TFT дисплея 1,8" 128*160 SPI драйвер ST7735Sк ESP-WROOM-32 DevKit v1 + руссификация

Экран оснащён компактной диагональю в 1,8 дюйма с разрешением 128х160 точек и глубиной 65536 цветов на пиксель. Матрица дисплея подключена к встроенному чипу ST7735, который связывает экран с микроконтроллером. Используется 4-х проводной SPI интерфейс. Потребуется задействовать 5 выводов микроконтроллера.
Скачайте и установите в среду Arduino IDE 2 библиотеки (будут вложены в архиве

Экран оснащён компактной диагональю в 1,8 дюйма с разрешением 128х160 точек и глубиной 65536 цветов на пиксель. Матрица дисплея подключена к встроенному чипу ST7735, который связывает экран с микроконтроллером. Используется 4-х проводной SPI интерфейс. Потребуется задействовать 5 выводов микроконтроллера.

Скачайте и установите в среду Arduino IDE 2 библиотеки (будут вложены в архиве примера)

Adafruit-ST7735-Library

Adafruit-GFX-Library

Схема подключения:

Подключение дисплея ST7735 к ESP32
Подключение дисплея ST7735 к ESP32

В коде идущих с библиотекой примеров необходимо исправить секцию до void setup(void) {

Выкиньте все лишнее - оставьте только необходимое!
Выкиньте все лишнее - оставьте только необходимое!
Пример загрузился и все работает как нужно
Пример загрузился и все работает как нужно

Можно править под свои нужды и пользоваться. Стоит такой дисплей всего в районе 250 рублей.

Скачать пример и библиотеки можно по этой ссылке:

Библиотека для Адафрут не умеет писать русскими буквами. Для решения данной проблемы идем сюда. Скачиваем любой из архивов.

-4

Распаковываем архив и переходим в папку \OledRus2\libraries\Adafruit_GFX

-5

Открываем папку \Documents\Arduino\libraries\Adafruit_GFX_Library
(по умолчанию библиотеки Ардуино хранятся в папке мои документы)
И заменяем в ней файл glcdfont из архива который скачали.

Замените файл  glcdfont в папке  \Arduino\libraries\Adafruit_GFX_Library файлом из архива
Замените файл glcdfont в папке \Arduino\libraries\Adafruit_GFX_Library файлом из архива

Добавьте в скетч функцию utf8rus

String utf8rus(String source)
{
int i,k;
String target;
unsigned char n;
char m[2] = { '0', '\0' };

k = source.length(); i = 0;

while (i < k) {
n = source[i]; i++;

if (n >= 0xC0) {
switch (n) {
case 0xD0: {
n = source[i]; i++;
if (n == 0x81) { n = 0xA8; break; }
if (n >= 0x90 && n <= 0xBF) n = n + 0x30;
break;
}
case 0xD1: {
n = source[i]; i++;
if (n == 0x91) { n = 0xB8; break; }
if (n >= 0x80 && n <= 0x8F) n = n + 0x70;
break;
}
}
}
m[0] = n; target = target + String(m);
}
return target;
}

А в начало скетча обязательно добавьте:
tft.cp437(true);

-7

Теперь "тетя Ада" умеет говорить по Русски. (причем не только конкретно с этим дисплеем, но и любым другим с который будет использован с помощью библиотеки Adafruit с ядром Adafruit_GFX)

Для этого необходимо использовать функцию utf8rus("Наш текст"):
tft.println(utf8rus("Привет мир!"));

Русификация ядра Adafruit_GFX
Русификация ядра Adafruit_GFX

Полный код примера + русификатор можно скачать по этой ссылке

Сам дисплей покупал тут.

Список всех статей канала ESP32 и Arduino не для чайников