ssd1306 — OLED Sürücüsü

Bu modül, SSD1306 tabanlı OLED ekranlar için bir sürücü sağlar. İki aktarım türü desteklenir: I2C (SSD1306_I2C) ve SPI (SSD1306_SPI). Her ikisi de bir framebuf.FrameBuffer1 nesnesini saran SSD1306 sınıfından çizim API’sini devralır.

Örnek:

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

Sınıflar

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

SSD1306 OLED ekranları için temel sınıf. Alt sınıflar self.framebuf öğesini başlatmalı ve write_cmd, write_data, write_framebuf ve poweron metotlarını sağlamalıdır.

Argümanlar:

  • width – Ekran genişliği (piksel cinsinden).

  • height – Ekran yüksekliği (piksel cinsinden, 8’in katı olmalıdır).

  • external_vcc – Harici bir VCC kaynağı kullanılıyorsa True, dahili şarj pompasını etkinleştirmek için False.

Örnek nitelikleri:

  • width – Ekran genişliği (piksel cinsinden).

  • height – Ekran yüksekliği (piksel cinsinden).

  • external_vcc – Harici VCC bayrağı.

  • pages – 8 piksel yüksekliğindeki sayfaların sayısı (height // 8).

init_display() None

Başlatma komut dizisini ekrana gönderir, çerçeve arabelleğini temizler ve yeniler. __init__ tarafından otomatik olarak çağrılır.

poweroff() None

Ekranı kapatır (uyku modu).

contrast(contrast: int) None

Ekran kontrastını ayarlar.

  • contrast0255 aralığında kontrast değeri.

invert(invert: int) None

Ekran renklerini tersine çevirir.

  • invert – Normal çıktı için 0, tersine çevrilmiş çıktı için 1. Yalnızca en az anlamlı bit kullanılır.

show() None

Dahili çerçeve arabelleğini ekrana boşaltır.

fill(col: int) None

Tüm çerçeve arabelleğini tek bir renkle doldurur.

  • col – Renk değeri (kapalı için 0, açık için 1).

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

Tek bir pikselin rengini ayarlar.

  • x – Sütun koordinatı.

  • y – Satır koordinatı.

  • col – Renk değeri (0 veya 1).

scroll(dx: int, dy: int) None

Çerçeve arabelleğinin içeriğini verilen ofset kadar kaydırır. Sınırların dışına kaydırılan pikseller kaybolur; boşalan piksellere dokunulmaz.

  • dx – Yatay kaydırma (piksel cinsinden).

  • dy – Dikey kaydırma (piksel cinsinden).

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

Yerleşik 8x8 yazı tipini kullanarak bir dize çizer.

  • string – Çizilecek metin.

  • x – Başlangıç sütun koordinatı.

  • y – Başlangıç satır koordinatı.

  • col – Ön plan rengi (varsayılan 1).

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

I2C ile bağlanan SSD1306 sürücüsü. SSD1306 sınıfından devralır.

Argümanlar:

  • width – Ekran genişliği (piksel cinsinden).

  • height – Ekran yüksekliği (piksel cinsinden).

  • i2c – Başlatılmış bir machine.I2C (veya uyumlu) nesnesi.

  • addr – 7 bitlik I2C aygıt adresi (varsayılan 0x3C).

  • external_vcc – Harici VCC için True, dahili şarj pompasını kullanmak için False.

write_cmd(cmd: int) None

Tek bir komut baytını I2C üzerinden ekrana gönderir.

write_data(buf: bytes) None

Bir piksel verisi arabelleğini I2C üzerinden ekrana gönderir.

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 ile bağlanan SSD1306 sürücüsü. SSD1306 sınıfından devralır. 10 MHz’lik sabit bir SPI saat hızı kullanır.

Argümanlar:

  • width – Ekran genişliği (piksel cinsinden).

  • height – Ekran yüksekliği (piksel cinsinden).

  • spi – Bir pyb.SPI (veya uyumlu) nesnesi.

  • dc – Veri/komut seçim pini.

  • res – Sıfırlama pini.

  • cs – Yonga seçim pini.

  • external_vcc – Harici VCC için True, dahili şarj pompasını kullanmak için False.

write_cmd(cmd: int) None

Tek bir komut baytını SPI üzerinden ekrana gönderir.

write_framebuf() None

Tüm çerçeve arabelleğini SPI üzerinden ekrana iletir.

poweron() None

Ekranı açmak için sıfırlama hattını değiştirir.

Sabitler

ssd1306.SET_CONTRAST: int

0x81 komutu – ekran kontrastını ayarlar.

ssd1306.SET_ENTIRE_ON: int

0xA4 komutu – ekranı RAM içeriğinden devam ettirir.

ssd1306.SET_NORM_INV: int

0xA6 komutu – normal/ters ekran seçimi.

ssd1306.SET_DISP: int

0xAE komutu – ekran açma/kapama.

ssd1306.SET_MEM_ADDR: int

0x20 komutu – bellek adresleme modu.

ssd1306.SET_COL_ADDR: int

0x21 komutu – sütun adres aralığı.

ssd1306.SET_PAGE_ADDR: int

0x22 komutu – sayfa adres aralığı.

ssd1306.SET_DISP_START_LINE: int

0x40 komutu – ekran başlangıç satırı.

ssd1306.SET_SEG_REMAP: int

0xA0 komutu – segment yeniden eşlemesi.

ssd1306.SET_MUX_RATIO: int

0xA8 komutu – çoğullama oranı.

ssd1306.SET_COM_OUT_DIR: int

0xC0 komutu – COM çıkış tarama yönü.

ssd1306.SET_DISP_OFFSET: int

0xD3 komutu – ekran ofseti.

ssd1306.SET_COM_PIN_CFG: int

0xDA komutu – COM pinleri donanım yapılandırması.

ssd1306.SET_DISP_CLK_DIV: int

0xD5 komutu – ekran saati bölme oranı / osilatör frekansı.

ssd1306.SET_PRECHARGE: int

0xD9 komutu – ön şarj süresi.

ssd1306.SET_VCOM_DESEL: int

0xDB komutu – VCOMH seçim kaldırma seviyesi.

ssd1306.SET_CHARGE_PUMP: int

0x8D komutu – şarj pompası yapılandırması.