from machine import Pin, SoftI2C
from ssd1306 import SSD1306_I2C
from utime import sleep, sleep_ms
# using default address 0x3C
i2c = SoftI2C(sda=Pin(21), scl=Pin(22))
display = SSD1306_I2C(128, 64, i2c)
display.invert(1)
# Basic functions:
# display.poweroff() # power off the display, pixels persist in memory
display.poweron() # power on the display, pixels redrawn
display.text('Hello', 38, 10)
display.text('Prokaka', 30, 30)
display.text(':)', 51, 50)
# display.hline(8,40,112,5)
display.show()
# display.contrast(0) # dim
# display.contrast(255) # bright
display.invert(1) # display inverted
# display.invert(0) # display normal
# display.rotate(True) # rotate 180 degrees
# display.rotate(False) # rotate 0 degrees
# display.show() # write the contents of the FrameBuffer to display memory
# display.fill(12) # fill entire screen with colour=0
# display.pixel(0, 10) # get pixel at x=0, y=10
# display.pixel(0, 10, 1) # set pixel at x=0, y=10 to colour=1
# display.hline(0, 8, 4, 1) # draw horizontal line x=0, y=8, width=4, colour=1
# display.vline(0, 8, 4, 1) # draw vertical line x=0, y=8, height=4, colour=1
# display.line(0, 0, 127, 63, 1) # draw a line from 0,0 to 127,63
# display.rect(10, 10, 107, 43, 1) # draw a rectangle outline 10,10 to 117,53, colour=1
# display.fill_rect(10, 10, 107, 43, 1) # draw a solid rectangle 10,10 to 117,53, colour=1
# display.text('Hello World', 0, 0, 1) # draw some text at x=0, y=0, colour=1
# display.scroll(20, 0) # scroll 20 pixels to the right
# display.fill(0)
# display.fill_rect(0, 0, 32, 32, 1)
# display.fill_rect(2, 2, 28, 28, 0)
# display.vline(9, 8, 22, 1)
# display.vline(16, 2, 22, 1)
# display.vline(23, 8, 22, 1)
# display.fill_rect(26, 24, 2, 4, 1)
# display.text('MicroPython', 40, 0, 1)
# display.text('SSD1306', 40, 12, 1)
# display.text('OLED 128x64', 40, 24, 1)
# display.show()