ssd1306 — OLED-drivrutin

Denna modul tillhandahåller en drivrutin för SSD1306-baserade OLED-skärmar. Två transportvarianter stöds: I2C (SSD1306_I2C) och SPI (SSD1306_SPI). Båda ärver rit-API:et från SSD1306, som omsluter en framebuf.FrameBuffer1.

Exempel:

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

Klasser

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

Basklass för SSD1306 OLED-skärmar. Underklasser måste initiera self.framebuf och tillhandahålla metoderna write_cmd, write_data, write_framebuf och poweron.

Argument:

  • width – Skärmbredd i pixlar.

  • height – Skärmhöjd i pixlar (måste vara en multipel av 8).

  • external_vccTrue om en extern VCC-källa används, False för att aktivera den interna laddningspumpen.

Instansattribut:

  • width – Skärmbredd i pixlar.

  • height – Skärmhöjd i pixlar.

  • external_vcc – Flagga för extern VCC.

  • pages – Antal 8 pixlar höga sidor (height // 8).

init_display() None

Skicka initieringskommandosekvensen till skärmen, töm bildbufferten och uppdatera. Anropas automatiskt av __init__.

poweroff() None

Stäng av skärmen (viloläge).

contrast(contrast: int) None

Ställ in skärmens kontrast.

  • contrast – Kontrastvärde i intervallet 0255.

invert(invert: int) None

Invertera skärmens färger.

  • invert0 för normal utmatning, 1 för inverterad utmatning. Endast den minst signifikanta biten används.

show() None

Spola den interna bildbufferten till skärmen.

fill(col: int) None

Fyll hela bildbufferten med en enda färg.

  • col – Färgvärde (0 för av, 1 för på).

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

Ställ in färgen på en enskild pixel.

  • x – Kolumnkoordinat.

  • y – Radkoordinat.

  • col – Färgvärde (0 eller 1).

scroll(dx: int, dy: int) None

Förskjut bildbuffertens innehåll med de angivna förskjutningarna. Pixlar som skjuts utanför gränserna går förlorade; frigjorda pixlar lämnas orörda.

  • dx – Horisontell förskjutning i pixlar.

  • dy – Vertikal förskjutning i pixlar.

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

Rita en sträng med det inbyggda 8x8-typsnittet.

  • string – Text att rita.

  • x – Startkolumnkoordinat.

  • y – Startradkoordinat.

  • col – Förgrundsfärg (standard 1).

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

I2C-ansluten SSD1306-drivrutin. Ärver från SSD1306.

Argument:

  • width – Skärmbredd i pixlar.

  • height – Skärmhöjd i pixlar.

  • i2c – Ett initierat machine.I2C-objekt (eller kompatibelt).

  • addr – 7-bitars I2C-enhetsadress (standard 0x3C).

  • external_vccTrue för extern VCC, False för att använda den interna laddningspumpen.

write_cmd(cmd: int) None

Skicka en enda kommandobyte till skärmen över I2C.

write_data(buf: bytes) None

Skicka en buffert med pixeldata till skärmen över 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)

SPI-ansluten SSD1306-drivrutin. Ärver från SSD1306. Använder en fast SPI-klockfrekvens på 10 MHz.

Argument:

  • width – Skärmbredd i pixlar.

  • height – Skärmhöjd i pixlar.

  • spi – Ett pyb.SPI-objekt (eller kompatibelt).

  • dc – Data/kommando-väljarstift.

  • res – Återställningsstift.

  • cs – Chip-select-stift.

  • external_vccTrue för extern VCC, False för att använda den interna laddningspumpen.

write_cmd(cmd: int) None

Skicka en enda kommandobyte till skärmen över SPI.

write_framebuf() None

Överför hela bildbufferten till skärmen över SPI.

poweron() None

Växla återställningslinjen för att slå på skärmen.

Konstanter

ssd1306.SET_CONTRAST: int

Kommando 0x81 – ställ in skärmkontrast.

ssd1306.SET_ENTIRE_ON: int

Kommando 0xA4 – återuppta skärmen från RAM-innehåll.

ssd1306.SET_NORM_INV: int

Kommando 0xA6 – val av normal/inverterad skärm.

ssd1306.SET_DISP: int

Kommando 0xAE – skärm på/av.

ssd1306.SET_MEM_ADDR: int

Kommando 0x20 – minnesadresseringsläge.

ssd1306.SET_COL_ADDR: int

Kommando 0x21 – kolumnadressintervall.

ssd1306.SET_PAGE_ADDR: int

Kommando 0x22 – sidadressintervall.

ssd1306.SET_DISP_START_LINE: int

Kommando 0x40 – skärmens startlinje.

ssd1306.SET_SEG_REMAP: int

Kommando 0xA0 – segmentomkartläggning.

ssd1306.SET_MUX_RATIO: int

Kommando 0xA8 – multiplexförhållande.

ssd1306.SET_COM_OUT_DIR: int

Kommando 0xC0 – COM-utgångens svepriktning.

ssd1306.SET_DISP_OFFSET: int

Kommando 0xD3 – skärmförskjutning.

ssd1306.SET_COM_PIN_CFG: int

Kommando 0xDA – hårdvarukonfiguration för COM-stift.

ssd1306.SET_DISP_CLK_DIV: int

Kommando 0xD5 – skärmens klockdelningsförhållande / oscillatorfrekvens.

ssd1306.SET_PRECHARGE: int

Kommando 0xD9 – förladdningsperiod.

ssd1306.SET_VCOM_DESEL: int

Kommando 0xDB – VCOMH-avmarkeringsnivå.

ssd1306.SET_CHARGE_PUMP: int

Kommando 0x8D – konfiguration av laddningspump.