Môj profil
Kategórie produktov
23. októbra 2026

Zapojenie OLED display 3.12″ 256×64 SSD1322

Rozloženie pinov OLED displeja 3,12 palca 256x64 SSD1322

Na doske sú vytlačené iba čísla 1, 2, 15 a 16. Pri pohľade zo zadnej strany s konektorom vľavo je pin 1 v pravom stĺpci dole a pin 2 v ľavom stĺpci dole (pri okraji dosky).

1 GND 9 D5
2 VCC (3 – 5,5 V) 10 D6
3 NC (nezapojený) 11 D7
4 D0 / SCLK 12 E/RD#
5 D1 / SDIN 13 R/W# (WR#)
6 D2 14 D/C#
7 D3 15 RES#
8 D4 16 CS#

Zapojenie – režim 8080 (z výroby)

Schéma zapojenia OLED SSD1322 s Arduino Uno v režime 8080

Pin displeja Arduino Uno ESP32 DevKit
1 GND GND GND
2 VCC 5V 3V3
3 NC nezapájať nezapájať
4 D0 D2 GPIO16
5 D1 D3 GPIO17
6 D2 D4 GPIO18
7 D3 D5 GPIO19
8 D4 D6 GPIO21
9 D5 D7 GPIO22
10 D6 D8 GPIO23
11 D7 D9 GPIO25
12 RD A1 (v programe HIGH) alebo 5V 3V3
13 WR D10 GPIO26
14 DC D12 GPIO32
15 RES A0 GPIO33
16 CS D11 GPIO27

Zapojenie s Arduino Uno sme overili testom. Na ESP32 nepoužívajte piny GPIO0, 2, 12, 15 ani GPIO34 – 39.

Postup krok za krokom

  1. Pozrite sa na zadnú stranu displeja. Ak sú osadené rezistory R6 a R8, je v režime 8080 (z výroby) a zapájate podľa schémy vyššie.
  2. Prepojte displej s Arduinom 15 vodičmi samec – samica. Pin 3 nechajte voľný.
  3. V Arduino IDE otvorte Nástroje → Spravovať knižnice…, vyhľadajte U8g2 a pri knižnici U8g2 by oliver kliknite na Inštalovať.
  4. Nahrajte minimálny príklad nižšie. Na displeji sa zobrazí „Hello World!“.
  5. Ak chcete displej preveriť celý, nahrajte testovací program. Sériový monitor (115200 Bd) vypisuje, ktorý test práve beží.

Minimálny príklad – Arduino Uno

#include <U8g2lib.h>

// OLED 3.12" 256x64 SSD1322, režim 8080 (R6+R8), Arduino Uno
U8G2_SSD1322_NHD_256X64_1_8080 u8g2(U8G2_R0, 2, 3, 4, 5, 6, 7, 8, 9,
                                   /*WR=*/10, /*CS=*/11, /*DC=*/12, /*RES=*/A0);

void setup() {
  pinMode(A1, OUTPUT);
  digitalWrite(A1, HIGH);  // RD musí byť HIGH
  u8g2.begin();
}

void loop() {
  u8g2.firstPage();
  do {
    u8g2.setFont(u8g2_font_helvB14_tr);
    u8g2.drawStr(10, 30, "Hello World!");
    u8g2.setFont(u8g2_font_6x10_tr);
    u8g2.drawStr(10, 52, "OLED 3.12\" 256x64 SSD1322");
  } while (u8g2.nextPage());
  delay(1000);
}

Pre ESP32 použite konštruktor s plným bufferom:

U8G2_SSD1322_NHD_256X64_F_8080 u8g2(U8G2_R0, 16, 17, 18, 19, 21, 22, 23, 25,
  /*WR=*/26, /*CS=*/27, /*DC=*/32, /*RES=*/33);

Na Arduino Uno používajte konštruktor s _1_. Verzia _F_ potrebuje 2 kB RAM, čo je celá pamäť Una, a program by nefungoval.

Testovací program

Testovacie obrazce OLED displeja SSD1322: plná plocha, šachovnica, rámik, odtiene sivej, text, kontrast

Program dookola zobrazuje šesť obrazcov: celú plochu, šachovnicu po 1 bode, rámik s uhlopriečkami, 16 odtieňov sivej, text s počítadlom a plynulú zmenu kontrastu. Ak všetky prebehnú správne, displej je v poriadku.

// Test OLED 3.12" 256x64 SSD1322 - Arduino Uno, paralelny rezim 8080 (R6+R8)
// Zapojenie (pin modulu -> Arduino): 1 GND->GND, 2 VCC->5V, 3 NC, 4..11 D0..D7 -> D2..D9,
//   12 RD->A1 (HIGH, alebo 5V), 13 WR->D10, 14 DC->D12, 15 RES->A0, 16 CS->D11
// Seriovy monitor 115200 Bd vypisuje T1..T6.
#include <U8g2lib.h>

U8G2_SSD1322_NHD_256X64_1_8080 u8g2(U8G2_R0, 2, 3, 4, 5, 6, 7, 8, 9, /*wr=*/10, /*cs=*/11, /*dc=*/12, /*reset=*/A0);

