...
Code Block |
---|
#include <TFT_eSPI.h> #include "orbitron20.h" TFT_eSPI tft = TFT_eSPI(); // Create object "tft" TFT_eSprite img = TFT_eSprite(&tft); #define gray 0x94B2 const int pwmFreq = 5000; const int pwmResolution = 8; const int pwmLedChannelTFT = 0; int brightnes=80; uint16_t color2=TFT_WHITE; uint16_t color1=TFT_BLACK; void setup() { pinMode(35,INPUT_PULLUP); pinMode(12,INPUT_PULLUP); pinMode(27,INPUT_PULLUP); pinMode(26,INPUT_PULLUP); pinMode(0,INPUT_PULLUP); tft.init(); tft.fillScreen(TFT_WHITE); tft.setRotation(1); img.setFreeFont(&Orbitron_Medium_18); img.setTextColor(color1,color2); img.createSprite(240, 135); ledcSetup(pwmLedChannelTFT, pwmFreq, pwmResolution); ledcAttachPin(TFT_BL, pwmLedChannelTFT); ledcWrite(pwmLedChannelTFT, brightnes); } void loop() { drawS(); } void drawS() { img.setTextColor(color1,color2); img.fillSprite(color2); int r=map(analogRead(2),4095,0,0,255); int g=map(analogRead(15),4095,0,0,255); int b=map(analogRead(13),4095,0,0,255); img.drawRect(4,24,132,20,gray); img.drawRect(4,68,132,20,gray); img.drawRect(4,112,132,20,gray); img.drawString("RED: "+String(r),6,0); img.fillRect(6,26,r/2,16,TFT_RED); img.drawString("GREEN: "+String(g),6,44); img.fillRect(6,70,g/2,16,TFT_GREEN); img.drawString("BLUE: "+String(b),6,88); img.fillRect(6,114,b/2,16,TFT_BLUE); if(digitalRead(26)==0) { brightnes=map(analogRead(13),4095,0,0,255); ledcWrite(pwmLedChannelTFT, brightnes); } uint16_t chosen=tft.color565(r, g, b); img.drawString("COLOR",148,0); img.drawString("0x"+String(chosen,HEX),148,90,4); img.drawString("BRIGHT: "+String(brightnes),148,118,2); img.fillRect(148,24,80,62,chosen); img.drawRect(146,22,84,66,gray); if(digitalRead(12)==0) color1=chosen; if(digitalRead(27)==0) color2=chosen; if(digitalRead(0)==0) { color1=TFT_BLACK; color2=TFT_WHITE;} if(digitalRead(35)==0) { img.fillScreen(color2); img.drawString("text:0x"+String(color1,HEX),6,10,4); img.drawString("back:0x"+String(color2,HEX),6,30,4); img.drawString("select:0x:"+String(chosen,HEX),6,50,4); } img.pushSprite(0,0); } |
Loading an Image
Find an image no bigger than the screen resolution (135 x 240).
Convert to .c with the following converter:
http://www.rinkydinkelectronics.com/t_imageconverter565.php
Rename output file to .h
Code Block |
---|
#include <TFT_eSPI.h>
#include "bmp.h"
...
void initScreen(){
tft.init();
tft.setRotation(1);
tft.fillScreen(TFT_BLACK);
tft.setTextSize(2);
tft.setTextColor(TFT_GREEN);
tft.setCursor(0, 0);
tft.setTextDatum(MC_DATUM);
tft.setTextSize(1);
tft.setSwapBytes(true);
tft.pushImage(0, 0, 240, 135, ttgo);
espDelay(5000);
} |
References
Reference | URL |
---|---|
LilyGo Product Page | http://www.lilygo.cn/claprod_view.aspx?TypeId=62&Id=1126&FId=t28:62:28 |
Datasheet | https://github.com/Xinyuan-LilyGO/T-Display-S3/blob/main/doc/esp32-s3_datasheet_en.pdf |
Reference Manual | https://github.com/Xinyuan-LilyGO/T-Display-S3/blob/main/doc/esp32-s3_technical_reference_manual_en.pdf |
New sketches for TTGO T-Display (FREE) | https://www.youtube.com/watch?v=Th4IdigA6xE |
https://www.youtube.com/watch?v=slYZz61u8RY | |
Volos Projects | https://github.com/VolosR |
How to Install and Setup TTGO T-Display ( Getting Started tutorial) | https://www.youtube.com/watch?v=b8254--ibmM |