ما الإعدادات التي تحتاجها شاشة SSD1306 OLED؟
أعمدة ضمن صفحات · LSB أولاً أعمدة ضمن صفحات، LSB أولاً، البكسل المضاء = 1 — حين تكتب البايتات مباشرة في ذاكرة العرض.
حوّل النص الصيني أو الإنجليزي والصور إلى مصفوفات C لشاشات SSD1306 وSH1106 وST7920 ومكتبة Adafruit GFX. خطوط نقطية حادة بقياس 12×12 و16×16، وأوضاع المسح الأربعة في PCtoLCD2002، ومفكّك لمصفوفات مجهولة المصدر.
خطوط النظام خطوط محيطية منعّمة الحواف، لذا تتقطع الخطوط أو تندمج تحت نحو 20 بكسلاً. لحجمَي 12 و16 بكسلاً استخدم الخطوط النقطية أعلاه.
أفلت صورة هنا أو انقر للاستعراض
PNG أو JPG أو GIF أو BMP أو WebP أو SVG — شعار أو أيقونة أو لقطة شاشة
تصبح البكسلات الداكنة في الصورة بكسلات مضاءة على الشاشة، وتُحتسب المناطق الشفافة خلفيةً.
لديك مصفوفة خط من مشروع قديم أو درس تعليمي ولا تعرف كيف وُلّدت؟ الصقها هنا: تُرسم كل اتجاهات المسح وترتيبات البتات جنباً إلى جنب، والقراءة الواضحة منها تكشف لك الإعدادات.
يطابق ذاكرة الصفحات في SSD1306 / SSD1309 / SH1106 / ST7565 و framebuf.MONO_VLSB في MicroPython — اكتب البايتات مباشرة إلى الشاشة.
البكسل المضاء = 1، والمحرف من GNU Unifont. قارن هذه البايتات بمصفوفتك لتعرف الإعدادات التي صُنعت بها.
| اتجاه المسح | ترتيب البتات | البايتات (ست عشري) |
|---|---|---|
| صفاً بصف (بايتات أفقية) | MSB أولاً — البكسل الأول في البت 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 |
| صفاً بصف (بايتات أفقية) | LSB أولاً — البكسل الأول في البت 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 |
| عموداً بعمود (بايتات عمودية) | MSB أولاً — البكسل الأول في البت 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 |
| عموداً بعمود (بايتات عمودية) | LSB أولاً — البكسل الأول في البت 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 |
| أعمدة ضمن صفحات (بايتات عمودية، ترتيب صفحات SSD1306) | MSB أولاً — البكسل الأول في البت 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 |
| أعمدة ضمن صفحات (بايتات عمودية، ترتيب صفحات SSD1306) | LSB أولاً — البكسل الأول في البت 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 |
| صفوف ضمن أشرطة (بايتات أفقية، أشرطة بعرض 8 بكسلات) | MSB أولاً — البكسل الأول في البت 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 |
| صفوف ضمن أشرطة (بايتات أفقية، أشرطة بعرض 8 بكسلات) | LSB أولاً — البكسل الأول في البت 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 |
الخطوط النقطية: GNU Unifont (16 بكسلاً) وFusion Pixel Font (12 بكسلاً)، وكلاهما بموجب رخصة SIL Open Font License 1.1. نصوص الرخص
بناه وتحقّق منه فريق هندسة Go Tools.
أعمدة ضمن صفحات · LSB أولاً أعمدة ضمن صفحات، LSB أولاً، البكسل المضاء = 1 — حين تكتب البايتات مباشرة في ذاكرة العرض.
صفاً بصف · MSB أولاً صفاً بصف، MSB أولاً، البكسل المضاء = 1، مع حشو كل صف إلى بايتات كاملة.
32 بايتاً 32 بايتاً في كل اتجاهات المسح. ويشغل محرف 12 × 12 مقدار 24 بايتاً، ومحرف ASCII بقياس 8 × 16 مقدار 16 بايتاً.
逆向 = LSB أولاً 顺向 = MSB أولاً (البكسل الأول في البت 7)؛ 逆向 = LSB أولاً (البكسل الأول في البت 0).
معظم متحكّمات شاشات OLED وLCD الرسومية — ومنها SSD1306 وSH1106 وST7565 — لا تحتوي على خط مدمج. فلعرض محرف ما، ينسخ البرنامج الثابت شبكة صغيرة من البكسلات المضاءة والمطفأة إلى ذاكرة العرض، بتاً واحداً لكل بكسل وثمانية بكسلات في كل بايت. ويُسمّى تحويل المحرف إلى هذه البايتات «استخراج نقاط الخط» — أو 取模 كما تسمّيه دروس الأنظمة المدمجة الصينية — وهي المهمة التي يؤديها برنامج Windows المعروف PCtoLCD2002 منذ سنوات.
لكن البايتات وحدها لا تكفي. فالمحرف ذاته بقياس 16 × 16 يمكن رصّه بأربع طرق (صفاً بصف، وعموداً بعمود، وأعمدة ضمن صفحات، وصفوف ضمن أشرطة)، وكل طريقة قد تضع البكسل الأول في البت 7 أو في البت 0. ثماني سلاسل من البايتات تصف المحرف نفسه، ولا ترسم الشاشة بشكل صحيح إلا واحدة منها. ولهذا كثيراً ما يظهر خط منسوخ من درس تعليمي معكوساً أو مشطوراً نصفين أو مُدوَّراً.
// 中 (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 خطوط المتصفح خطوط محيطية منعّمة الحواف؛ وعند تطبيق العتبة على خط Song بحجم 12 بكسلاً تختفي الخطوط الأفقية في 中 ببساطة. لذلك تأتي هذه الأداة بخطوط نقطية حقيقية: يغطي خط 16 × 16 جميع محارف GB2312 البالغة 6,763 محرفاً، بينما يفتقد خط 12 × 12 إلى 143 محرفاً نادراً تُرسم بخط النظام بدلاً منه ويُشار إليها.
صفاً بصف، وعموداً بعمود، وأعمدة ضمن صفحات، وصفوف ضمن أشرطة، كلٌّ منها مع MSB أولاً أو LSB أولاً، والبكسل المضاء = 1 أو 0. أسماء الخيارات مأخوذة من PCtoLCD2002، ومعناها مُطابَق مع ورقة بيانات SSD1306 ومشاريع أمثلة OLED الشائعة، فتستطيع اختيار الإعدادات نفسها التي يستخدمها مشروع قائم.
اختر SSD1306 أو Adafruit GFX أو XBM فتُضبط الخيارات تلقائياً. وإن غيّرت أي خيار يدوياً أخبرتك الأداة بالشاشات والمكتبات التي تقرأ ترتيب البايتات هذا — أو بأن لا شيء منها يقرؤه.
الصق مصفوفة خط مجهولة المصدر فتُرسم القراءات الثماني لاتجاه المسح وترتيب البتات جنباً إلى جنب. القراءة الواضحة تكشف لك الإعدادات، ونقرة واحدة تطبّقها.
تُحجَّم الشعارات والأيقونات والصور الفوتوغرافية إلى مقاس شاشتك وتُحوَّل بعتبة أو بترقيط Floyd–Steinberg أو Atkinson. تُحتسب المناطق الشفافة خلفيةً، وتعمل العتبة في كل الأوضاع.
مصفوفات ثنائية الأبعاد بنمط C51 مع تعليقات /*"中",0*/، وArduino PROGMEM مع الإزاحات، وقواميس bytearray في MicroPython، وأسطر DB للغة A51، أو ست عشري مجرد. ويُصرَّف كود C الناتج دون أي تحذير مع -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 بايتاً: 16 عموداً من الصفحة 0 (الصفوف 0–7)، ثم 16 عموداً من الصفحة 1 (الصفوف 8–15). في القيمة 0xFF عند العمود 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
بايتان لكل صف، و16 صفاً. الزوج 0x01 0x00 هو الخط الأوسط وحده: البكسل الأيسر هو البت 7 من البايت الأول، فيقع البكسل الذي في العمود 7 في البت 0. أرسل هذه البايتات في كتابة صفحات إلى SSD1306 وستحصل على خربشة — المحرف نفسه، برصٍّ مختلف.
A
00 00 00 00 18 24 24 42 42 7E 42 42 42 42 00 00
محارف ASCII بنصف العرض: 8 × 16 تعني 16 بايتاً، بايتاً واحداً لكل صف عند المسح صفاً بصف. فعّل «امنح المحارف نصف العرض عرض الخلية الكامل» إن كان برنامج التشغيل لديك يتوقع أن يكون كل محرف 16 × 16.
中 (12 × 12، صفاً بصف، MSB أولاً)
00 00 04 00 04 00 FF E0 84 20 84 20 84 20 FF E0 04 00 04 00 04 00 04 00
يحتاج كل صف من 12 بكسلاً إلى بايتين؛ والبتات الأربعة الأخيرة من البايت الثاني حشو. 12 صفاً × 2 بايت = 24. كل مكتبات العرض تعنون الصف بمقدار (العرض + 7) / 8 بايت، فرصّ البتات بإحكام أكبر سيكسرها جميعاً.
يُرسم النص بخط نقطي حقيقي: 12 × 12 (Fusion Pixel) أو 16 × 16 (GNU Unifont)، مع محارف ASCII بنصف العرض. وللشعارات والأيقونات انتقل إلى تبويب الصورة واضبط المقاس المطلوب، مثل 128 × 64.
تحتاج SSD1306 / SH1106 / ST7565 إلى بايتات عمودية بترتيب الصفحات مع البكسل العلوي في البت 0. أما Adafruit GFX وTFT_eSPI وU8g2 drawBitmap وLVGL فتحتاج إلى بايتات أفقية مع البكسل الأيسر في البت 7. وXBM / U8g2 drawXBM مثلها تماماً، لكن البكسل الأيسر فيها هو البت 0.
تعرض المعاينة الصورة النقطية نفسها التي تُرمَّز بالضبط. انقر أي بكسل لتبديله، أو حرّك المحرف بحقلَي الإزاحة.
اختر C (بنمط C51 في PCtoLCD2002)، أو Arduino PROGMEM، أو bytearray في MicroPython، أو لغة تجميع A51، أو ست عشري مجرد. يسجّل السطر الأول من المخرجات اتجاه المسح وترتيب البتات وحجم المحرف، فتوثّق المصفوفة نفسها بنفسها.
بايتات أفقية بترتيب بتات خاطئ. تحتاج دالة drawBitmap() في Adafruit GFX إلى MSB أولاً، بينما تحتاج XBM ودالة drawXBM() في U8g2 إلى LSB أولاً.
U8g2 drawXBM() تتلقى بايتات MSB أولاً
drawXBM() ← الإعداد المسبق XBM (صفاً بصف، LSB أولاً)
بايتات عمودية بترتيب بتات خاطئ. متحكمات عائلة SSD1306 تضع D0 في الصف العلوي، فتحتاج إلى LSB أولاً.
أعمدة ضمن صفحات، MSB أولاً ← SSD1306
أعمدة ضمن صفحات، LSB أولاً ← SSD1306
خلط بين «عموداً بعمود» و«أعمدة ضمن صفحات». لا يعطيان البايتات نفسها إلا لمحارف لا يتجاوز ارتفاعها 8 بكسلات؛ أما عند 16 بكسلاً فيختلف ترتيب البايتات.
عموداً بعمود ← كتابة صفحات SSD1306
أعمدة ضمن صفحات ← كتابة صفحات SSD1306
الانقلاب القطري يعني أن البايتات الأفقية قُرئت على أنها عمودية (أو العكس). والنص الداكن على خلفية مضاءة يعني أنك اخترت البكسل المضاء = 0 حيث تتوقع الشاشة البكسل المضاء = 1.
بايتات صفاً بصف مُرسلة إلى صفحة SSD1306
الصق المصفوفة في تبويب «معاينة مصفوفة موجودة» واختر المعاينة المقروءة
أدوات التحويل
حوّل بين الأنظمة الثنائية والست عشرية والعشرية والثمانية وأي أساس من 2 إلى 36 فوراً — أداة مجانية أونلاين تعمل في متصفّحك. جرّبها الآن.
أدوات التحويل
اكتب عدداً صحيحاً ذا إشارة لتحصل دفعة واحدة على الإشارة والمقدار والمتمم الأحادي والمتمم الثنائي والثنائي المزاح، بعرض 4 إلى 64 بت. أو الصق نمط بتات أو بايتاً ست عشرياً لترى قراءاته الخمس جنباً إلى جنب. محلي ومجاني وبلا تسجيل.
أدوات التحويل
حوّل صلاحيات ملفات لينكس بين النظام الثماني (755، 644) ورموز rwx. احصل على أوامر chmod جاهزة للتشغيل، واكشف الإعدادات الخطرة مثل 777 — مجاناً وداخل متصفحك مباشرة.
أدوات التحويل
حوّل ألوان HEX إلى RGB و HSL و OKLCH و OKLAB و CMYK داخل متصفحك — انسخ أي صيغة بنقرة واحدة. مجاني، بلا تسجيل، ألوانك لا تغادر الصفحة أبداً.
أدوات التحويل
محول الإحداثيات: حوّل خطوط العرض والطول من أي صيغة — عشرية أو درجات ودقائق وثوانٍ أو DDM — إلى UTM وWeb Mercator ونظامَي الصين GCJ-02 (AMap) وBD-09 (Baidu). يكتشف ترتيب lat,lng/lng,lat ويصدّر CSV دفعةً واحدة، داخل متصفحك.
أدوات التحويل
حوّل ألوان HEX إلى CMYK في المتصفح. تقريب ساذج قائم على sRGB لمعاينات الطباعة. مجاني، بلا تسجيل، ألوانك تبقى محلياً.