View on GitHub

PCF8574 : remote 8-bit I/O expander for I²C-bus

Description de la classe PCF8574 développée en C# sous .NETMF 4.3 pour les cartes Netduino et GHI FEZ (PANDA, COBRA...)

Download this project as a .zip file Download this project as a tar.gz file

Sommaire

  1. LE MATERIEL
    1. Le circuit intégré PCF8574 : remote 8-bit I/O expander for I²C-bus
    2. Exemple d'utilisation du circuit PCF8574 : l'IHM SSI
    3. Les cartes Netduino
    4. Les cartes FEZ
  2. LE LOGICIEL
    1. Contenu du répertoire proposé au téléchargement
    2. Le NuGet MicroToolsKit
    3. Le wiki .NetMF v4.3
    4. Description et utilisation de la classe PCF8574
  3. LIENS
    1. Exemples codés en C# pour les cartes Netduino et Fez (Panda 3, BrainPad)
    2. La page du projet MicroToolsKit

1. LE MATERIEL


1.1 Le circuit intégré PCF8574 : remote 8-bit I/O expander for I 2C-bus



1.2 Exemple d'utilisation du circuit PCF8574 : l'IHM SSI

Deux PCF8574 sont utilisés dans l' Interface Homme Machine SSI . Elle se compose :


1.3 Les cartes Netduino

Secret Labs

Netduino plus 2 Netduino 3 wifi
Netduino 3 Ethernet Netduino 3 wifi*

1.4 Les cartes FEZ

GHI Electonics (Extrait)

PANDA III COBRA III
PANDA III COBRA III* (compatible Gadgeteer)

2. LE LOGICIEL


2.1 Contenu du répertoire proposé au téléchargement


Le répertoire proposé au téléchargement (au format zip ou tar.gz) contient la solution PCF8574 composée :


2.2 Le NuGet MicroToolsKit

La dernière version compilée de la classe PCF8574 se situe dans la bibliothèque MicroToolsKit disponible sur nuget.org.

Organisation des classes contenues dans MicroToolsKit [lien]

Note : Installer ce nuget dans le projet Visual Studio simplifie l'utilisation de la classe.


2.3 Le wiki .NetMF v4.3


2.4 Description et utilisation de la classe PCF8574


Création d'un projet avec l'IDE Visual Studio


  1. Créer un nouveau projet en suivant la démarche décrite dans le chapitre "Premier programme en C# étape par étape" avec à une carte Netduino ou avec une carte Fez (Panda 3, BrainPad etc). [lien]
  2. Utiliser le gestionnaire de paquets NuGet pour ajouter la bibliothèque MicroToolsKit ( nuget.org) dans le projet. (Dans l'explorateur de solution, clic droit sur les Références du projet puis choisir Gérer les packages NuGet.... Installer le paquet.)
  3. Ajouter l'espace de noms Microtoolskit.Hardware.IO dans l'en-tête du fichier source.
  4. Créer un objet en utilisant le constructeur PCF8574.
  5. Utiliser la méthode Write pour accéder au port en écriture et la méthode Read pour accéder au port en lecture.

Exemple
using System.Threading;

using Microtoolskit.Hardware.IO;

namespace test
{
    public class Program
    {
        public static void Main()
        {
            byte state = 0xFE;
            PCF8574 Leds = new PCF8574(); // SLA = 0x38, Frequency = 100kHz
            Leds.Write(state);

            while (true)
            {
                if (state != 0)
                    state = (byte)(state << 1);
                else
                    state = 0xFF;
                Leds.Write(state);
                Thread.Sleep(500);
            }
        }

    }
}
			

Constructeur

Syntaxe Description
PCF8574( UInt16 SLA, Int16 Frequency) Instancie un objet "PCF8574(A)".
SLA : l'adresse sur 7 bits, est à définir dans l'intervalle [0x20,0x27] pour un PCF8574 et dans l'intervalle [0x38,0x3F] pour un PCF8574A. ( 0x38 par défaut)
Frequency est à définir dans l'intervalle [100kHz,400kHz]. ( 100kHz par défaut)

Exemple
PCF8574 Leds = new PCF8574();

Propriétés

Syntaxe Description
SLA Retourne l'adresse attribuée au circuit par le constructeur.
TransactionTimeOut Fixe ou retourne le temps alloué à une transaction avant la génération d'une exception System.IO.IOException. (1000ms par défaut)

Méthodes publiques

Syntaxe Description
byte Read()

Renvoie un octet représentatif de la valeur présente sur le port du PCF8574(A).

Note
Une exception System.IO.IOException est générée avec le message "I2CBus error + SLA" en cas d'échec de la communication

Exemple
byte state = Leds.Read();
void Write( byte value)

value: octet à écrire sur le port du PCF8574(A).

Note
Une exception System.IO.IOException est générée avec le message "I2CBus error + SLA" en cas d'échec de la communication.

Exemple
byte state = 0xFE;
Leds.Write(state);