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# |
Obsah článku
Zapojenie – režim 8080 (z výroby)
| 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
- 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.
- Prepojte displej s Arduinom 15 vodičmi samec – samica. Pin 3 nechajte voľný.
- V Arduino IDE otvorte Nástroje → Spravovať knižnice…, vyhľadajte U8g2 a pri knižnici U8g2 by oliver kliknite na Inštalovať.
- Nahrajte minimálny príklad nižšie. Na displeji sa zobrazí „Hello World!“.
- 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
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é)
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ť
- riadiacu dosku, napríklad Arduino Uno R3 precízny klon alebo ESP32 NodeMCU 38-pin s CP2102
- prepojovacie káble samec – samica, napríklad Kábliky 40 kusov 20 cm vo variante M-F (pre režim 8080 treba 15 vodičov)
- na rozvod napájania sa hodí nepájivé kontaktné pole 830 bodov
- knižnicu U8g2





