View on GitHub

Afficheur LCD 2x16 I²C

Description de la classe I2CLcd développée en C# sous .NETMF 4.3 pour les cartes Netduino et 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é PCF2119 : LCD controllers/drivers
    2. Exemple d'utilisation du circuit PCF2119 : 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 I2CLcd
  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é PCF2119 : LCD controllers/drivers



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

L' Interface Homme Machine SSI 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 I2CLCD composée :


2.2 Le NuGet MicroToolsKit

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

Organisation des classes contenues dans MicroToolsKit [lien]

Installer cette bibliothèque dans le projet simplifie l'utilisation de cette classe.


2.3 Le wiki .NetMF v4.3


2.4 Description et utilisation de la classe I2CLcd


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 l'assembly MicroToolsKit (disponible sur nuget.org) dans le répertoire Références du projet.(clic droit sur Références puis Gérer les packages NuGet...)
  3. Ajouter l'espace de noms Microtoolskit.Hardware.Displays dans l'en-tête du fichier source.
  4. Créer un objet en utilisant un des constructeurs I2CLcd.
  5. Initialiser le LCD avec la méthode Init.
  6. Effacer l'écran avec la méthode ClearScreen.
  7. Utiliser les autres méthodes pour gérer l'affichage.

Exemple
using System;
using System.Threading;
using testMicroToolsKit.Hardware.Displays;

namespace FezPanda
{
    public class Program
    {
        public static void Main()
        {
            byte InitJauge = 0x5A;
            Int16 Freq = 100;

            I2CLcd lcd = new I2CLcd(I2CLcd.LcdManufacturer.BATRON, Freq);

            lcd.Init(); lcd.ClearScreen();

            lcd.PutString(2, 0, "Hello");
            lcd.PutChar(11, 0, 0x4E);
            lcd.PutString(3, 1, "Batron");

            for (byte w = InitJauge; w < 0x60; w++)
                lcd.PutChar((byte)(w - 0x51), 1, w);

            while (true)
            {
                lcd.PutChar(14, 0, 0x11); lcd.PutChar(15, 0, 0x21); lcd.PutChar(13, 0, 0x4C);
                Thread.Sleep(200);
                lcd.PutChar(14, 0, 0x21); lcd.PutChar(15, 0, 0x11); lcd.PutChar(13, 0, 0x4B);
                Thread.Sleep(200);

                lcd.PutChar(0, 0, (byte)InitJauge);
                InitJauge++;
                if (InitJauge > 0x5F) InitJauge = 0x5A;
            }
        }
    }
}
			

Constructeurs

Syntaxe Description
I2CLcd() Instancie un objet "I2CLcd" avec les paramètres :
- Fabricant = Midas
- Fréquence du bus: 100kHz
I2CLcd( byte I2C_Add_7bits) Instancie un objet "I2CLcd".
I2C_Add_7bits: adresse I²C sur 7 bits attribuée à l'afficheur.
  • Midas (0x3a)
  • Batron (0x3b)
Fréquence du bus: 100kHz.
I2CLcd( LcdManufacturer ManufacturerName) Instancie un objet "I2CLcd". ManufacturerName: nom du fabricant.
Il correspond à l'adresse I²C du LCD :
  • Midas (0x3a)
  • Batron (0x3b)
Fréquence du bus: 100kHz.
I2CLcd( byte I2C_Add_7bits, Int16 Frequency) Instancie un objet "I2CLcd".
I2C_Add_7bits est l'adresse I²C sur 7 bits attribuée à l'afficheur.
  • Midas (0x3a)
  • Batron (0x3b)
Frequency est à définir dans l'intervalle [100kHz,400kHz].

Exemple
I2CLcd lcd = new I2CLcd(I2CLcd.LcdManufacturer.BATRON, Freq);
I2CLcd( LcdManufacturer ManufacturerName, Int16 Frequency) Instancie un objet "I2CLcd". ManufacturerName est le nom du fabricant.
Il correspond à l'adresse I2C du LCD :
  • Midas (0x3a)
  • Batron (0x3b)
Frequency est à définir dans l'intervalle [100kHz,400kHz].

Enumérations

Syntaxe Description
LcdManufacturer MIDAS : 0x3a (par défaut) BATRON : 0x3b
CursorType Blink : clignotant (par défaut)
Hide : caché
Underline : soulignement

Méthodes

Syntaxe Description
void ClearScreen() Efface l'écran (2 x 16 caractères).
void Init() Initialise l'afficheur en mode 2 x 16 caractères. A utiliser en premier après la construction de l'objet.
void LineBegin( byte x)

Fixe le début de la ligne.

x: position en x sur l'afficheur (0..15).

void PutChar( byte x_pos, byte y_pos, byte z_char)

Ecrit un caractère (z_char) aux coordonnées (x_pos, y_pos) de l'afficheur.

x_pos: position en x sur l'afficheur (0..15).

y_pos: position en y sur l'afficheur (0..1).

z_char: caractère à afficher.



Exemple
lcd.PutChar(14, 0, 0x11);
void PutString( byte x_pos, byte y_pos, string Text)

Ecrit une chaîne de caractères (Text) aux coordonnées (x_pos, y_pos) de l'afficheur.

x_pos: position en x sur l'afficheur (0..15).

y_pos: position en y sur l'afficheur (0..1).

Text: Chaîne à afficher.

Exemple
lcd.PutString(2, 0, "Hello");
void SelectCursor( CursorType posCursorx)

Sélection du curseur

CursorType: Hide, Underline, Blink

void SetBacklight( byte bright)

Réglage du contraste de l'afficheur

bright: 20 dark -> 0 light