Articles

Piloter un écran LCD sur le bus I2C de l'Arduino avec un PCF8574

Image
Dans le projet Horloge, une version du dispositif d'affichage utilisait un module LCD 1602. Les modules d'affichage LCD ont pratiquement tous le même brochage : N° Nom Description 1 VSS Alimentation électrique du module. Doit être reliée à GND de l'Arduino 2 VDD Alimentation électrique du module. Doit être reliée à +5V sur l'Arduino. 3 V0 Réglage du contraste 4 RS Sélection du registre Le module possède deux registres : un pour les données, un pour les commandes. 5 R/W Lecture ou écriture. 6 E Entrée de validation. Cette broche a le même rôle que la touche [Enter] du clavier lorsqu'elle passe de +5V à 0V. 7 à 14 D0  à  D7 Bus de données du module. 15 A Anode du rétro-éclairage. Doit être reliée à +5V sur l'Arduino.  16 K Cathode du rétro-éclairage. Doit être relié à GND de l'Arduino. Dans sa version complète, le pilotage d'un écran LCD mobilise les 11 pins (surlignées en jaune dans le t...

Circuit intégré PCF8574 (classe ICPCF8574)

Image
L'Arduino ne dispose que d'un nombre de pins de sortie limité. Dans un article précédent, un convertisseur Série/Parallèle 74HC595 avait été utilisé pour pallier à ce problème. Et cet technique avait été appliquée au pilotage d'un module LCD 1602 . Si le 74HC595 ne mobilise que 3 pins de l'Arduino, il existe une solution encore meilleure lorsque les économies de pins sont à l'ordre du jour, c'est de passer par le bus I2C. En effet, le bus I2C présente l'avantage de pouvoir être partagé par plusieurs périphériques compatible avec ce protocole. Cet article présente le circuit PCF8574 qui a la même utilité que le 74HC595, à savoir qu'il fournit 8 sorties parallèle pilotée par le bus I2C. Ce qui permet de laisser libre les trois pins habituellement mobilisées par son concurrent. De plus, contrairement au 74HC595 dont la conversion ne fonctionne que dans le sens Série/Parallèle, le PCF8574 permet l'écriture et la lecture de l'état des broches p...

Circuit intégré PCF8591 (classe ICPCF8591)

Image
Dans l'article traitant du bus I2C , un circuit intégré PCF8591 avait été utilisé comme exemple de périphérique esclave d'un Arduino Uno. Ce composant mérite qu'un article lui soit dédié. En effet, il est souvent utiliser en robotique pour délivrer une tension variable d'une part, et d'autre part il permet une extension du nombre d'entrées analogique pour les micro-contrôleurs en ne monopolisant que deux pins pour gérer le bus I2C, pins qui sont partagées par tous les périphériques compatibles avec ce protocole. Ce qui permet d'augmenter le nombre de capteurs à gérer. Le composant PCF8591 est un convertisseur analogique/digital, digital/analogique. L'écriture ou la lecture des données numériques se fait par le biais d'un bus I2C. Et il dispose de quatre entrées analogiques AIN0 à AIN3 , mais d'une seule sortie analogique AOUT . Cet article décrit d'abord le brochage du PCF8591, puis à partir de deux projets exemples, expose le prin...

Le bus I2C

Image
Le bus I2C ( Inter Integrated Circuit )  est un bus série synchrone bidirectionnel half-duplex. Il permet d'interconnecter plusieurs devices maîtres ou esclaves. Chaque  device est repéré sur le bus par son adresse. Il y a 126 adresses possibles. L'intérêt de ce bus est qu'il ne nécessite que trois fils communs à tous les devices . SDA (Serial Data) — fil de données bidirectionnel. SCL (Serial Clock) — fil pour l'horloge synchronisation. GND (Ground) — fil de masse de référence (0V). La mise en oeuvre de ce bus est très simple : il suffit de relier respectivement les broches SDA , SCL et GND de chaque périphérique entre elles. En général, le périphérique maître est un microcontrôleur type Arduino ou un nano-ordinateur type Raspberry. Pour connaitre les broches à connecter, il faut consulter la documentation technique du périphérique. Pour les Arduino, les broches à connecter dépende de l'Arduino. Pour l'Arduino Uno utilisé comme exemple dans ...