Управление на цветен TFT 1.8" /контролер ST7735/ с ESP32
Съществуват много библиотеки, които могат да се използват за управление на този малък и евтин цветен дисплей. Тук няма
да бъде използвана специализирана библиотека.
TFT се свързва към хардуерния SPI на ESP32. Извършва се само предаване на данни от ESP32 към TFT (дисплея не връща информация)
Описание на изводите
Хардуерния блок на ESP32 - D18 - CLK / D19 - MISO / D23 - MOSI. Използват се изводи D23 и D18.
- RES (RST) - ресет свързан към D4
- CS - чип селект свързан към D21
- D/C (RS) - определя типа на данните изпратени към дисплея - команда (command) или цвят на пиксел (data) свързан към D2
- MOSI (DIN, SDA) - вход данни, свързан към D23 (хардуерен SPI)
- SCK (CLK) - тактова честота на SPI, свързан към D18 (хардуерен SPI)
- VCC + LED - свързани заедно към +5V - Vin на ESP32 dev kit
- GND - минус
// PIN definition const int RS = 2; const int CS = 21; const int RST = 4; // hardware SPI port is used // SCL - connected to D18 // SDA - connected to MOSI - D23
RS, RST и CS изводите трябва да бъдат конфигурирани като изходи. SPI се стартира с команда SPI.begin();
void Init_LCD_SPI () { pinMode(RS,OUTPUT);pinMode(RST,OUTPUT);pinMode(CS,OUTPUT); SPI.begin(); // init SPI hardware block - speed, mode, pin direction }
Данните се изпращат / четат по SPI с команда SPI.transfer( 8 битова величина)
void WriteSPI2_SW (unsigned char dat) { int receivedData = SPI.transfer(dat); }
Цветовете на пикселите е във формат 565 RGB кодиране. Има множество color pickers дори и онлайн от където може да
се избере цвят в цялата палитра.
Тук са дефинирани някои цветове за пример.
#define Blue 0x001F #define Red 0xf800 #define White 0xffff #define Yell 0xFFE0 #define Green 0x17C7 #define Brown 0xA28A #define Light_Blue 0x67D9 #define Dark_Blue 0x1991 #define Color_1 Dark_Blue
Начина на кодиране на пикселите може да се види в документа на контролера на дисплея ST7735.
В предоставения сорс код има таблици за:
Главни латински букви с размер 8x16 px
Цифри с размер 8x16px
Цялата ASCII таблица (латиница) с размер 5x8px
Добър и лесен софтуер за кодиране може да се използва -->>
LCD Image Converter
Коментари