0% ont trouvé ce document utile (0 vote)
62 vues8 pages

Utiliser Un Écran LCD 16x02 Sur Raspberry Pi - Raspberry Lab

Ce tutoriel explique comment utiliser un écran LCD 16x02 avec un Raspberry Pi, en détaillant les étapes de connexion et d'installation de la librairie RPLCD. Il présente également des exemples de code pour afficher du texte, gérer le contraste, effacer l'écran et afficher des informations comme la date, l'heure et l'adresse IP. Enfin, il aborde la possibilité de créer des caractères personnalisés pour enrichir l'affichage.

Transféré par

hassen baccar
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
62 vues8 pages

Utiliser Un Écran LCD 16x02 Sur Raspberry Pi - Raspberry Lab

Ce tutoriel explique comment utiliser un écran LCD 16x02 avec un Raspberry Pi, en détaillant les étapes de connexion et d'installation de la librairie RPLCD. Il présente également des exemples de code pour afficher du texte, gérer le contraste, effacer l'écran et afficher des informations comme la date, l'heure et l'adresse IP. Enfin, il aborde la possibilité de créer des caractères personnalisés pour enrichir l'affichage.

Transféré par

hassen baccar
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

20/12/2024 10:51 Utiliser un écran LCD 16x02 sur Raspberry Pi - Raspberry Lab

Tutoriel Raspberry Pi
Utiliser un écran LCD
16x02
 03 octobre 2019 • 15  • 4.6 

Dans de nombreux projets, afficher des informations sur un écran peut être quelque chose d'indispensable. Heureusement, il
est possible, avec le Raspberry Pi, d'afficher tout un tas d'informations sur un "petit" écran. Le plus connu est l'écran LCD dit
16x02. Ce qu'il faut retenir de son nom est qu'on va pouvoir afficher 16 caractères sur chacune des deux lignes.
Nous allons donc voir dans ce tutoriel comment brancher l'écran au Raspberry Pi, puis, en utilisant des librairies, nous pourrons
afficher une multitude d'informations envoyées par le Raspberry.

Prérequis
Pour utiliser l'écran 16x02 avec un Raspberry, il faut :

Un Raspberry Pi

Un écran 16x02

Des câbles

Un potentiomètre 10KΩ

Une fois tous les éléments réunis, on peut passer au branchement.

Connexion au Raspberry
Avant de pouvoir afficher quelque chose sur l'écran, il faut le brancher comme suit aux ports du Raspberry. Un potentiomètre est
ajouté pour ajuster le contraste.

$65.00 $0.22 $1.80 $7.64 $18.51 $1.20

https://raspberry-lab.fr/Composants/Ecran-LCD-1602-sur-Raspberry-Francais/ 1/8
20/12/2024 10:51 Utiliser un écran LCD 16x02 sur Raspberry Pi - Raspberry Lab

Installation de la librairie RPLCD


La librairie écrite en Python que nous allons utiliser pour contrôler notre afficheur LCD s'installe directement avec le Python Package
Index. Commençons donc par être sûr que le système de récupération des librairies Python est bien installé en entrant cette
commande dans le terminal. (Il est généralement déjà installé de base sur Raspbian)

sudo apt-get install python-pip

Maintenant que tout est OK, installons la libraire. Bonne nouvelle, une simple commande s'occupe de tout.

sudo pip install RPLCD

La librairie est donc enfin prête à être utilisé, et notre écran aussi ! Nous utiliserons dans ce tutoriel une partie des fonctions de la
librairie RPLCD (écrite par Danilo Bargen). La documentation complète de sa librairie est disponible ici. (en anglais)

Fonctions principales de la librairie RPLCD


Écrire un texte statique sur l'écran
Pour afficher un texte statique comme votre nom et votre date de naissance par exemple, il va falloir rédiger un très court script
Python. Il va donc falloir dans un premier temps importer la librairie, puis appeler une fonction paramétrée. Voici le code pour
afficher Raspberry Lab (sur deux lignes et centré) :

1 from RPLCD.gpio import CharLCD


2
3 lcd = CharLCD(cols=16, rows=2, pin_rs=37, pin_e=35, pins_data=[33, 31, 29, 23])
4
5 lcd.write_string(u'Espace Raspberry Francais')

LCD-texteStatique.py hosted with ❤ by GitHub view raw

Les paramètres donnés à la fonction CharLCD() renseignent la librairie sur le type d'écran utilisé (16x02), et les numéros de pins sur
lesquels l'écran est relié.

Information

