ssd1306 --- مشغل OLED

توفر هذه الوحدة مشغلًا لشاشات OLED المبنية على SSD1306. يُدعم نوعان من وسائل النقل: I2C (SSD1306_I2C) وSPI (SSD1306_SPI). يرث كلاهما واجهة الرسم من SSD1306، التي تغلّف framebuf.FrameBuffer1.

مثال:

from machine import I2C
import ssd1306

i2c = I2C(2)
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
oled.fill(0)
oled.text("Hello", 0, 0)
oled.show()

الأصناف

class ssd1306.SSD1306(width: int, height: int, external_vcc: bool)

الصنف الأساسي لشاشات SSD1306 OLED. يجب على الأصناف الفرعية تهيئة self.framebuf وتوفير الدوال write_cmd وwrite_data وwrite_framebuf وpoweron.

الوسائط:

  • width -- عرض الشاشة بالبكسل.

  • height -- ارتفاع الشاشة بالبكسل (يجب أن يكون من مضاعفات 8).

  • external_vcc -- True إذا كان يُستخدم مصدر VCC خارجي، وFalse لتمكين مضخة الشحن الداخلية.

سمات النسخة:

  • width -- عرض الشاشة بالبكسل.

  • height -- ارتفاع الشاشة بالبكسل.

  • external_vcc -- علم VCC الخارجي.

  • pages -- عدد الصفحات بارتفاع 8 بكسل (height // 8).

init_display() None

إرسال تسلسل أوامر التهيئة إلى الشاشة، ومسح مخزن الإطارات، والتحديث. تُستدعى تلقائيًا بواسطة __init__.

poweroff() None

إيقاف تشغيل الشاشة (وضع السكون).

contrast(contrast: int) None

ضبط تباين الشاشة.

  • contrast -- قيمة التباين في النطاق 0--255.

invert(invert: int) None

عكس ألوان الشاشة.

  • invert -- 0 للخرج العادي، و1 للخرج المعكوس. يُستخدم البت الأقل أهمية فقط.

show() None

تفريغ مخزن الإطارات الداخلي إلى الشاشة.

fill(col: int) None

ملء مخزن الإطارات بالكامل بلون واحد.

  • col -- قيمة اللون (0 للإيقاف، و1 للتشغيل).

pixel(x: int, y: int, col: int) None

ضبط لون بكسل واحد.

  • x -- إحداثي العمود.

  • y -- إحداثي الصف.

  • col -- قيمة اللون (0 أو 1).

scroll(dx: int, dy: int) None

إزاحة محتويات مخزن الإطارات بمقدار الإزاحات المعطاة. تُفقد البكسلات التي تُزاح خارج الحدود؛ وتُترك البكسلات المُخلاة دون تغيير.

  • dx -- الإزاحة الأفقية بالبكسل.

  • dy -- الإزاحة الرأسية بالبكسل.

text(string: str, x: int, y: int, col: int = 1) None

رسم سلسلة نصية باستخدام الخط المدمج 8x8.

  • string -- النص المراد رسمه.

  • x -- إحداثي عمود البداية.

  • y -- إحداثي صف البداية.

  • col -- لون المقدمة (الافتراضي 1).

class ssd1306.SSD1306_I2C(width: int, height: int, i2c: machine.I2C, addr: int = 0x3C, external_vcc: bool = False)

مشغل SSD1306 المتصل عبر I2C. يرث من SSD1306.

الوسائط:

  • width -- عرض الشاشة بالبكسل.

  • height -- ارتفاع الشاشة بالبكسل.

  • i2c -- كائن machine.I2C مُهيّأ (أو متوافق).

  • addr -- عنوان جهاز I2C بطول 7 بتات (الافتراضي 0x3C).

  • external_vcc -- True لمصدر VCC خارجي، وFalse لاستخدام مضخة الشحن الداخلية.

write_cmd(cmd: int) None

إرسال بايت أمر واحد إلى الشاشة عبر I2C.

write_data(buf: bytes) None

إرسال مخزن من بيانات البكسل إلى الشاشة عبر I2C.

class ssd1306.SSD1306_SPI(width: int, height: int, spi: machine.SPI, dc: machine.Pin, res: machine.Pin, cs: machine.Pin, external_vcc: bool = False)

مشغل SSD1306 المتصل عبر SPI. يرث من SSD1306. يستخدم معدل ساعة SPI ثابتًا قدره 10 ميجاهرتز.

الوسائط:

  • width -- عرض الشاشة بالبكسل.

  • height -- ارتفاع الشاشة بالبكسل.

  • spi -- كائن pyb.SPI (أو متوافق).

  • dc -- دبوس اختيار البيانات/الأمر.

  • res -- دبوس إعادة التعيين.

  • cs -- دبوس اختيار الشريحة.

  • external_vcc -- True لمصدر VCC خارجي، وFalse لاستخدام مضخة الشحن الداخلية.

write_cmd(cmd: int) None

إرسال بايت أمر واحد إلى الشاشة عبر SPI.

write_framebuf() None

نقل مخزن الإطارات بالكامل إلى الشاشة عبر SPI.

poweron() None

تبديل خط إعادة التعيين لتشغيل الشاشة.

الثوابت

ssd1306.SET_CONTRAST: int

الأمر 0x81 -- ضبط تباين الشاشة.

ssd1306.SET_ENTIRE_ON: int

الأمر 0xA4 -- استئناف الشاشة من محتويات RAM.

ssd1306.SET_NORM_INV: int

الأمر 0xA6 -- اختيار العرض العادي/المعكوس.

ssd1306.SET_DISP: int

الأمر 0xAE -- تشغيل/إيقاف الشاشة.

ssd1306.SET_MEM_ADDR: int

الأمر 0x20 -- وضع عنونة الذاكرة.

ssd1306.SET_COL_ADDR: int

الأمر 0x21 -- نطاق عنوان العمود.

ssd1306.SET_PAGE_ADDR: int

الأمر 0x22 -- نطاق عنوان الصفحة.

ssd1306.SET_DISP_START_LINE: int

الأمر 0x40 -- سطر بداية الشاشة.

ssd1306.SET_SEG_REMAP: int

الأمر 0xA0 -- إعادة تعيين القطاع.

ssd1306.SET_MUX_RATIO: int

الأمر 0xA8 -- نسبة التعدد.

ssd1306.SET_COM_OUT_DIR: int

الأمر 0xC0 -- اتجاه مسح خرج COM.

ssd1306.SET_DISP_OFFSET: int

الأمر 0xD3 -- إزاحة الشاشة.

ssd1306.SET_COM_PIN_CFG: int

الأمر 0xDA -- تكوين عتاد دبابيس COM.

ssd1306.SET_DISP_CLK_DIV: int

الأمر 0xD5 -- نسبة تقسيم ساعة الشاشة / تردد المذبذب.

ssd1306.SET_PRECHARGE: int

الأمر 0xD9 -- فترة الشحن المسبق.

ssd1306.SET_VCOM_DESEL: int

الأمر 0xDB -- مستوى إلغاء اختيار VCOMH.

ssd1306.SET_CHARGE_PUMP: int

الأمر 0x8D -- تكوين مضخة الشحن.