Objednáno v pracovní den do 14:00 = odesláno ještě týž den 30 dní na odstoupení od smlouvy Záruka 1 rok
← Zpět na přehled

Schéma zapojení a ukázkový kód

Takto připojíš 1,28″ kulatý TFT LCD 240×240 (GC9A01, SPI) pro Arduino k Arduino UNO nebo ESP32, s ukázkovým sketchem, který můžeš hned nahrát.

Ukázka kruhového TFT LCD GC9A01 1.28 palce

Tento projekt inicializuje a vykresluje animovanou grafiku na kruhovém SPI TFT displeji 1.28 palce (ovladač GC9A01). Kreslí barevné soustředné prstence kolem kruhové obrazovky a průběžně mění barvu vnitřního cílového kruhu.

Schéma zapojení: 1,28″ kulatý TFT LCD 240×240 (GC9A01, SPI) pro Arduino na Arduino UNO
Schéma zapojení · Kliknutím zvětšíte
Tabulka zapojení: 1,28″ kulatý TFT LCD 240×240 (GC9A01, SPI) pro Arduino na Arduino UNO
Tabulka zapojení · Kliknutím zvětšíte
1_28_Inch_Round_GC9A01_TFT_LCD_Demo.ino · zkompilováno a otestováno
/*
 * ==================================================================
 *  Generated by Codey.online  —  https://www.codey.online
 * ==================================================================
 *  Project   : 1.28 Inch Round GC9A01 TFT LCD Demo
 *  Board     : Arduino UNO (arduino:avr:uno)
 *  Parts     : 1.28" Round TFT LCD 240x240 (GC9A01, SPI)
 *  Libraries : none (built-in)
 *
 *  Codey Online is an AI-powered browser IDE for Arduino and ESP32.
 *  Describe your project and Codey writes the code, draws the wiring
 *  diagram and uploads it to your board, straight from the browser.
 *  This code is free to use, modify and share, without warranty.
 * ==================================================================
 */

#include <SPI.h>

#define TFT_CS   10
#define TFT_DC    9
#define TFT_RST   8

#define COLOR_BLACK   0x0000
#define COLOR_BLUE    0x001F
#define COLOR_RED     0xF800
#define COLOR_GREEN   0x07E0
#define COLOR_CYAN    0x07FF
#define COLOR_MAGENTA 0xF81F
#define COLOR_YELLOW  0xFFE0
#define COLOR_WHITE   0xFFFF

const uint16_t palette[] = {COLOR_RED, COLOR_GREEN, COLOR_BLUE, COLOR_YELLOW, COLOR_CYAN, COLOR_MAGENTA};
int colorIndex = 0;

void writeCommand(uint8_t c) {
  digitalWrite(TFT_DC, LOW);
  digitalWrite(TFT_CS, LOW);
  SPI.transfer(c);
  digitalWrite(TFT_CS, HIGH);
}

void writeData(uint8_t d) {
  digitalWrite(TFT_DC, HIGH);
  digitalWrite(TFT_CS, LOW);
  SPI.transfer(d);
  digitalWrite(TFT_CS, HIGH);
}

void setWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) {
  writeCommand(0x2A);
  writeData(x0 >> 8); writeData(x0 & 0xFF);
  writeData(x1 >> 8); writeData(x1 & 0xFF);
  writeCommand(0x2B);
  writeData(y0 >> 8); writeData(y0 & 0xFF);
  writeData(y1 >> 8); writeData(y1 & 0xFF);
  writeCommand(0x2C);
}

void fillScreen(uint16_t color) {
  setWindow(0, 0, 239, 239);
  digitalWrite(TFT_DC, HIGH);
  digitalWrite(TFT_CS, LOW);
  uint8_t hi = color >> 8;
  uint8_t lo = color & 0xFF;
  for (uint32_t i = 0; i < 240UL * 240UL; i++) {
    SPI.transfer(hi);
    SPI.transfer(lo);
  }
  digitalWrite(TFT_CS, HIGH);
}

void drawHLine(int16_t x, int16_t y, int16_t w, uint16_t color) {
  if (y < 0 || y >= 240 || x >= 240 || (x + w) <= 0) return;
  int16_t x1 = max(0, x);
  int16_t x2 = min(239, x + w - 1);
  int16_t len = x2 - x1 + 1;
  setWindow(x1, y, x2, y);
  digitalWrite(TFT_DC, HIGH);
  digitalWrite(TFT_CS, LOW);
  uint8_t hi = color >> 8;
  uint8_t lo = color & 0xFF;
  for (int16_t i = 0; i < len; i++) {
    SPI.transfer(hi);
    SPI.transfer(lo);
  }
  digitalWrite(TFT_CS, HIGH);
}

void fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color) {
  for (int16_t dy = -r; dy <= r; dy++) {
    int16_t dx = sqrt((long)r * r - (long)dy * dy);
    drawHLine(x0 - dx, y0 + dy, dx * 2 + 1, color);
  }
}

void drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color) {
  int16_t f = 1 - r, ddF_x = 1, ddF_y = -2 * r, x = 0, y = r;
  auto plot = [&](int16_t px, int16_t py) {
    if (px >= 0 && px < 240 && py >= 0 && py < 240) {
      setWindow(px, py, px, py);
      writeData(color >> 8);
      writeData(color & 0xFF);
    }
  };
  plot(x0, y0 + r); plot(x0, y0 - r); plot(x0 + r, y0); plot(x0 - r, y0);
  while (x < y) {
    if (f >= 0) { y--; ddF_y += 2; f += ddF_y; }
    x++; ddF_x += 2; f += ddF_x;
    plot(x0 + x, y0 + y); plot(x0 - x, y0 + y);
    plot(x0 + x, y0 - y); plot(x0 - x, y0 - y);
    plot(x0 + y, y0 + x); plot(x0 - y, y0 + x);
    plot(x0 + y, y0 - x); plot(x0 - y, y0 - x);
  }
}

void gc9a01Init() {
  pinMode(TFT_CS, OUTPUT);
  pinMode(TFT_DC, OUTPUT);
  pinMode(TFT_RST, OUTPUT);
  digitalWrite(TFT_CS, HIGH);

  digitalWrite(TFT_RST, HIGH);
  delay(10);
  digitalWrite(TFT_RST, LOW);
  delay(20);
  digitalWrite(TFT_RST, HIGH);
  delay(120);

  SPI.begin();
  SPI.beginTransaction(SPISettings(8000000, MSBFIRST, SPI_MODE0));

  writeCommand(0xEF);
  writeCommand(0xEB); writeData(0x14);
  writeCommand(0xFE);
  writeCommand(0xEF);
  writeCommand(0xEB); writeData(0x14);
  writeCommand(0x84); writeData(0x40);
  writeCommand(0x85); writeData(0xFF);
  writeCommand(0x86); writeData(0xFF);
  writeCommand(0x87); writeData(0xFF);
  writeCommand(0x88); writeData(0x0A);
  writeCommand(0x89); writeData(0x21);
  writeCommand(0x8A); writeData(0x00);
  writeCommand(0x8B); writeData(0x80);
  writeCommand(0x8C); writeData(0x01);
  writeCommand(0x8D); writeData(0x01);
  writeCommand(0x8E); writeData(0xFF);
  writeCommand(0x8F); writeData(0xFF);
  writeCommand(0xB6); writeData(0x00); writeData(0x00);
  writeCommand(0x3A); writeData(0x05);
  writeCommand(0x90); writeData(0x08); writeData(0x08); writeData(0x08); writeData(0x08);
  writeCommand(0xBD); writeData(0x06);
  writeCommand(0xBC); writeData(0x00);
  writeCommand(0xFF); writeData(0x60); writeData(0x01); writeData(0x04);
  writeCommand(0xC3); writeData(0x13);
  writeCommand(0xC4); writeData(0x13);
  writeCommand(0xC9); writeData(0x22);
  writeCommand(0xBE); writeData(0x11);
  writeCommand(0xE1); writeData(0x10); writeData(0x0E);
  writeCommand(0xDF); writeData(0x21); writeData(0x0C); writeData(0x02);
  writeCommand(0xF0); writeData(0x45); writeData(0x09); writeData(0x08); writeData(0x08); writeData(0x26); writeData(0x2A);
  writeCommand(0xF1); writeData(0x43); writeData(0x70); writeData(0x72); writeData(0x36); writeData(0x37); writeData(0x6F);
  writeCommand(0xF2); writeData(0x45); writeData(0x09); writeData(0x08); writeData(0x08); writeData(0x26); writeData(0x2A);
  writeCommand(0xF3); writeData(0x43); writeData(0x70); writeData(0x72); writeData(0x36); writeData(0x37); writeData(0x6F);
  writeCommand(0xED); writeData(0x1B); writeData(0x0B);
  writeCommand(0xAE); writeData(0x77);
  writeCommand(0xCD); writeData(0x63);
  writeCommand(0x70); writeData(0x07); writeData(0x07); writeData(0x04); writeData(0x0E); writeData(0x0F); writeData(0x09); writeData(0x07); writeData(0x08); writeData(0x03);
  writeCommand(0xE8); writeData(0x34);
  writeCommand(0x62); writeData(0x18); writeData(0x0D); writeData(0x71); writeData(0xED); writeData(0x70); writeData(0x70); writeData(0x18); writeData(0x0F); writeData(0x71); writeData(0xEF); writeData(0x70); writeData(0x70);
  writeCommand(0x63); writeData(0x18); writeData(0x11); writeData(0x71); writeData(0xF1); writeData(0x70); writeData(0x70); writeData(0x18); writeData(0x13); writeData(0x71); writeData(0xF3); writeData(0x70); writeData(0x70);
  writeCommand(0x64); writeData(0x28); writeData(0x29); writeData(0xF1); writeData(0x01); writeData(0xF1); writeData(0x00); writeData(0x07);
  writeCommand(0x66); writeData(0x3C); writeData(0x00); writeData(0xCD); writeData(0x67); writeData(0x45); writeData(0x45); writeData(0x10); writeData(0x00); writeData(0x00); writeData(0x00);
  writeCommand(0x67); writeData(0x00); writeData(0x3C); writeData(0x00); writeData(0x00); writeData(0x00); writeData(0x01); writeData(0x54); writeData(0x10); writeData(0x32); writeData(0x98);
  writeCommand(0x74); writeData(0x10); writeData(0x85); writeData(0x80); writeData(0x00); writeData(0x00); writeData(0x4E); writeData(0x00);
  writeCommand(0x98); writeData(0x3E); writeData(0x07);
  writeCommand(0x35);
  writeCommand(0x21);
  writeCommand(0x11);
  delay(120);
  writeCommand(0x29);
  delay(20);
}

void setup() {
  Serial.begin(115200);
  Serial.println(F("GC9A01 Round LCD Initializing..."));
  gc9a01Init();
  fillScreen(COLOR_BLACK);

  // Draw fixed outer rings
  drawCircle(120, 120, 118, COLOR_CYAN);
  drawCircle(120, 120, 116, COLOR_CYAN);
  drawCircle(120, 120, 100, COLOR_WHITE);
  drawCircle(120, 120, 80, COLOR_BLUE);
  drawCircle(120, 120, 60, COLOR_YELLOW);
  Serial.println(F("Display ready!"));
}

void loop() {
  // Pulse inner target circle with different colors
  fillCircle(120, 120, 40, palette[colorIndex]);
  Serial.print(F("Color index: "));
  Serial.println(colorIndex);

  colorIndex = (colorIndex + 1) % 6;
  delay(800);
}

Wiring diagram and example code generated by Codey.online — https://www.codey.online

Demo kruhového TFT LCD GC9A01 1.28"

Tento projekt připojuje 1.28-inch kruhový TFT LCD GC9A01 k ESP32 přes SPI. Sketch inicializuje displej a vykreslí vlastní kruhové gauge rozvržení s textem a aktualizovanými indikátory stavu.

Schéma zapojení: 1,28″ kulatý TFT LCD 240×240 (GC9A01, SPI) pro Arduino na ESP32 DevKit V1
Schéma zapojení · Kliknutím zvětšíte
Tabulka zapojení: 1,28″ kulatý TFT LCD 240×240 (GC9A01, SPI) pro Arduino na ESP32 DevKit V1
Tabulka zapojení · Kliknutím zvětšíte
GC9A01_1_28_Round_TFT_LCD_Demo.ino · zkompilováno a otestováno
/*
 * ==================================================================
 *  Generated by Codey.online  —  https://www.codey.online
 * ==================================================================
 *  Project   : GC9A01 1.28" Round TFT LCD Demo
 *  Board     : ESP32 DEVKIT V1 (esp32:esp32:esp32doit-devkit-v1)
 *  Parts     : 1.28" Round TFT LCD 240x240 (GC9A01, SPI)
 *  Libraries : Adafruit GFX Library 1.12.6, Adafruit GC9A01A 1.1.1
 *
 *  Codey Online is an AI-powered browser IDE for Arduino and ESP32.
 *  Describe your project and Codey writes the code, draws the wiring
 *  diagram and uploads it to your board, straight from the browser.
 *  This code is free to use, modify and share, without warranty.
 * ==================================================================
 */

#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_GC9A01A.h>

#define TFT_CS   5
#define TFT_DC   27
#define TFT_RST  4