Message d'erreur ?

https://raspberry-lab.fr/Composants/Ecran-LCD-1602-sur-Raspberry-Francais/ 2/8
20/12/2024 10:51 Utiliser un écran LCD 16x02 sur Raspberry Pi - Raspberry Lab

Lors de l'exécution de ce script, il est possible d'obtenir le message d'erreur "ValueError: Invalid GPIO numbering mode:
numbering_mode=None, must be either GPIO.BOARD or GPIO.BCM.
Pas de panique ! Il suffit de suivre ces étapes :

Entrez dans le terminal :

sudo nano /usr/local/lib/python2.7/dist-packages/RPLCD/gpio.py


Cherchez la variable numbering_mode dans le fichier (ligne 46, deuxième argument de la fonction def
__init__),
Remplacez le none affecté à cette variable en GPIO.BOARD (en utilisant les flèches pour se déplacer dans
le fichier),
Sauvegardez et quittez : Ctrl+X, Y, Enter (ou Ctrl+X, O, Enter si le Raspberry est en français).

Positionner le texte
Plutôt que de simplement afficher du texte sur l'écran en partant de la première case (ligne 0, colonne 0), on peut demander de
commencer ou on veut. On utilise pour ceci l'instruction lcd.cursor_pos = (ligne, colonne). Attention, en informatique, on commence
toujours à compter par 0 et non par 1. Si on veut écrire sur la première ligne, ligne=0 alors que si on veut écrire sur la deuxième
ligne : ligne=1 et c'est la même chose pour les colonnes.
Prenons donc l'exemple où on veut écrire Raspberry sur la deuxième ligne en laissant deux cases vides avant le mot. On aura donc :

1 from RPLCD.gpio import CharLCD


2
3 lcd = CharLCD(cols=16, rows=2, pin_rs=37, pin_e=35, pins_data=[33, 31, 29, 23])
4
5 lcd.cursor_pos = (1, 2)
6 lcd.write_string(u'Raspberry')

LCD-positionTexte.py hosted with ❤ by GitHub view raw

Les paramètres donnés à la fonction CharLCD() renseignent la librairie sur le type d'écran utilisé (16x02), et les numéros de pins sur
lesquels l'écran est relié.

Remettre l'écran à zéro (effacer les caractères)