void hlasTest(uint8_t n, const char *nazov) {
  Serial.print(F("T")); Serial.print(n); Serial.print(F(" ")); Serial.println(nazov);
}

void t1_plna() {
  hlasTest(1, "cela plocha svieti");
  u8g2.firstPage();
  do { u8g2.drawBox(0, 0, 256, 64); } while (u8g2.nextPage());
  delay(3000);
}

void t2_sachovnica() {
  hlasTest(2, "sachovnica 1px");
  u8g2.firstPage();
  do {
    uint8_t *b = u8g2.getBufferPtr();
    for (uint16_t x = 0; x < 256; x++) b[x] = (x & 1) ? 0xAA : 0x55;
  } while (u8g2.nextPage());
  delay(3000);
}

void t3_ramik() {
  hlasTest(3, "ramik okolo plochy");
  u8g2.firstPage();
  do {
    u8g2.drawFrame(0, 0, 256, 64);
    u8g2.drawLine(0, 0, 255, 63);
    u8g2.drawLine(0, 63, 255, 0);
  } while (u8g2.nextPage());
  delay(3000);
}

// 16 odtienov sivej priamym zapisom do RAM SSD1322 (4 bity/pixel)
void t4_odtiene() {
  hlasTest(4, "16 odtienov sivej");
  u8x8_t *d = u8g2.getU8x8();
  uint8_t riadok[128];
  for (uint8_t i = 0; i < 128; i++) { uint8_t g = i / 8; riadok[i] = (g << 4) | g; }
  u8x8_cad_StartTransfer(d);
  u8x8_cad_SendCmd(d, 0x15); u8x8_cad_SendArg(d, 0x1C); u8x8_cad_SendArg(d, 0x5B);
  u8x8_cad_SendCmd(d, 0x75); u8x8_cad_SendArg(d, 0);    u8x8_cad_SendArg(d, 63);
  u8x8_cad_SendCmd(d, 0x5C);
  for (uint8_t y = 0; y < 64; y++) u8x8_cad_SendData(d, 128, riadok);
  u8x8_cad_EndTransfer(d);
  delay(3000);
}

void t5_text() {
  hlasTest(5, "text + pocitadlo");
  unsigned long start = millis();
  while (millis() - start < 4000) {
    u8g2.firstPage();
    do {
      u8g2.setFont(u8g2_font_helvB14_tr);
      u8g2.drawStr((256 - u8g2.getStrWidth("TECHFUN TEST 256x64")) / 2, 22, "TECHFUN TEST 256x64");
      u8g2.setFont(u8g2_font_logisoso24_tn);
      u8g2.setCursor(110, 60);
      u8g2.print(millis() / 1000);
    } while (u8g2.nextPage());
  }
}

void t6_kontrast() {
  hlasTest(6, "kontrast 0-255-0");
  u8g2.firstPage();
  do { u8g2.drawBox(0, 0, 256, 64); } while (u8g2.nextPage());
  for (int c = 0; c <= 255; c += 3) { u8g2.setContrast(c); delay(18); }
  for (int c = 255; c >= 0; c -= 3) { u8g2.setContrast(c); delay(18); }
  u8g2.setContrast(255);
}

void setup() {
  Serial.begin(115200);
  pinMode(A1, OUTPUT);
  digitalWrite(A1, HIGH);
  u8g2.begin();
  u8g2.setContrast(255);
  Serial.println(F("\nOLED SSD1322 256x64 test, rezim 8080"));
}

void loop() {
  t1_plna();
  t2_sachovnica();
  t3_ramik();
  t4_odtiene();
  t5_text();
  t6_kontrast();
  Serial.println(F("--- dalsie kolo ---"));
}

Prestavba na SPI (voliteľné)

Nastavenie režimu rozhrania OLED SSD1322 rezistormi R5 až R8

Režim rozhrania určujú 0 Ω rezistory na zadnej strane modulu. Tabuľka režimov je vytlačená aj priamo na doske:

80XX (8080) – z výroby R6 + R8
68XX (6800) R6 + R7
4SPI (4-wire SPI) R5 + R8
3SPI (3-wire SPI) R5 + R7

Ak chcete 4-wire SPI s menším počtom vodičov, prespájkujte 0 Ω rezistor z pozície R6 na R5 a R8 ponechajte. Potom zapojte: pin 4 SCLK → D13, pin 5 SDIN → D11, pin 16 CS → D10, pin 14 DC → D9, pin 15 RES → D8, piny 12 a 13 na GND, piny 6 – 11 nezapojené. Konštruktor: U8G2_SSD1322_NHD_256X64_1_4W_HW_SPI u8g2(U8G2_R0, 10, 9, 8);

Poznámka: úpravu modulu spájkovaním robíte na vlastnú zodpovednosť. Poškodenie pri neodbornom spájkovaní nie je predmetom reklamácie.

Čo budete potrebovať

Postup, keď OLED displej SSD1322 nefunguje

 

 

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *