Contrôlez un écran LCD HD44780 via I2C avec le Raspberry Pi

Les affichages LCD à caractères sont un moyen simple et économique d’afficher un texte. Grâce au contrôleur HD44780, le contrôle des modules est devenu très simple. Cependant, il faut occuper de nombreux GPIO pour cela. Une alternative est le bus de données I2C, ce qui signifie que seuls deux GPIO sont utilisés.

Dans ce didacticiel, un affichage de caractères 20 × 04 HD44780 est contrôlé à l’aide d’une carte graphique I2C. Un convertisseur logique est utilisé pour ajuster le niveau de tension du module sans endommager les GPIO.

Accessoires

Pour accéder à un écran HD47780 via I²C, j’ai utilisé les accessoires suivants:

Écran Raspberry Pi HD44780 i2c

Les broches de l’adaptateur LCD I2C s’adaptent parfaitement à l’écran et peuvent être soudées. Certains écrans sont déjà livrés avec un adaptateur I²C soudé.

Installer

Les GPIO du Raspberry Pi ne peuvent pas obtenir plus de 3,3 V de tension, mais certains modules (comme cet écran) envoient et souhaitent recevoir des signaux 5 V. Pour cela, un convertisseur de niveau logique peut être utilisé, qui a 2 côtés. D’un côté, les connexions qui fonctionnent sur 3,3V sont connectées et de l’autre celles avec 5V. Vous pouvez le reconnaître à différentes caractéristiques (LV – HV), comme vous le voyez dans l’image suivante:

647241639_842

Les broches sont ensuite connectées comme suit:

Tarte aux Raspberry PI Convertisseur de niveau 3,3 V Convertisseur de niveau 5V Adaptateur LCD I2C
3,3 V (broche 1) LV
5 V (broche 2) HV VCC
GND (broche 6) GND GND GND
GPIO2 / SDA (broche 3) TX1 (ci-dessous)
GPIO3 / SCL (broche 5) TX1 (ci-dessus)
TX0 (ci-dessous) SDA
TX0 (ci-dessus) SCL

Voici un dessin schématique:

Contrôleur d'écran Raspberry Pi HD44780 I2C

N’importe quelle broche de terre peut être prise. Par souci de clarté, j’ai choisi la broche 20 au lieu de la broche 6 sur le schéma.

Cette configuration est également utilisable avec d’autres modules qui nécessitent des signaux avec une tension supérieure à 3,3 V (en l’occurrence 5 V) (horloge temps réel, etc.).

Logiciel

Avant de commencer, deux outils I²C sont nécessaires, que nous installons:

sudo apt-get install python-smbus i2c-tools

Ensuite, nous publierons I2C (si vous l’avez déjà publié à partir de didacticiels précédents, vous pouvez l’ignorer):

sudo raspi-config

Sous «Options d’interfaçage»> «I2C», nous l’activons. Ajoutez maintenant les entrées correspondantes dans le fichier des modules:

sudo nano /etc/modules

Ces deux lignes sont ajoutées à la fin:

Il doit ensuite être redémarré pour que toutes les modifications prennent effet.

sudo reboot

Si vous avez déjà connecté l’écran, vous pouvez maintenant tester s’il a été détecté (si vous avez l’un des premiers Raspberry Pi [Rev.1], vous devez passer 0 au lieu de 1):

sudo i2cdetect -y 1

La sortie devrait ressembler à ceci:

[email protected] ~ $ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- 27 -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Si vous voyez un nombre autre que 27, vous devez le changer dans le lcddriver.py fichier (ADDRESS = 0x27).

Commençons par le code:

mkdir hd44780 && cd hd44780
wget http://tutorials-raspberrypi.de/wp-content/uploads/scripts/hd44780_i2c.zip
unzip hd44780_i2c.zip

Avec l’aide des deux scripts inclus, l’affichage peut maintenant être adressé. Pour ce faire, nous ouvrons la console Python et entrons le code suivant:

sudo python

Le premier paramètre du lcd_display_string est pour le texte et le second pour la ligne. Vous n’avez pas à modifier toutes les lignes à la fois, mais vous ne pouvez pas facilement remplacer des caractères individuels. Pour cela, le texte entier (avec le caractère modifié à la position souhaitée) devrait être retransmis.

Le contraste de mon adaptateur I2C était au départ très faible. Si rien ne doit s’afficher, testez la roue à l’arrière et regardez obliquement sur l’écran.

20160115_212307

Référence du code: https://github.com/CaptainStouf/raspberry_lcd4x20_I2C

Articles similaires

Bouton retour en haut de la page
Fermer