128х160 1,8" + esp32 - перепутаны цвета

Уважаемые подскажите в чем ошибся ?
Использую дисплей 128х160 1,8" + esp32 - подключил стандартно,
библиотеку поставил #include <Adafruit_GFX.h> драйвер дисплея 7735.
вроде бы всё работает - линии круги рисует - но есть проблемы
черные белые цвета соответствуют а вот устанавливаю красный цвет линии - рисует синюю
ставлю синюю - рисует красную. зелёную рисует правильно. Жёлтую - вообще цвет не понятный. Это как то лечится? - нужна помощь

Значит никакой ошибки быть не может.

но цвета то перепутаны (

В библиотеке есть настройка, инвертировать цвета.

:slight_smile:
Сначала надо разобраться в чём дело с цветом.

//вывод фотокартинок, тест скорости вывода графики 
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <SPI.h>
#include "ris_.h"//файл хранения массивов фотокартинок
#define TFT_CS     22
#define TFT_RST    20
#define TFT_DC     21
// TFT_SCL 18   
// TFT_SDA 19 
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS,  TFT_DC, TFT_RST);
long Y=0;//
void setup() {
  pinMode (23, OUTPUT);//
  digitalWrite(23, HIGH);
  tft.initR(); tft.invertDisplay(true);
  tft.setRotation(0);
 tft.fillScreen(tft.Color565(0,0,0)); 
  }
void loop() {
  
drawFoto(0,0,ris_1,128,128);//
delay(2000);
drawFoto(0,0,ris_2,128,128);//
delay(2000);
drawFoto(0,0,ris_3,128,128);//
delay(2000);
drawFoto(0,0,ris_4,128,128);//
delay(2000);

}
/////////////////////////////////////////////////////////////////
void drawFoto(int x,int y, const uint8_t *bitmap,int w,int h) {//функция вывода фотокартинки
if(x<0||x+w>128||y<0||y+h>128){return;} 
 tft.setAddrWindow(x,y,x+w-1,y+h-1);
 SPI.beginTransaction(SPISettings(40000000, MSBFIRST, SPI_MODE0));
  digitalWrite(TFT_DC, HIGH);
  digitalWrite(TFT_CS, LOW); 
 for(int j=0; j<h; j++) {
    for(int i=0; i<2*w; i=i+2) {
    SPI.transfer(bitmap[i+1+j*2*w]);SPI.transfer(bitmap[i+j*2*w]);
  // SPI.transfer(pgm_read_byte(bitmap+i+1+j*2*w));SPI.transfer(pgm_read_byte(bitmap+i+j*2*w)); 
    }
  }
  digitalWrite(TFT_CS, HIGH);
  SPI.endTransaction();
 ///  
}
////////////////////////////////////////////////////////////////////




16 строка


Это маленький дисплей на st7735

Наверно есть, но мне не надо чёрный с белым инвертировать - они норм и при заливке норм.
Проблема с цветами

А дисплей какой? Их же много вариантов.
…Если просто поменять местами красный и синий, то из числа цвета вытягиваете компоненту RGB и пересобираете обратно в число с последовательностью BGR.
… но только это странно, дисплей особый?

Вот это надо попробовать вечером(я не работе). Правда набор пинов для SPI протокола немного другой я под VSPI настраивал может и неправильно, но такой набор пинов я видел у кого то - вечером напишу что у меня получилось. В любом случае Большое Спасибо за желание помочь

Нет, с Али в свое время приобрёл на нем кроме размера, разрешения, распиновки ещё на обратной стороне написан драйвер 7735. Вот один в один как на Вашей картине

:slight_smile:
На картинке 128х128 , 0,85" это редко используемый экземпляр.

да, я уже понял когда присмотрелся - сорри. :slight_smile:

сия библиотека знает о трёх дисплеях 1.8"

#define INITR_18GREENTAB INITR_GREENTAB
#define INITR_18REDTAB INITR_REDTAB
#define INITR_18BLACKTAB INITR_BLACKTAB
  // Use this initializer if using a 1.8" TFT screen:
  tft.initR(INITR_BLACKTAB);      // Init ST7735S chip, black tab

  // OR use this initializer if using a 1.8" TFT screen with offset such as WaveShare:
  // tft.initR(INITR_GREENTAB);      // Init ST7735S chip, green tab

Теперь я понимаю, почему тут вместо ответов на решение, стебутся над задающими вопросы.

Нет что бы прочитать про эту настройку и понять, что она решит твой вопрос, написал мне какую-то ерунду.

Ок, Насколько я понимаю - это оттенки монитора ,и как я должен определить, что ставить если дядюшка ХУ, из далёкой страны не написал про это и больше из характеристик ничего нет кроме разрешения, габаритов, драйвера? - чисто экспериментально?

Если дальтоник, то да! :grinning_face:

1 лайк

:frowning:
А я думал цвета печатных плат модулей разных.
…ничего печального нет, имея один цвет пикселя можно переделать на любой. Вообще я уже писал, ресурсы МК легко позволяют редактировать имеющиеся в нём изображение при выводе на дисплей, по яркости, контрастности, цветности и т.д.

А я думал, что это цвет на защитной плёнке :grinning_face:

А должен быть такой:)

Есть такой на котором стрелка есть красн, зелен, син, белый нет голубого и желтого син. скрасным препутаны - точнее вечером напишу нет тут контроллеров. ))