ssd1306 — מנהל התקן OLED

מודול זה מספק מנהל התקן לצגי OLED מבוססי SSD1306. נתמכות שתי וריאנטים של תעבורה: I2C (SSD1306_I2C) ו-SPI (SSD1306_SPI). שתיהן יורשות את ה-API לציור מ-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)

מחלקת בסיס לצגי OLED מסוג SSD1306. תת-מחלקות חייבות לאתחל את self.framebuf ולספק את המתודות write_cmd, write_data, write_framebuf ו-poweron.

ארגומנטים:

  • width – רוחב הצג בפיקסלים.

  • height – גובה הצג בפיקסלים (חייב להיות כפולה של 8).

  • external_vccTrue אם נעשה שימוש במקור VCC חיצוני, False כדי להפעיל את משאבת המטען הפנימית.

תכונות מופע:

  • width – רוחב הצג בפיקסלים.

  • height – גובה הצג בפיקסלים.

  • external_vcc – דגל VCC חיצוני.

  • pages – מספר הדפים בגובה 8 פיקסלים (height // 8).

init_display() None

שולח את רצף פקודות האתחול לצג, מנקה את חוצץ הפריימים, ומרענן. נקרא אוטומטית על ידי __init__.

poweroff() None

מכבה את הצג (מצב שינה).

contrast(contrast: int) None

מגדיר את ניגודיות הצג.

  • contrast – ערך ניגודיות בטווח 0255.

invert(invert: int) None

הופך את צבעי הצג.

  • invert0 לפלט רגיל, 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_vccTrue עבור 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 MHz.

ארגומנטים:

  • width – רוחב הצג בפיקסלים.

  • height – גובה הצג בפיקסלים.

  • spi – אובייקט pyb.SPI (או תואם).

  • dc – פין בחירת נתונים/פקודה.

  • res – פין איפוס.

  • cs – פין בחירת שבב.

  • external_vccTrue עבור 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 – יחס ריבוב (multiplex).

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 – תצורת משאבת מטען.