40 lines
940 B
Python
40 lines
940 B
Python
from machine import Pin, SoftI2C
|
|
from ssd1306 import SSD1306_I2C
|
|
import time
|
|
|
|
class Screen:
|
|
|
|
def __init__(self):
|
|
# OLED pins on Heltec V3
|
|
self.sda = Pin(17)
|
|
self.scl = Pin(18)
|
|
self.rst = Pin(21, Pin.OUT)
|
|
|
|
self.__reset_oled()
|
|
|
|
self.i2c = SoftI2C(scl=self.scl, sda=self.sda, freq=100000)
|
|
self.oled = SSD1306_I2C(128, 64, self.i2c, addr=0x3C)
|
|
|
|
self.clear()
|
|
|
|
def __reset_oled(self):
|
|
self.rst.value(0)
|
|
time.sleep_ms(150)
|
|
self.rst.value(1)
|
|
time.sleep_ms(150)
|
|
|
|
def clear(self):
|
|
self.oled.fill(0)
|
|
self.oled.show()
|
|
|
|
def display(self, message, col=0, row=0):
|
|
self.clear()
|
|
self.oled.text(message, col, row)
|
|
self.oled.show()
|
|
|
|
def display_lines(self, lines, col):
|
|
self.clear()
|
|
for i, line in enumerate(lines):
|
|
self.oled.text(line, col, i * 20)
|
|
self.oled.show()
|