SSD1306 affichage OLED i2c (0x3c: 60d)

petit écran Oled, largeur 128c x longueur 64c,  i2c, noir et blanc permettant d’afficher des textes, des images..

bibliothèque ssd1306.py

adresse i2c: 0x3c ,60d

rappel de broches ESP8266

 

 

code micropython

# intialisation du bus i2c
# scl=Pin5=GPIO5=d1 sda=Pin4=GPIO4=d2

from machine import I2C, Pin
i2c= I2C(scl=Pin(5), sda=Pin(4))

import ssd1306

# adresse Oled 0x3c ?
print(i2c.scan())

#initialisation de l'écran 128x32 à 0x3c
oled=ssd1306.SSD1306_I2C(128,32, i2c, 0x3c)

# timer
import time

oled.fill(0)
oled.text("Bonjour", 0, 0)
oled.text("il fait beau", 0, 20)
oled.show()

time.sleep_ms(3000)

import machine, sys oled.text('version ' + sys.version, 0,10) oled.text('CPU: ' + str(machine.freq()/1000000) + 'MHz', 0,20)
oled.show() 
time.sleep_ms(3000)
# inversion fond blanc=1 / fond noir=0 
oled.invert(1) 

time.sleep_ms(3000)
# écran blanc=1 / noir=0 
oled.fill(1) 
oled.show() 

# 1-255 oled.constrast(150)

 

exemple d’utilisation

import machine
rtc= machine.RTC()
oled.text(str(rtc.datetime(), 0, 20)

 

Exemple montre sur Oled (nécessite module DS3231 i2c)

# montre à quartz sur oled
# ppr 181213
# utilisation sous REPL:
# import OledMontre
# OledMontre.heure_mm(100) 
# 1:22/23 --> 99 à 0

from machine import I2C, Pin, RTC
from ds3231_port import DS3231 # horloge date/heure
import ssd1306 # oled

# intialisation du bus i2c
# scl=Pin5=GPIO5=d1 sda=Pin4=GPIO4=d2

i2c= I2C(scl=Pin(5), sda=Pin(4))

#initialisation de l'écran 128x64 à 0x3c
oled=ssd1306.SSD1306_I2C(128,64, i2c, 0x3c)

# adresse Oled 0x3c= 60 ?
print(i2c.scan())

# date/heure
ds3231=DS3231(i2c)

def heure_mm(i):
 while i > 0:
 i = i - 1
 # on récupère la date et heure
 (an, mois, jour, hh, mm, ss, jsem, zorbec) = ds3231.get_time()
 # affiche sur oled
 oled.fill(0)
 oled.text( str(hh) + ':' + str(mm) + ':' + str(ss) + ' -->' + str(i), 0, 40)
 oled.show()
 


def heure_1x():
 # on récupère la date et heure
 (an, mois, jour, hh, mm, ss, jsem, zorbec) = ds3231.get_time()
 # affiche sur oled
 oled.fill(0)
 oled.text( str(hh) + ':' + str(mm) + ':' + str(ss), 0, 40)
 oled.show()
utilisation sous REPL:
>>> import OledMontre
>>> OledMontre.heure_mm(100) 

 affichage sur Oled 1:22/23 --> 99 à 0