Si on souhaite changer un mot à l'écran ou simplement ne plus rien afficher, on va utiliser la fonction lcd.clear(). Celle-ci ne prend
pas d'arguments et efface tous les caractères qui sont affichés à l'écran. (L'écran reste tout de même allumé). On va pouvoir par la
suite utiliser cette fonction pour faire clignoter du texte à l'écran. Faisons tout d'abord l'essai d'afficher un texte pendant 5 secondes.
Il faut par conséquent importer le module time.

1 from RPLCD.gpio import CharLCD


2 import time
3
4 lcd = CharLCD(cols=16, rows=2, pin_rs=37, pin_e=35, pins_data=[33, 31, 29, 23])
5
6 lcd.write_string(u'Espace RaspberryFrancais')
7 time.sleep(5)
8 lcd.clear()

LCD-remettreEcranAZero.py hosted with ❤ by GitHub view raw

Faire clignoter du texte


La fonction vue précédemment nous permet de facilement faire clignoter du texte à l'écran, avec une boucle while.

1 from RPLCD.gpio import CharLCD


2 import time
3
4 lcd = CharLCD(cols=16, rows=2, pin_rs=37, pin_e=35, pins_data=[33, 31, 29, 23])

https://raspberry-lab.fr/Composants/Ecran-LCD-1602-sur-Raspberry-Francais/ 3/8
20/12/2024 10:51 Utiliser un écran LCD 16x02 sur Raspberry Pi - Raspberry Lab

5
6 while True :
7 lcd.write_string(u'Espace Raspberry')
8 time.sleep(2)
9 lcd.clear()
10 time.sleep(1)

LCD-clignoterTexte.py hosted with ❤ by GitHub view raw

Passer une ligne


Lorsqu'un texte est trop long, la librairie continue le texte à la ligne suivante. Si l'on souhaite forcer le passage de ligne, il suffit de
rajouter \n\r à l'endroit voulu. Voici un exemple :

1 from RPLCD.gpio import CharLCD


2
3 lcd = CharLCD(cols=16, rows=2, pin_rs=37, pin_e=35, pins_data=[33, 31, 29, 23])
4
5 lcd.write_string(u'Bonjour\n\ra tous !!!')

LCD-passerLigne.py hosted with ❤ by GitHub view raw

Quelques applications plus concrètes


On connait maintenant les fonctions de base de l'affichage sur cet écran LCD. On va donc maintenant pouvoir afficher de réelles
informations comme la date et l'heure, l'adresse IP, puis dans un autre tutoriel, nous verrons comment afficher la température sur
cet écran !

Afficher la date et l'heure


La première chose qu'il peut être intéressant de faire est d'afficher la date actuelle sur notre écran. Pour ceci, on va simplement
utiliser la bibliothèque time de Python.

1 from RPLCD.gpio import CharLCD


2 import time
3
4 lcd = CharLCD(cols=16, rows=2, pin_rs=37, pin_e=35, pins_data=[33, 31, 29, 23])
5
6 while True:
7 lcd.cursor_pos = (0, 0)
8 lcd.write_string("Date: %s" %time.strftime("%d/%m/%Y"))
9 lcd.cursor_pos = (1, 0)
10 lcd.write_string("Heure: %s" %time.strftime("%H:%M:%S"))

LCD-date&Heure.py hosted with ❤ by GitHub view raw

Afficher son adresse IP


Pour afficher l'adresse IP de son Raspberry Pi à l'écran, il va simplement falloir récupérer l'adresse IP à l'aide d'une fonction, et
afficher la valeur de sortie sur l'écran.
En fonction de si vous êtes connecté en Wifi ou par câble, il faut mettre l'argument de obtenirIP() respectivement sur wlan0 ou
eth0.

1 from RPLCD.gpio import CharLCD


2 import socket
3 import fcntl
4 import struct
5
6 lcd = CharLCD(cols=16, rows=2, pin_rs=37, pin_e=35, pins_data=[33, 31, 29, 23])
7

https://raspberry-lab.fr/Composants/Ecran-LCD-1602-sur-Raspberry-Francais/ 4/8
20/12/2024 10:51 Utiliser un écran LCD 16x02 sur Raspberry Pi - Raspberry Lab

8 def obtenirIP(nom):
9 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
10 return socket.inet_ntoa(fcntl.ioctl(
11 s.fileno(),
12 0x8915,
13 struct.pack('256s', nom[:15])
14 )[20:24])
15
16 lcd.write_string(u"Adresse IP :")
17
18 lcd.cursor_pos = (1, 0)
19 lcd.write_string(obtenirIP('wlan0')) #Si connection Ethernet : obtenirIP('eth0')

LCD-adresseIP.py hosted with ❤ by GitHub view raw

Afficher des caractères personnalisés


En plus des caractères de l'alphabet, on peut afficher ce qu'on veut sur chacune des 32 cases (16x2). Chacune de ces case est en
réalité une matrice 5x8. Voici le code qui permet d'afficher une case remplie en damier et une autre qui affiche un smiley.

1 from RPLCD.gpio import CharLCD


2 from RPLCD import cleared, cursor
3
4 lcd = CharLCD(cols=16, rows=2, pin_rs=37, pin_e=35, pins_data=[33, 31, 29, 23])
5
6 unSurDeux = (
7 0b10101,
8 0b01010,
9 0b10101,
10 0b01010,
11 0b10101,
12 0b01010,
13 0b10101,
14 0b01010,
15 )
16 smiley = (
17 0b00000,
18 0b00000,
19 0b01010,
20 0b01010,
21 0b00000,
22 0b10001,
23 0b01110,
24 0b00000,
25 )
26
27 lcd.create_char(0, unSurDeux)
28 lcd.create_char(1, smiley)
29
30 lcd.write_string(unichr(0))
31 lcd.write_string(unichr(1))

LCD-caracteresPerso.py hosted with ❤ by GitHub view raw

Ce site permet de créer des caractères spéciaux facilement.

https://raspberry-lab.fr/Composants/Ecran-LCD-1602-sur-Raspberry-Francais/ 5/8
20/12/2024 10:51 Utiliser un écran LCD 16x02 sur Raspberry Pi - Raspberry Lab

Ce tutoriel vous a plu ?


4.6/5 | 18 votes

Commentaires
14 commentaires publiés.

camille, le 01/06/2024 à 22h46

Bonjour,
vous trouverez un driver assez complet ici:
https://github.com/framboise-pi/LCD1602_I2C_driver---raspberry-pi
pas d'installation, il suffit de copier/coller le fichier .py, ça peut simplifier pour certain)
PS: c'est écrit en python3
Répondre

maxibud, le 10/12/2020 à 19h12

Bonjour

Je rencontre un problème lors de l'exécution du premier script :


La console me renvois le msg suivant :
/usr/local/lib/python3.7/dist-packages/RPLCD/gpio.py:149: RuntimeWarning: This channel is already in use,
continuing anyway. Use GPIO.setwarnings(False) to disable warnings.
GPIO.setup(pin, GPIO.OUT)

merci de votre aide SVP.

Répondre

Jiboux, le 22/06/2020 à 21h48

Bonjour,

Une réponse qui arrive un peu tard, mais qui pourra peut-être servir à d'autres.
si le module est installé via pip, qui pointe vers python 2.7 alors que le programme est exécuté sous python
3.x le module n'est pas reconnu.
Essayez la commande sudo pip3 install RPLCD.
pip3 installe les modules sous python3. Peut être faudra t'il installer préalablement pip3. Sous une Pi0
fraîchement installé, je n'ai pas eu à le faire.
Bien à vous.
Répondre

Totogoto, le 31/03/2020 à 20h12

https://raspberry-lab.fr/Composants/Ecran-LCD-1602-sur-Raspberry-Francais/ 6/8
20/12/2024 10:51 Utiliser un écran LCD 16x02 sur Raspberry Pi - Raspberry Lab

Bonjour, je n'arrive pas à poursuivre le projet à cause de ce message d'erreur:


Traceback (most recent call last):
File "/home/pi/Documents/Projet LCD/1.", line 1, in
from RPLCD.gpio import CharLCD
ModuleNotFoundError: No module named 'RPLCD'
Pourtant j'ai bien installé la librairie.Pouvez vous m'aidez? merci
Répondre

Raspberry Lab, le 31/03/2020 à 23h05

Bonsoir @Totogoto,
Je viens de refaire le début du tuto sur mon Raspberry Pi avec une installation fraîche de Raspbian, et
je ne rencontre pas le problème que vous décrivez :/
Lors de l'installation de la librairie, êtes-vous bien arrivé à Successfully installed RPLCD-1.2.2 ?
Sinon, peut-être que le problème peut venir du chemin où est stocké votre .py, même s'il n'y a pas
vraiment de raisons.
Pouvez-vous tester ces commandes pour voir si le problème persiste ?
cd ~
sudo pip install RPLCD
sudo nano test.py
Coller et enregistrer le fichier (Ctrl+X -> Y (ou O) pour enregistrer)
sudo python test.py

Dans l'attente de votre réponse,


Raspberry Lab.
Répondre

Totogoto, le 01/04/2020 à 09h50

Bonjour, merci beaucoup de votre réactivité, voila ce qu'il me met:


pi@raspberrypi:~ $ sudo pip install RPLCD
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: RPLCD in /usr/local/lib/python2.7/dist-packages (1.2.2)
pi@raspberrypi:~ $
Pouvez vous encore m'aider? Merci beaucoup

Répondre

Raspberry Lab, le 01/04/2020 à 17h25

Bonjour @Totogoto,
D'accord la librairie est donc correctement installée.
En mettant le code dans ~/test.py comme je vous l'ai précédemment indiqué, rencontrez-vous encore
l'erreur No module named 'RPLCD' ?
Car normalement ça devrait fonctionner...
Répondre

Voir plus

Commenter
Commentaire

Pseudo

Adresse mail

https://raspberry-lab.fr/Composants/Ecran-LCD-1602-sur-Raspberry-Francais/ 7/8
20/12/2024 10:51 Utiliser un écran LCD 16x02 sur Raspberry Pi - Raspberry Lab

Votre adresse mail ne sera pas visible sur le site.

Je ne suis pas un robot


reCAPTCHA
Confidentialité - Conditions

Les commentaires sous soumis à vérification avant publication.

 Laisser un commentaire

Raspberry Lab Catégories Contact

Raspberry Lab est un site proposant des tutoriels et N'hésitez pas à nous contacter pour tout
Tutoriels
articles autour du Raspberry Pi. signalement d'erreurs, suggestions
Modules & composants d'idées, etc. Nous apprécions vos
commentaires.
Projets
Contactez-nous
Articles

Raspberry Lab - 2014-2024 Textes soumis au droit d'auteur.


En tant que Partenaire Amazon, je réalise un bénéfice sur les achats remplissant les conditions requises. Raspberry-lab.fr est hebergé par SARL LWS.

https://raspberry-lab.fr/Composants/Ecran-LCD-1602-sur-Raspberry-Francais/ 8/8

Vous aimerez peut-être aussi