ssd1306 — OLED upravljački program

Ovaj modul pruža upravljački program za OLED zaslone temeljene na SSD1306. Podržane su dvije prijenosne varijante: I2C (SSD1306_I2C) i SPI (SSD1306_SPI). Obje nasljeđuju API za crtanje od SSD1306, koji obavija framebuf.FrameBuffer1.

Primjer:

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

Klase

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

Osnovna klasa za SSD1306 OLED zaslone. Podklase moraju inicijalizirati self.framebuf i pružiti metode write_cmd, write_data, write_framebuf i poweron.

Argumenti:

  • width – Širina zaslona u pikselima.

  • height – Visina zaslona u pikselima (mora biti višekratnik broja 8).

  • external_vccTrue ako se koristi vanjski VCC izvor, False za omogućavanje unutarnje naponske crpke.

Atributi instance:

  • width – Širina zaslona u pikselima.

  • height – Visina zaslona u pikselima.

  • external_vcc – Zastavica vanjskog VCC-a.

  • pages – Broj stranica visine 8 piksela (height // 8).

init_display() None

Šalje slijed inicijalizacijskih naredbi zaslonu, briše međuspremnik slike i osvježava ga. Automatski ga poziva __init__.

poweroff() None

Isključuje zaslon (način mirovanja).

contrast(contrast: int) None

Postavlja kontrast zaslona.

  • contrast – Vrijednost kontrasta u rasponu 0255.

invert(invert: int) None

Invertira boje zaslona.

  • invert0 za normalan izlaz, 1 za invertirani izlaz. Koristi se samo najmanje značajni bit.

show() None

Prosljeđuje unutarnji međuspremnik slike na zaslon.

fill(col: int) None

Ispunjava cijeli međuspremnik slike jednom bojom.

  • col – Vrijednost boje (0 za isključeno, 1 za uključeno).

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

Postavlja boju jednog piksela.

  • x – Koordinata stupca.

  • y – Koordinata retka.

  • col – Vrijednost boje (0 ili 1).

scroll(dx: int, dy: int) None

Pomiče sadržaj međuspremnika slike za zadane pomake. Pikseli pomaknuti izvan granica gube se; ispražnjeni pikseli ostaju netaknuti.

  • dx – Vodoravni pomak u pikselima.

  • dy – Okomiti pomak u pikselima.

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

Crta niz znakova koristeći ugrađeni font 8x8.

  • string – Tekst za crtanje.

  • x – Početna koordinata stupca.

  • y – Početna koordinata retka.

  • col – Boja prednjeg plana (zadano 1).

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

Upravljački program za SSD1306 povezan putem I2C-a. Nasljeđuje od SSD1306.

Argumenti:

  • width – Širina zaslona u pikselima.

  • height – Visina zaslona u pikselima.

  • i2c – Inicijalizirani machine.I2C (ili kompatibilan) objekt.

  • addr – 7-bitna I2C adresa uređaja (zadano 0x3C).

  • external_vccTrue za vanjski VCC, False za korištenje unutarnje naponske crpke.

write_cmd(cmd: int) None

Šalje jedan naredbeni bajt zaslonu putem I2C-a.

write_data(buf: bytes) None

Šalje međuspremnik podataka o pikselima zaslonu putem I2C-a.

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

Upravljački program za SSD1306 povezan putem SPI-a. Nasljeđuje od SSD1306. Koristi fiksnu SPI taktnu brzinu od 10 MHz.

Argumenti:

  • width – Širina zaslona u pikselima.

  • height – Visina zaslona u pikselima.

  • spipyb.SPI (ili kompatibilan) objekt.

  • dc – Pin za odabir podataka/naredbe.

  • res – Pin za resetiranje.

  • cs – Pin za odabir čipa.

  • external_vccTrue za vanjski VCC, False za korištenje unutarnje naponske crpke.

write_cmd(cmd: int) None

Šalje jedan naredbeni bajt zaslonu putem SPI-a.

write_framebuf() None

Prenosi cijeli međuspremnik slike na zaslon putem SPI-a.

poweron() None

Prebacuje liniju za resetiranje kako bi se zaslon uključio.

Konstante

ssd1306.SET_CONTRAST: int

Naredba 0x81 – postavljanje kontrasta zaslona.

ssd1306.SET_ENTIRE_ON: int

Naredba 0xA4 – nastavak prikaza iz sadržaja RAM-a.

ssd1306.SET_NORM_INV: int

Naredba 0xA6 – odabir normalnog/inverznog prikaza.

ssd1306.SET_DISP: int

Naredba 0xAE – uključivanje/isključivanje zaslona.

ssd1306.SET_MEM_ADDR: int

Naredba 0x20 – način adresiranja memorije.

ssd1306.SET_COL_ADDR: int

Naredba 0x21 – raspon adresa stupca.

ssd1306.SET_PAGE_ADDR: int

Naredba 0x22 – raspon adresa stranice.

ssd1306.SET_DISP_START_LINE: int

Naredba 0x40 – početna linija prikaza.

ssd1306.SET_SEG_REMAP: int

Naredba 0xA0 – preslikavanje segmenata.

ssd1306.SET_MUX_RATIO: int

Naredba 0xA8 – omjer multipleksiranja.

ssd1306.SET_COM_OUT_DIR: int

Naredba 0xC0 – smjer skeniranja COM izlaza.

ssd1306.SET_DISP_OFFSET: int

Naredba 0xD3 – pomak prikaza.

ssd1306.SET_COM_PIN_CFG: int

Naredba 0xDA – hardverska konfiguracija COM pinova.

ssd1306.SET_DISP_CLK_DIV: int

Naredba 0xD5 – omjer dijeljenja takta prikaza / frekvencija oscilatora.

ssd1306.SET_PRECHARGE: int

Naredba 0xD9 – razdoblje predpunjenja.

ssd1306.SET_VCOM_DESEL: int

Naredba 0xDB – razina poništavanja odabira VCOMH.

ssd1306.SET_CHARGE_PUMP: int

Naredba 0x8D – konfiguracija naponske crpke.