from machine import Pin, I2C
from ssd1306 import SSD1306_I2C
import framebuf
from time import sleep
i2c = I2C(scl=Pin(22), sda=Pin(21))
oled_width = 128
oled_height = 64
oled = SSD1306_I2C(oled_width, oled_height, i2c)
buf = bytearray(oled_width * oled_height // 8)
fb = framebuf.FrameBuffer(buf, oled_width, oled_height, framebuf.MONO_VLSB)
def horizontal_line():
fb.fill(0)
fb.text("Horizontal", 0, 0)
fb.line(0, 20, 127, 20, 1)
oled.blit(fb, 0, 0)
oled.show()
def vertical_line():
fb.fill(0)
fb.text("Vertical", 0, 0)
fb.line(0, 20, 0, 63, 1)
oled.blit(fb, 0, 0)
oled.show()
def diagonal_line():
fb.fill(0)
fb.text("Diagonal", 0, 0)
fb.line(0, 20, 127, 63, 1)
oled.blit(fb, 0, 0)
oled.show()
def quadrilateral(length, height):
fb.fill(0)
if length == height:
fb.text('Quadrado', 0, 0)
else:
fb.text('Retangulo', 0, 0)
fb.line(0, 20, length, 20, 1)
fb.line(0, 20, 0, 20+height, 1)
fb.line(0, 20+height, length, 20+height, 1)
fb.line(length, 20, length, 20+height, 1)
oled.blit(fb, 0, 0)
oled.show()
def text_scroll():
fb.fill(0)
fb.text('Scroll', 0, 0)
for i in range(10):
sleep(0.5)
fb.scroll(1, 1)
oled.blit(fb, 0, 0)
oled.show()
while True:
horizontal_line()
sleep(3)
vertical_line()
sleep(3)
diagonal_line()
sleep(3)
quadrilateral(15, 15)
sleep(3)
quadrilateral(24, 15)
sleep(3)
text_scroll()
sleep(3)