Raspberry Pi Pico si displayul OLED 128*32

Avand la dispozitie un display OLED 128*32 pixeli cu driverul SSD1306 vom incerca folosirea acestuia impreuna cu Raspberry Pi Pico.

Displayul folosit de mine fiind pe interfata I2C va simplifica foarte mult conectarea deoarece conexiunea dintre acesta si raspberry Pi Pico se va face pe unul din porturile I2C disponibile. In cazul de fata vom folosi portul I2C0 iar pinii folositi vor fi GPIO8 (pin 11 pe placa) pentru SDA si GPIO9 (pin 12 pe placa) pentru SCL. Displayul se alimenteaza cu o tensiune de 3V3.

Displayul folosit este cel din fotografia de mai jos:

Pentru a folosi acest display vom avea nevoie de o librarie dedicata. Aceasta librarie am gasit-o pe acest site. Libraria va trebui salvata in Raspberry Pi Pico sub denumirea de ssd1306.py. Aceasta librarie o veti gasi atasata si acestui articol.

Codul sursa folosit pentru testarea acestui display este cel de mai jos:

from machine import Pin, I2C
from ssd1306 import SSD1306_I2C
import framebuf
import utime

WIDTH = 128  
HEIGHT = 32
i2c = I2C(0, scl=Pin(9), sda=Pin(8), freq=200000)
oled = SSD1306_I2C(WIDTH, HEIGHT, i2c)

#Logo-ul Raspberry Pi intr-un fomrat de 32*32 pixeli
buffer = bytearray(b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|?\x00\x01\x86@\x80\x01\x01\x80\x80\x01\x11\x88\x80\x01\x05\xa0\x80\x00\x83\xc1\x00\x00C\xe3\x00\x00~\xfc\x00\x00L'\x00\x00\x9c\x11\x00\x00\xbf\xfd\x00\x00\xe1\x87\x00\x01\xc1\x83\x80\x02A\x82@\x02A\x82@\x02\xc1\xc2@\x02\xf6>\xc0\x01\xfc=\x80\x01\x18\x18\x80\x01\x88\x10\x80\x00\x8c!\x00\x00\x87\xf1\x00\x00\x7f\xf6\x00\x008\x1c\x00\x00\x0c \x00\x00\x03\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00")
#Incarcare logo in framebuffer
fb = framebuf.FrameBuffer(buffer, 32, 32, framebuf.MONO_HLSB)


while True:
    #stergem displayul
    oled.fill(0)
    #transferare imagine din framebuffer in display
    oled.blit(fb, 0, 0)
    #afisam logoul
    oled.show()
    #oprim rularea pentru 1 secunda pentru a vedea logoul
    utime.sleep(1)
    #oprim displayul
    oled.poweroff()
    #ramanem cu displayul stins 1 secunda
    utime.sleep(1)
    #pornim displayul
    oled.poweron()
    #stergem informatiile afisate pe display
    oled.fill(0)
    #afisam ceva text
    oled.text("www.", 0, 0)
    oled.text("electronicstore", 5, 10)
    oled.text(".ro", 105, 20)
    oled.show()
    utime.sleep(1)
    oled.poweroff()
    utime.sleep(1)
    oled.poweron()
    #inversam afisarea pe dsplay
    oled.invert(True)
    oled.fill(0)
    oled.blit(fb, 0, 0)
    oled.show()
    utime.sleep(1)
    oled.poweroff()
    utime.sleep(1)
    oled.poweron()
    oled.fill(0)
    oled.text("www.", 0, 0)
    oled.text("electronicstore", 5, 10)
    oled.text(".ro", 105, 20)
    oled.show()
    utime.sleep(1)
    oled.poweroff()
    utime.sleep(1)
    oled.poweron()
    #revenim la afisare normala
    oled.invert(False)

 

 

Nu sunt comentarii in “Raspberry Pi Pico si displayul OLED 128*32”

Lasa un comentariu

Raspuns lui Some User

Autentificare