ssd1306 — OLED meghajtó

Ez a modul meghajtót biztosít az SSD1306 alapú OLED kijelzőkhöz. Két átviteli változat támogatott: I2C (SSD1306_I2C) és SPI (SSD1306_SPI). Mindkettő a rajzolási API-t a SSD1306 osztálytól örökli, amely egy framebuf.FrameBuffer1 objektumot burkol.

Példa:

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()

Osztályok

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

Az SSD1306 OLED kijelzők alaposztálya. Az alosztályoknak inicializálniuk kell a self.framebuf attribútumot, és biztosítaniuk kell a write_cmd, write_data, write_framebuf és poweron metódusokat.

Argumentumok:

  • width – A kijelző szélessége képpontban.

  • height – A kijelző magassága képpontban (8 többszörösének kell lennie).

  • external_vccTrue ha külső VCC forrást használnak, False a belső töltőszivattyú engedélyezéséhez.

Példányattribútumok:

  • width – A kijelző szélessége képpontban.

  • height – A kijelző magassága képpontban.

  • external_vcc – Külső VCC jelző.

  • pages – A 8 képpont magas oldalak száma (height // 8).

init_display() None

Elküldi az inicializálási parancssorozatot a kijelzőnek, törli a képkocka-puffert, és frissít. Az __init__ automatikusan meghívja.

poweroff() None

Kikapcsolja a kijelzőt (alvó mód).

contrast(contrast: int) None

Beállítja a kijelző kontrasztját.

  • contrast – Kontrasztérték a 0255 tartományban.

invert(invert: int) None

Megfordítja a kijelző színeit.

  • invert0 a normál kimenethez, 1 a fordított kimenethez. Csak a legkisebb helyiértékű bit használatos.

show() None

Kiüríti a belső képkocka-puffert a kijelzőre.

fill(col: int) None

Kitölti a teljes képkocka-puffert egyetlen színnel.

  • col – Színérték (0 a kikapcsolt, 1 a bekapcsolt állapothoz).

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

Beállítja egyetlen képpont színét.

  • x – Oszlopkoordináta.

  • y – Sorkoordináta.

  • col – Színérték (0 vagy 1).

scroll(dx: int, dy: int) None

A megadott eltolásokkal eltolja a képkocka-puffer tartalmát. A határon kívülre kerülő képpontok elvesznek; a felszabaduló képpontok érintetlenül maradnak.

  • dx – Vízszintes eltolás képpontban.

  • dy – Függőleges eltolás képpontban.

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

Karakterláncot rajzol a beépített 8x8-as betűtípussal.

  • string – A kirajzolandó szöveg.

  • x – Kezdő oszlopkoordináta.

  • y – Kezdő sorkoordináta.

  • col – Előtérszín (alapértelmezett 1).

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

I2C-csatlakozású SSD1306 meghajtó. A SSD1306 osztályból örököl.

Argumentumok:

  • width – A kijelző szélessége képpontban.

  • height – A kijelző magassága képpontban.

  • i2c – Egy inicializált machine.I2C (vagy kompatibilis) objektum.

  • addr – 7 bites I2C eszközcím (alapértelmezett 0x3C).

  • external_vccTrue külső VCC esetén, False a belső töltőszivattyú használatához.

write_cmd(cmd: int) None

Egyetlen parancsbájtot küld a kijelzőnek I2C-n keresztül.

write_data(buf: bytes) None

Képpontadat-puffert küld a kijelzőnek I2C-n keresztül.

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

SPI-csatlakozású SSD1306 meghajtó. A SSD1306 osztályból örököl. Rögzített, 10 MHz-es SPI órajelet használ.

Argumentumok:

  • width – A kijelző szélessége képpontban.

  • height – A kijelző magassága képpontban.

  • spi – Egy pyb.SPI (vagy kompatibilis) objektum.

  • dc – Adat/parancs kiválasztó láb.

  • res – Reset láb.

  • cs – Chip-select láb.

  • external_vccTrue külső VCC esetén, False a belső töltőszivattyú használatához.

write_cmd(cmd: int) None

Egyetlen parancsbájtot küld a kijelzőnek SPI-n keresztül.

write_framebuf() None

A teljes képkocka-puffert átviszi a kijelzőre SPI-n keresztül.

poweron() None

Átkapcsolja a reset vonalat a kijelző bekapcsolásához.

Konstansok

ssd1306.SET_CONTRAST: int

0x81 parancs – a kijelző kontrasztjának beállítása.

ssd1306.SET_ENTIRE_ON: int

0xA4 parancs – a kijelző folytatása a RAM tartalmából.

ssd1306.SET_NORM_INV: int

0xA6 parancs – normál/inverz kijelző kiválasztása.

ssd1306.SET_DISP: int

0xAE parancs – kijelző be-/kikapcsolása.

ssd1306.SET_MEM_ADDR: int

0x20 parancs – memória-címzési mód.

ssd1306.SET_COL_ADDR: int

0x21 parancs – oszlopcím-tartomány.

ssd1306.SET_PAGE_ADDR: int

0x22 parancs – oldalcím-tartomány.

ssd1306.SET_DISP_START_LINE: int

0x40 parancs – a kijelző kezdősora.

ssd1306.SET_SEG_REMAP: int

0xA0 parancs – szegmens-újraleképezés.

ssd1306.SET_MUX_RATIO: int

0xA8 parancs – multiplex arány.

ssd1306.SET_COM_OUT_DIR: int

0xC0 parancs – COM kimeneti pásztázási irány.

ssd1306.SET_DISP_OFFSET: int

0xD3 parancs – kijelző-eltolás.

ssd1306.SET_COM_PIN_CFG: int

0xDA parancs – COM lábak hardveres konfigurációja.

ssd1306.SET_DISP_CLK_DIV: int

0xD5 parancs – kijelző órajel-osztásarány / oszcillátorfrekvencia.

ssd1306.SET_PRECHARGE: int

0xD9 parancs – előtöltési periódus.

ssd1306.SET_VCOM_DESEL: int

0xDB parancs – VCOMH kioldási szint.

ssd1306.SET_CHARGE_PUMP: int

0x8D parancs – töltőszivattyú konfigurációja.