Joy-PI Leçon #10 : Utiliser l’écran LCD

La mallette dispose d’un affichage LCD, composé de 2 lignes de 16 caractères, permettant de donner des indications à l’utilisateur, vous pourriez par exemple afficher en continu la température et l’humidité (voir la leçon 07).

L’écran LCD n’utilise pas de GPIO, mais l’interface de communication I2C.

Commutateurs :

La position des commutateurs n’a pas d’importance.

Réglages de la luminosité

Un potentiomètre (rond bleu), permet de régler la luminosité. A tourner avant de s’énerver en supposant que le LCD ne fonctionne pas.

Librairie python

Toute la gestion d’un LCD est confiée à la librairie adafruit_character_lcd, vous trouverez sur de dépôt git les instructions nécessaires à l’installation, si nécessaire, de cette librairie.
Une documentation pour cette librairie est disponible via ce lien.

Le pseudo-code :

  • Importation des librairies
  • Définition des constantes
  • Initialisation du module LCD
  • Dans une boucle infinie (fin avec CTRL-C)<
    • Dire bonjour
    • Attendre 2 secondes
    • Afficher un curseur
    • Attendre 2 secondes
    • Afficher un curseur clignotant
    • Attendre 3 secondes
    • Faire défiler un texte vers la droite
    • Faire défiler un texte vers la gauche
    • Montrer le rétroéclaiage
  • Reset du LCD

En python :

import time
import board
import busio
import adafruit_character_lcd.character_lcd_i2c as character_lcd

#define amount of lines and columns from LCD
lcd_columns = 16
lcd_rows = 2

#initialization of I2C Bus
i2c = busio.I2C(board.SCL, board.SDA)
#set the LCD in the variable LCD
lcd = character_lcd.Character_LCD_I2C(i2c, lcd_columns, lcd_rows)

try:
    while True :
        #turn on the background
        lcd.backlight = True
        #issues 2 words with line break
        lcd.message = "Hello\nWorld!"
        #wait 2 seconds
        time.sleep(2.0)
        #show cursor
        lcd.clear()
        lcd.cursor = True
        lcd.message = "Show Cursor!"
        #wait 2 seconds
        time.sleep(2.0)
        #let cursor blink
        lcd.clear()
        lcd.blink = True
        lcd.message = "Blinky Cursor!"
        #wait 2 seconds, stop nlinking cursor and hide cursor
        time.sleep(2)
        lcd.blink = False
        lcd.clear()
        # scroll message from right to left
        lcd.clear()
        scroll_msg = "<-- Scroll -->"
        lcd.message = scroll_msg
        for i in range(len(scroll_msg)):
            time.sleep(0.1)
            lcd.move_right()
        for i in range(len(scroll_msg)):
            time.sleep(0.1)
            lcd.move_left()
        #turn no and off background lightning
        lcd.clear()
        lcd.message = "Flash backlight\nin 3 seconds..."
        time.sleep(3.0)
        #turn off background lightning
        lcd.backlight = False
        time.sleep(1.0)
        lcd.backlight = True
        time.sleep(1.0)
        lcd.backlight = False
        #change message
        lcd.clear()
        lcd.message = "Restart..."
        #turn on background lightning
        lcd.backlight = True
        #turn off background lightning
        time.sleep(2.0)
except KeyboardInterrupt:
    #turn off LCD
    lcd.clear()
    lcd.backlight = False

Laisser un commentaire