MicroPython: bibliothèque pour les afficheurs SerLCD de SparkFun

Bonjour à tous,

Les amateurs de MicroPython seront heureux d'apprendre qu'une nouvelle bibliothèque qwiic-serlcd-i2c vient d'être ajoutée à notre dépôt esp8266-upy

Qu'est ce que SerLCD?

SerLCD de SparkFun est un afficheur LCD série propulsé par un microcontrôleur ATmega328P.
SerLCD permet d'ajouter un afficheur Cristaux Liquide 16x2 RGB dans votre projet. Le microcontrôleur gère l'écran et les communications séries!

SerLCD de SparkFun

Les afficheurs SerLCD peuvent communiquer de trois façon différentes: série, I2C et SPI. L'afficheur est équipé de d'un connecteur Qwiic (aussi appelé StemmaQT), ce qui l'intègre dans l'écosystème Qwiic qui simplifie les raccordements grâce à sa connexion universelle.

Outre son connecteur Qwiic/StemmaQt, l'intérêt de SerLCD réside dans son support du bus I2C (il n'a donc besoin que des signaux SDA et SCL) et que l'adresse I2C est modifiable de façon logicielle.

La bibliothèque

Cette dernière -nommée serlcd.py- est disponible sur le dépôt dans le sous-répertoire  qwiic-serlcd-i2c

Elle doit être copiée sur votre plateforme MicroPython avant de pouvoir l'utiliser.

Si vous utilisez mpremote, l'installation peut se faire très simplement à l'aide de la commande suivante:

mpremote mip install github:mchobby/esp8266-upy/qwiic-serlcd-i2c

Brancher un SerLCD

Pour pouvoir utiliser cet afficheur, il suffit d'utiliser son connecteur Qwiic/StemmaQt avec un câble adaptateur JST-SH 4 . Le raccordement est super simple.

En guise d'exemple, voici le raccordement sur un Raspberry Pico... simple non?

Source: dépôt qwiic-serlcd-i2c

Utiliser la bibliothèque

L'utilisation de la bibliothèque est très similaire à la version "LcdI2C" (voir ici) que nous proposons déjà pour un autre afficheur.

from machine import I2C,Pin
from serlcd import SerLCD
import time

# Raspberry-Pi Pico
i2c = I2C( 1, sda=Pin.board.GP6, scl=Pin.board.GP7 )

# Adresse par défaut (0x72)
# Ajouter parametre address=0x38 pour une adresse personnalisée
lcd = SerLCD( i2c, cols=16, rows=2 )

lcd.backlight( (0,255,0) ) # Vert
time.sleep_ms(500)
lcd.backlight( (0,0,255) ) # Bleu
time.sleep_ms(500)
lcd.backlight( (255,0,0) ) # Rouge

lcd.print( "Hello" )
time.sleep(2)
lcd.clear()
lcd.print( "World!" )
time.sleep(1)
lcd.display( False ) # éteindre le LCD et retro-éclairage
time.sleep(1)
lcd.display( True )  # allumer le LCD et restaurer le rétro-éclairage

lcd.set_cursor( (9,1) ) #colonne,ligne (0..N-1)
lcd.print("*")

lcd.contrast( 0 ) # Contraste au maximum. Valeur (0..255)
#lcd.contrast( 100 ) # devrait être totalement transparent

# Désactiver les messages systèmes comme 'Contrast: 5'
lcd.system_messages( enable=False )

# Sauver le contenu actuel de l'écran comme écran d'accueil
# lcd.save_splash()

# Désactiver l'écran d'accueil (à la mise sous-tension)
lcd.splash( enable=False )

# Changer l'adresse I2C du SerLCD (stocké en EEPROM)
# lcd.set_address( 0x73 )

Ressources

Aucun commentaire