Attention à ne pas se fier aux numéros des broches (ici 11 et 12).
# import from machine import Pin, I2C from ssd1306 import SSD1306_I2C #initialisation i2c i2c = I2C(0, scl=Pin(9), sda=Pin(8), freq=200000) # la fréquence n'est pas obligatoire # initialisation oled oled = SSD1306_I2C(128, 64, i2c, 0x3C) # taille de l'écran 128x64 pix, addresse de l'afficheur 0x3C
Dans l'inconnu, on peut utiliser i2c.scan pour identifier l'adresse.
print(i2c.scan())
Dans notre exemple la commande print retourne la valeur [60, 119] ⇒ l'adresse est 60 en décimal, soit 3C en hexadécimal.
rafraîchît l'affichage
oled.show()
Inverse l'affichage : noir sur fond blanc (0) ou (True), blanc sur fond noir (1) ou (False)
oled.invert(True) oled.invert(0)
from machine import Pin, I2C from ssd1306 import SSD1306_I2C import framebuf
oled.fill(1) permet d'afficher un écran tout blanc oled.fill(0) permet d'afficher un écran tout noir
Affichage d'une chaîne de caractères avec la position x, y.
oled.fill(0) oled.text("Helllo !", 0, 0) oled. show()
oled.pixel(20,20,1) # pos x (de 0 à 127), pos y (de 0 à 63) , blanc (1) oled.show()
Sur fond blanc on donne une couleur noir (0)
oled.fill(1) oled.pixel(20,20,0) # pos x, pos y, noir (0) oled.show()
oled.line(0, 0, 127, 63, 1) # segment (A,B) : xA, yB, XB, yB en blanc (1) oled.show()
oled.hline(10, 35, 50, 1) # xA, yA, longueur vers la droite en blanc oled.vline(35, 10, 50, 1) # xA, yA, longueur vers le bas en blanc oled.show()
oled.rect(10, 10, 50, 50, 1) # pos x, pos y, largeur, hauteur, blanc (1) oled.show()
Sur fond blanc on donne une couleur noir (0)
oled.fill(1) oled.rect(10, 10, 50, 50, 0) # 0 = noir (0) oled.show()
from machine import Pin, I2C from ssd1306 import SSD1306_I2C import framebuf import time #initialisation i2c i2c = I2C(0, scl=Pin(9), sda=Pin(8)) # initialisation oled oled = SSD1306_I2C(128, 64, i2c, 0x3C) # Affichage d'un rectangle et scrolling oled.fill(0) oled.rect(10, 10, 50, 50, 1) oled.show() for x in range (64): oled.scroll(x, 0) # scrolling vers la droite time.sleep(0.01) # fréquence du scrolling oled.show()
ICON = [ [ 0, 0, 0, 0, 0, 0, 0, 0, 0], [ 0, 1, 1, 0, 0, 0, 1, 1, 0], [ 1, 1, 1, 1, 0, 1, 1, 1, 1], [ 1, 1, 1, 1, 1, 1, 1, 1, 1], [ 1, 1, 1, 1, 1, 1, 1, 1, 1], [ 0, 1, 1, 1, 1, 1, 1, 1, 0], [ 0, 0, 1, 1, 1, 1, 1, 0, 0], [ 0, 0, 0, 1, 1, 1, 0, 0, 0], [ 0, 0, 0, 0, 1, 0, 0, 0, 0], ] for y, row in enumerate(ICON): for x, c in enumerate(row): oled.pixel(x+5, y+5, c) oled.show()
# Affiche un logo sous forme d un tableau d'octets de 32x32 buffer = None buffer = bytearray( b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\xfc' b'\x00\x00\x1f\xfe\x00\x00\x01\xfe\x3f\xff\xfd\xfe\x60\x00\x05\x0e\x4f\xfe\x05\x0e\x5f\xf8\x05\xfe\x5f\x80\x05\xfe\x5e\x00\x05\x06' b'\x5c\x00\x05\xfe\x58\x00\x05\xfe\x50\x00\x05\xfe\x40\x00\x05\xfe\x40\x00\x05\xfe\x7f\xff\xfd\xfe\x7f\xff\xfd\xfe\x00\x18\x01\x3e' b'\x00\x18\x1f\x9e\x00\x18\x1f\x3e\x00\xfe\x1f\xfe\x03\xff\x9f\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' ) # Charge le logo de 32 x 32 pixels dans le framebuffer avec Format de couleur monochrome fb = framebuf.FrameBuffer(buffer, 32, 32, framebuf.MONO_HLSB) # Envoie l'image du framebuffer vers l ecran à la position x = 50 et y = 24 oled.blit(fb, 48, 16) # affichage au centre de l'écran oled.show()