Pengaturan apa yang dibutuhkan OLED SSD1306?
Kolom per page · LSB first Kolom per page, LSB first, piksel menyala = 1 — jika Anda menulis byte langsung ke memori layar.
Ubah teks Mandarin atau Latin dan gambar menjadi array C untuk SSD1306, SH1106, ST7920, dan Adafruit GFX. Font piksel 12×12 dan 16×16 yang tajam, keempat mode scan PCtoLCD2002, plus dekoder untuk array tak dikenal.
Font sistem adalah outline dengan anti-aliasing, jadi di bawah sekitar 20 px goresannya putus atau menyatu. Untuk 12 dan 16 px, gunakan font piksel di atas.
Seret gambar ke sini atau klik untuk memilih
PNG, JPG, GIF, BMP, WebP, atau SVG — logo, ikon, atau tangkapan layar
Piksel gelap pada gambar menjadi piksel menyala di layar. Area transparan dihitung sebagai latar.
Punya array font dari proyek lama atau tutorial dan tidak tahu cara membuatnya? Tempelkan di sini: setiap arah scan dan urutan bit digambar berdampingan, dan yang terbaca dengan benar menunjukkan pengaturannya.
Cocok dengan memori page SSD1306 / SSD1309 / SH1106 / ST7565 dan MicroPython framebuf.MONO_VLSB — tulis byte langsung ke layar.
Piksel menyala = 1, glyph GNU Unifont. Bandingkan byte ini dengan array Anda untuk mengetahui pengaturan yang dipakai saat membuatnya.
| Arah scan | Urutan bit | Byte (hex) |
|---|---|---|
| Baris per baris (byte horizontal) | MSB first — piksel pertama di bit 7 | 01 00 01 00 01 00 01 00 3F F8 21 08 21 08 21 08 21 08 21 08 3F F8 21 08 01 00 01 00 01 00 01 00 |
| Baris per baris (byte horizontal) | LSB first — piksel pertama di bit 0 | 80 00 80 00 80 00 80 00 FC 1F 84 10 84 10 84 10 84 10 84 10 FC 1F 84 10 80 00 80 00 80 00 80 00 |
| Kolom per kolom (byte vertikal) | MSB first — piksel pertama di bit 7 | 00 00 00 00 0F F0 08 20 08 20 08 20 08 20 FF FF 08 20 08 20 08 20 08 20 0F F0 00 00 00 00 00 00 |
| Kolom per kolom (byte vertikal) | LSB first — piksel pertama di bit 0 | 00 00 00 00 F0 0F 10 04 10 04 10 04 10 04 FF FF 10 04 10 04 10 04 10 04 F0 0F 00 00 00 00 00 00 |
| Kolom per page (byte vertikal, urutan page SSD1306) | MSB first — piksel pertama di bit 7 | 00 00 0F 08 08 08 08 FF 08 08 08 08 0F 00 00 00 00 00 F0 20 20 20 20 FF 20 20 20 20 F0 00 00 00 |
| Kolom per page (byte vertikal, urutan page SSD1306) | LSB first — piksel pertama di bit 0 | 00 00 F0 10 10 10 10 FF 10 10 10 10 F0 00 00 00 00 00 0F 04 04 04 04 FF 04 04 04 04 0F 00 00 00 |
| Baris per strip (byte horizontal, strip 8 piksel) | MSB first — piksel pertama di bit 7 | 01 01 01 01 3F 21 21 21 21 21 3F 21 01 01 01 01 00 00 00 00 F8 08 08 08 08 08 F8 08 00 00 00 00 |
| Baris per strip (byte horizontal, strip 8 piksel) | LSB first — piksel pertama di bit 0 | 80 80 80 80 FC 84 84 84 84 84 FC 84 80 80 80 80 00 00 00 00 1F 10 10 10 10 10 1F 10 00 00 00 00 |
Font piksel: GNU Unifont (16 px) dan Fusion Pixel Font (12 px), keduanya berlisensi SIL Open Font License 1.1. Teks lisensi
Dibangun dan diverifikasi oleh tim engineering Go Tools.
Kolom per page · LSB first Kolom per page, LSB first, piksel menyala = 1 — jika Anda menulis byte langsung ke memori layar.
Baris per baris · MSB first Baris per baris, MSB first, piksel menyala = 1, setiap baris di-padding hingga byte utuh.
32 byte 32 byte di semua arah scan. 12 × 12 berarti 24 byte, karakter ASCII 8 × 16 berarti 16.
逆向 = LSB first 顺向 = MSB first (piksel pertama di bit 7); 逆向 = LSB first (piksel pertama di bit 0).
Sebagian besar controller OLED dan LCD grafis — termasuk SSD1306, SH1106, dan ST7565 — tidak punya font bawaan. Untuk menampilkan karakter, firmware menyalin kisi kecil piksel nyala/mati ke memori layar, satu bit per piksel, delapan piksel per byte. Mengubah glyph menjadi byte-byte itu disebut 取模 dalam tutorial embedded berbahasa Mandarin, pekerjaan yang selama bertahun-tahun dilakukan program Windows PCtoLCD2002.
Byte saja tidak cukup. Karakter 16 × 16 yang sama bisa dikemas dengan empat cara (baris per baris, kolom per kolom, kolom per page, baris per strip), dan tiap cara bisa menaruh piksel pertama di bit 7 atau bit 0. Delapan deret byte menggambarkan glyph yang sama, dan layar hanya menggambar salah satunya dengan benar. Itulah sebabnya font yang disalin dari tutorial begitu sering tampil tercermin, terbelah dua, atau terputar.
// 中 (16x16), pages of columns, LSB first, lit = 1 — SSD1306 page order
const unsigned char zhong[32] = {
0x00,0x00,0xF0,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0xF0,0x00,0x00,0x00,
0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x0F,0x00,0x00,0x00
};
// First 16 bytes = page 0 (rows 0-7), one byte per column, bit 0 = top row Font browser adalah outline dengan anti-aliasing; jika di-threshold pada 12 px dengan typeface Song, goresan horizontal 中 hilang begitu saja. Karena itu tool ini menyertakan font bitmap sungguhan: font 16 × 16 mencakup seluruh 6.763 karakter GB2312, sedangkan font 12 × 12 tidak memuat 143 karakter langka, yang digambar dengan font sistem dan diberi tanda.
Baris per baris, kolom per kolom, kolom per page, dan baris per strip, masing-masing MSB first atau LSB first, piksel menyala = 1 atau 0. Nama opsinya mengikuti PCtoLCD2002 dan maknanya dicocokkan dengan datasheet SSD1306 serta proyek contoh OLED yang umum, jadi Anda bisa memilih pengaturan yang sama dengan yang dipakai proyek lama.
Pilih SSD1306, Adafruit GFX, atau XBM dan opsinya langsung diatur. Ubah opsi apa pun secara manual dan tool akan memberi tahu layar serta library mana yang membaca urutan byte itu — atau bahwa tidak ada.
Tempelkan array font yang asal-usulnya tidak jelas, dan kedelapan pembacaan scan/urutan bit digambar berdampingan. Yang terbaca dengan benar menunjukkan pengaturannya; satu klik langsung menerapkannya.
Logo, ikon, dan foto diskalakan ke ukuran layar lalu dikonversi dengan threshold, dithering Floyd–Steinberg, atau Atkinson. Area transparan dihitung sebagai latar, dan threshold berlaku di semua mode.
Array 2-D gaya C51 dengan komentar /*"中",0*/, Arduino PROGMEM dengan offset, dictionary MicroPython bytearray, baris DB A51, atau hex polos. Kode C yang dihasilkan terkompilasi bersih dengan -Wall -Wextra -pedantic.
中
00 00 F0 10 10 10 10 FF 10 10 10 10 F0 00 00 00 00 00 0F 04 04 04 04 FF 04 04 04 04 0F 00 00 00
32 byte: 16 kolom dari page 0 (baris 0–7), lalu 16 kolom dari page 1 (baris 8–15). Pada 0xFF di kolom 7 semua bit menyala: goresan vertikal melintasi kedelapan baris di kedua page.
中
01 00 01 00 01 00 01 00 3F F8 21 08 21 08 21 08 21 08 21 08 3F F8 21 08 01 00 01 00 01 00 01 00
Dua byte per baris, 16 baris. 0x01 0x00 hanyalah goresan tengah: piksel paling kiri adalah bit 7 dari byte pertama, sehingga piksel di kolom 7 jatuh di bit 0. Kirim byte ini ke penulisan page SSD1306 dan hasilnya berantakan — glyph sama, pengemasan berbeda.
A
00 00 00 00 18 24 24 42 42 7E 42 42 42 42 00 00
Karakter ASCII berlebar setengah: 8 × 16 berarti 16 byte, satu byte per baris saat scan baris per baris. Centang "Beri karakter setengah lebar (A–Z, 0–9) lebar sel penuh" jika driver Anda mengharapkan setiap glyph berukuran 16 × 16.
中 (12 × 12, baris per baris, MSB first)
00 00 04 00 04 00 FF E0 84 20 84 20 84 20 FF E0 04 00 04 00 04 00 04 00
Setiap baris 12 piksel butuh dua byte; empat bit terakhir byte kedua adalah padding. 12 baris × 2 byte = 24. Semua library display mengalamatkan baris sebagai (width + 7) / 8 byte, jadi mengemas bit lebih rapat akan merusak semuanya.
Teks digambar dengan font piksel sungguhan: 12 × 12 (Fusion Pixel) atau 16 × 16 (GNU Unifont), dengan ASCII setengah lebar. Untuk logo dan ikon, pindah ke tab Gambar dan atur ukuran target, misalnya 128 × 64.
SSD1306 / SH1106 / ST7565 butuh byte vertikal dalam urutan page dengan piksel teratas di bit 0. Adafruit GFX, TFT_eSPI, U8g2 drawBitmap, dan LVGL butuh byte horizontal dengan piksel paling kiri di bit 7. XBM / U8g2 drawXBM sama, tetapi piksel paling kiri di bit 0.
Pratinjau menampilkan persis bitmap yang dienkode. Klik piksel mana saja untuk menyalakan atau mematikannya, atau geser glyph dengan kolom pergeseran.
Pilih C (gaya C51 PCtoLCD2002), Arduino PROGMEM, MicroPython bytearray, assembly A51, atau hex polos. Baris pertama output mencatat arah scan, urutan bit, dan ukuran glyph, sehingga array tersebut mendokumentasikan dirinya sendiri.
Byte horizontal dengan urutan bit yang salah. Adafruit GFX drawBitmap() butuh MSB first; XBM dan U8g2 drawXBM() butuh LSB first.
U8g2 drawXBM() diberi byte MSB first
drawXBM() → preset XBM (baris per baris, LSB first)
Byte vertikal dengan urutan bit yang salah. Controller tipe SSD1306 menaruh D0 di baris teratas, jadi butuh LSB first.
Kolom per page, MSB first → SSD1306
Kolom per page, LSB first → SSD1306
Kolom per kolom tertukar dengan kolom per page. Keduanya menghasilkan byte yang sama hanya untuk glyph setinggi maksimal 8 piksel; pada 16 piksel urutan byte-nya berbeda.
Kolom per kolom → penulisan page SSD1306
Kolom per page → penulisan page SSD1306
Terbalik diagonal berarti byte horizontal dibaca sebagai vertikal (atau sebaliknya). Teks gelap di latar menyala berarti dipilih menyala = 0 padahal layar mengharapkan menyala = 1.
Byte baris per baris dikirim ke page SSD1306
Tempel array ke tab dekoder dan pilih pratinjau yang terbaca
Alat Konversi
Konversi antara biner, hex, desimal, oktal, dan basis apa pun (2-36) secara instan. Presisi BigInt, output siap kode. Gratis, privat — tanpa pendaftaran.
Alat Konversi
Masukkan bilangan bulat bertanda untuk mendapat sign-magnitude, komplemen satu, komplemen dua, dan biner offset pada lebar 4-64 bit. Atau tempel pola bit atau heks dan lihat kelima pembacaannya. Gratis dan lokal di browser.
Alat Konversi
Konversi permission file Linux antara oktal (755, 644) dan simbol rwx. Dapatkan perintah chmod, deteksi setelan berisiko seperti 777 — gratis, langsung di browser Anda.
Alat Konversi
Konversi HEX ke RGB, HSL, OKLCH, OKLAB, dan CMYK di peramban Anda — salin format apa pun dengan satu klik. Gratis, tanpa daftar, warna Anda tidak pernah meninggalkan halaman.
Alat Konversi
Konversi koordinat GPS dalam format apa pun — derajat desimal, derajat menit detik (DMS) — ke UTM, Web Mercator, GCJ-02 (AMap) dan BD-09 (Baidu). Mendeteksi lat,lng atau lng,lat, invers GCJ-02 di bawah 1 mm, batch ke CSV.
Alat Konversi
Konversi warna HEX ke CMYK di peramban Anda. Aproksimasi naif berbasis sRGB untuk pratinjau cetak. Gratis, tanpa daftar, warna Anda tetap lokal.