Raspberry Pi est une carte basée sur un processeur d'architecture ARM conçue pour les ingénieurs en électronique et les amateurs. Le PI est l'une des plates-formes de développement de projet les plus fiables actuellement. Avec une vitesse de processeur plus élevée et 1 Go de RAM, le PI peut être utilisé pour de nombreux projets de haut niveau tels que le traitement d'image et l'IoT.
Pour réaliser l'un des projets de haut niveau, il faut comprendre les fonctions de base de PI. Nous couvrirons toutes les fonctionnalités de base de Raspberry Pi dans ces tutoriels. Dans chaque tutoriel, nous aborderons l'une des fonctions de PI. À la fin de cette série de tutoriels Raspberry Pi, vous serez en mesure de réaliser des projets de haut niveau par vous-même. Suivez les didacticiels ci-dessous:
- Premiers pas avec Raspberry Pi
- Configuration du Raspberry Pi
- LED clignotante
- Interfaçage des boutons
- Génération PWM
- Contrôle du moteur à courant continu
- Contrôle du moteur pas à pas
- Registre de décalage d'interfaçage
- Tutoriel ADC Raspberry Pi
- Commande de servomoteur
- Pavé tactile capacitif
Dans ce tutoriel, nous contrôlerons un écran LCD 16x2 à l'aide de Raspberry Pi. Nous connecterons l'écran LCD aux broches GPIO (General Purpose Input Output) de PI pour afficher des caractères dessus. Nous allons écrire un programme dans PYTHON pour envoyer les commandes appropriées à l'écran LCD via GPIO et afficher les caractères nécessaires sur son écran. Cet écran sera utile pour afficher les valeurs des capteurs, l'état d'interruption et aussi pour afficher l'heure.
Il existe différents types d'écrans LCD sur le marché. L'écran LCD graphique est plus complexe que l'écran LCD 16x2. Nous allons donc ici pour un écran LCD 16x2, vous pouvez même utiliser un écran LCD 16x1 si vous le souhaitez. L'écran LCD 16x2 a 32 caractères au total, 16 en 1 ère ligne et 16 autres en 2 ème ligne. JHD162 est un écran LCD 16x2 caractères du module LCD. Nous avons déjà interfacé 16x2 LCD avec 8051, AVR, Arduino etc. Vous pouvez retrouver tous nos projets liés aux LCD 16x2 en suivant ce lien.
Nous discuterons un peu de PI GPIO avant d'aller plus loin.
Il y a 40 broches de sortie GPIO dans Raspberry Pi 2. Mais sur 40, seules 26 broches GPIO (GPIO2 à GPIO27) peuvent être programmées. Certaines de ces broches remplissent des fonctions spéciales. Avec le GPIO spécial mis de côté, il nous reste 17 GPIO.
Il y a des broches de sortie d'alimentation + 5 V (broches 2 ou 4) et + 3,3 V (broches 1 ou 17) sur la carte, elles servent à connecter d'autres modules et capteurs. Nous allons alimenter l'écran LCD 16 * 2 via le rail + 5V. Nous pouvons envoyer un signal de contrôle de + 3,3 V à l'écran LCD, mais pour le fonctionnement de l'écran LCD, nous devons l'alimenter à + 5 V. L'écran LCD ne fonctionnera pas avec + 3,3V.
Pour en savoir plus sur les broches GPIO et leurs sorties de courant, passez par: LED clignotante avec Raspberry Pi
Composants requis:
Ici, nous utilisons Raspberry Pi 2 Model B avec Raspbian Jessie OS. Toutes les exigences matérielles et logicielles de base sont décrites précédemment, vous pouvez les rechercher dans l'introduction de Raspberry Pi, à part ce dont nous avons besoin:
- Broches de connexion
- Module LCD 16 * 2
- 1KΩrésistance (2 pièces)
- Pot 10K
- Condensateur 1000µF
- Planche à pain
Circuit et explication de fonctionnement:
Comme indiqué dans le schéma de circuit, nous avons interfacé le Raspberry Pi avec un écran LCD en connectant 10 broches GPIO de PI aux broches de contrôle et de transfert de données de l'écran 16 * 2. Nous avons utilisé les broches GPIO 21, 20, 16, 12, 25, 24, 23 et 18 comme BYTE et créé la fonction `` PORT '' pour envoyer des données à l'écran LCD. Ici, GPIO 21 est LSB (bit le moins significatif) et GPIO18 est MSB (bit le plus significatif).
Le module LCD 16x2 a 16 broches, qui peuvent être divisées en cinq catégories, broches d'alimentation, broches de contraste, broches de contrôle, broches de données et broches de rétroéclairage. Voici la brève description à leur sujet:
Catégorie |
N ° de broche. |
Nom de la broche |
Fonction |
Broches d'alimentation |
1 |
VSS |
Broche de terre, connectée à la terre |
2 |
VDD ou Vcc |
Broche de tension + 5V |
|
Broche de contraste |
3 |
V0 ou VEE |
Réglage du contraste, connecté à Vcc via une résistance variable. |
Broches de contrôle |
4 |
RS |
Enregistrer la broche de sélection, RS = 0 Mode de commande, RS = 1 Mode données |
5 |
RW |
Broche de lecture / écriture, RW = 0 Mode d'écriture, RW = 1 Mode de lecture |
|
6 |
E |
Activer, une impulsion élevée à faible doit activer l'écran LCD |
|
Broches de données |
7-14 |
D0-D7 |
Broches de données, stocke les données à afficher sur l'écran LCD ou les instructions de commande |
Broches de rétroéclairage |
15 |
LED + ou A |
Pour alimenter le rétroéclairage + 5V |
16 |
LED- ou K |
Terre de rétroéclairage |
Nous vous recommandons vivement de parcourir cet article pour comprendre le fonctionnement de l'écran LCD avec ses broches et ses commandes hexadécimales.
Nous discuterons brièvement du processus d'envoi de données à LCD:
1. E est réglé sur haut (activer le module) et RS est réglé sur bas (indiquant à l'écran LCD que nous donnons la commande)
2. Donner la valeur 0x01 au port de données comme commande pour effacer l'écran.
3. E est réglé sur haut (activer le module) et RS est réglé sur haut (indiquant à l'écran LCD que nous donnons des données)
4. La preuve que le code ASCII des caractères doit être affiché.
5. E est réglé bas (indiquant à l'écran LCD que nous avons fini d'envoyer des données)
6. Une fois que cette broche E devient basse, l'écran LCD traite les données reçues et affiche le résultat correspondant. Cette broche est donc réglée sur haut avant d'envoyer des données et abaissée au sol après l'envoi des données.
Comme dit, nous allons envoyer les personnages les uns après les autres. Les caractères sont donnés au LCD par des codes ASCII (Code standard américain pour l'échange d'informations). Le tableau des codes ASCII est présenté ci-dessous. Par exemple, pour afficher un caractère «@», nous devons envoyer un code hexadécimal «40». Si nous attribuons la valeur 0x73 à l'écran LCD, il affichera «s». Ainsi, nous allons envoyer les codes appropriés à l'écran LCD pour afficher la chaîne « CIRCUITDIGEST ».
Explication de la programmation:
Une fois que tout est connecté selon le schéma de circuit, nous pouvons activer le PI pour écrire le programme dans PYHTON.
Nous parlerons de quelques commandes que nous allons utiliser dans le programme PYHTON, Nous allons importer le fichier GPIO de la bibliothèque, la fonction ci-dessous nous permet de programmer les broches GPIO de PI. Nous renommons également «GPIO» en «IO», donc dans le programme chaque fois que nous voulons faire référence aux broches GPIO, nous utiliserons le mot «IO».
importer RPi.GPIO comme IO
Parfois, lorsque les broches GPIO, que nous essayons d'utiliser, peuvent remplir d'autres fonctions. Dans ce cas, nous recevrons des avertissements lors de l'exécution du programme. La commande ci-dessous indique au PI d'ignorer les avertissements et de poursuivre le programme.
IO.setwarnings (Faux)
On peut référencer les broches GPIO de PI, soit par numéro de broche à bord, soit par leur numéro de fonction. Comme «PIN 29» sur la carte est «GPIO5». Nous disons donc ici que nous allons représenter la broche ici par «29» ou «5».
IO.setmode (IO.BCM)
Nous définissons 10 broches GPIO comme broches de sortie, pour les broches de données et de contrôle de l'écran LCD.
IO.setup (6, IO.OUT) IO.setup (22, IO.OUT) IO.setup (21, IO.OUT) IO.setup (20, IO.OUT) IO.setup (16, IO.OUT) IO.setup (12, IO.OUT) IO.setup (25, IO.OUT) IO.setup (24, IO.OUT) IO.setup (23, IO.OUT) IO.setup (18, IO.OUT)
tandis que 1: la commande est utilisée comme boucle permanente, avec cette commande les instructions à l'intérieur de cette boucle seront exécutées en continu.
Toutes les autres fonctions et commandes ont été expliquées dans la section 'Code' ci-dessous à l'aide de 'Commentaires'.
Après avoir écrit le programme et l'avoir exécuté, le Raspberry Pi envoie les caractères à l'écran LCD un par un et l'écran LCD affiche les caractères à l'écran.