Adafruit_GC9A01A tft(TFT_CS, TFT_DC, TFT_RST);

void drawDial() {
  tft.fillScreen(GC9A01A_BLACK);
  
  // Draw outer colored rings
  tft.drawCircle(120, 120, 118, GC9A01A_CYAN);
  tft.drawCircle(120, 120, 115, GC9A01A_BLUE);
  tft.fillCircle(120, 120, 90, GC9A01A_NAVY);
  tft.fillCircle(120, 120, 80, GC9A01A_BLACK);

  // Centered labels
  tft.setTextColor(GC9A01A_WHITE);
  tft.setTextSize(2);
  tft.setCursor(65, 80);
  tft.println("GC9A01");

  tft.setTextSize(1);
  tft.setTextColor(GC9A01A_GREEN);
  tft.setCursor(75, 105);
  tft.println("ESP32 READY");
}

void setup() {
  Serial.begin(115200);
  Serial.println("Initializing GC9A01 Round Display...");

  tft.begin();
  tft.setRotation(0);
  drawDial();
  Serial.println("Display initialized!");
}

void loop() {
  static unsigned long lastUpdate = 0;
  static int counter = 0;

  if (millis() - lastUpdate >= 1000) {
    lastUpdate = millis();
    counter++;

    // Update counter display in the center
    tft.fillRect(60, 130, 120, 30, GC9A01A_BLACK);
    tft.setTextColor(GC9A01A_YELLOW);
    tft.setTextSize(3);
    tft.setCursor(95, 135);
    tft.printf("%02d", counter % 60);

    Serial.print("Counter: ");
    Serial.println(counter % 60);
  }
}

Potřebné knihovny: Adafruit GFX Library 1.12.6, Adafruit GC9A01A 1.1.1

Wiring diagram and example code generated by Codey.online — https://www.codey.online

Nedávno zobrazené

Bezolovnatý pájecí cín, Sn 99.3%, Cu 0.7%, 0.6 mm, 100 g, cívka

Bezolovnatý pájecí cín, Sn 99.3%, Cu 0.7%, 0.6 mm, 100 g, cívka

€ 18,25
Zobrazit
6P Dupont plastické pouzdro pinového konektoru 2.54mm

6P Dupont plastické pouzdro pinového konektoru 2.54mm

€ 0,20
Digitální termostatické relé se 2 displeji (červený a modrý) XH-W1219

Digitální termostatické relé se 2 displeji (červený a modrý) XH-W1219

€ 4,95
5Wx2 PAM8406 digitální zesilovací deska s potenciometrem hlasitosti

5Wx2 PAM8406 digitální zesilovací deska s potenciometrem hlasitosti

€ 2,10
Velleman siréna + červený stroboskop v pouzdře s LED SV/PSL3R

Velleman siréna + červený stroboskop v pouzdře s LED SV/PSL3R

€ 24,35
Tlačítko | moment - puls | 14x20 kulatý otvor 12mm | Bílá

Tlačítko | moment - puls | 14x20 kulatý otvor 12mm | Bílá

€ 1,00
Lupa s LED osvětlením, praktickými svorkami a držákem páječky

Lupa s LED osvětlením, praktickými svorkami a držákem páječky

€ 14,55
Zobrazit
Velleman Pájecí stanice 50W - Nastavitelná teplota 175°C až 480°C

Velleman Pájecí stanice 50W - Nastavitelná teplota 175°C až 480°C

€ 30,45
Krokodýlí klip na Dupont Male 20cm 10 kusů

Krokodýlí klip na Dupont Male 20cm 10 kusů

€ 4,90
Mecanum kolo / omnidirekční kolo - 60MM-K červená - sada 4 ks

Mecanum kolo / omnidirekční kolo - 60MM-K červená - sada 4 ks

€ 16,60
Zobrazit
Žlutý vodič s pevným jádrem 22AWG pro breadboardy na metr

Žlutý vodič s pevným jádrem 22AWG pro breadboardy na metr

€ 1,50
20P Dupont plastové pouzdro pin konektoru 2.54mm

20P Dupont plastové pouzdro pin konektoru 2.54mm

€ 0,40
2x15W Digitální audio mini zesilovač 8-24V modul | TPA3110 | HW-714

2x15W Digitální audio mini zesilovač 8-24V modul | TPA3110 | HW-714

€ 4,85
Krokodýlí klip na Dupont Female 20cm 10 kusů

Krokodýlí klip na Dupont Female 20cm 10 kusů

€ 3,40
Zobrazit