Afficheur LCD 1x9 Alphanumérique (Module UEXT) pour Arduino et MicroPython

Nous avons publié un nouveau projet sur GitHub.
Nous nous sommes concentré sur le portage du module MOD-LCD1x9 vers MicroPython.

MOD-LCD1x9 
MOD-LCD1x9 est un écran LCD alphanumérique. L'avantage des écrans LCD est qu'ils sont vraiment économique en énergie.

Ensuite, celui-ci utilise le bus I2C et une tension de 3.3V, il ne réclame donc très peu de connexions pour fonctionner.
MOD-LCD1x9 (disponible chez MC Hobby)
Ce qui est cool dans cet écran, c'est qu'il dispose du "point" intégré dans la matrice, donc pas besoin de sacrifier un caractère pour le point :-) !

Si vous prêtez attention, il y a une barre (type "underscore") sous chaque caractère. Il s'agit d'un marqueur de sélection, très pratique pour indiquer l'activation d'un option ou d'une sélection.

Bien qu'il soit possible de faire directement un raccordement I2C, l'écran LCD propose un connecteur UEXT, ce qui rend le raccordement enfantin.
MOD-LCD1x9
Bibliothèque Arduino et MicroPython
Olimex propose une bibliothèque et code d'exemple compatible avec Arduino. Voir la fiche produit pour plus d'informatique.

Et de notre côté, nous avons fait un portage de la bibliothèque sous MicroPython. Disponible sur GitHub.
Nous avons apporté quelques améliorations à la bibliothèque MicroPython:
  • Activation du point et/ou de l'underscore (barre de sélection)
  • Défilement automatique pour les textes dépassant 9 caractères
  • Encodage de quelques caractère supplémentaires
  • Formatage de texte (pour affichage de valeur entière ou décimales)
Brancher sur un ESP8266-EVB
Ce m'intéressais, c'était de pouvoir utiliser le module avec MicroPython... et la carte ESP8266-EVB exposant un port UEXT.
MOD-LCD1x9 branché sur le ESP8266-EVB
Voyez notre article pour savoir comment flasher MicroPython sur ESP8266.

Du code
Après avoir  copié la bibliothèque modlcd19.py sur la carte MicroPython, il est possible d'utiliser le code suivant pour contrôler l'écran.

'''
Test the Olimex MOD-LCD1x9 board. 
'''

from machine import I2C, Pin
from time import sleep
from modlcd19 import MODLCD1x9

i2c = I2C( sda=Pin(2), scl=Pin(4) )
lcd = MODLCD1x9( i2c ) # Allume tous les segments

# Un affichage de 9 caractères Max
lcd.write( '123456789' )
sleep( 2 )
lcd.write( '' )
sleep( 2 )

# Affiche une longue chaine de caractere
# Défilement automatique
lcd.write( 'Hey, this is a message from Belgium' )

# Activation du point dans la matrice
lcd.write( 'ABCDEFGHI')
for i in range( 9 ):
 lcd.point( i+1, True, force_update=True )
 sleep( 1 )
 lcd.point( i+1, False, force_update=True )

sleep( 1 )

# Activation de la barre de sélection dans la matrice
for i in range( 9 ):
 lcd.selection( i+1, True, force_update=True )
 sleep( 1 )
 lcd.selection( i+1, False, force_update=True )


lcd.write( 'The end.')

print( "That's the end folks")

Où acheter

Aucun commentaire