Tags:
create new tag
view all tags

Afficheur LCD 1602

Le LCD-1602 permet d'afficher 2 lignes de texte à 16 caractères. Il se compose de l'afficheur avec un contrôleur HD44780 de Hitachi et d'un PCF8574 "remote 8-bit I/O expander" qui travaille comme un registre à décalage avec une interface I2C. Le module est décrit à la page LCD1602.

Exercice 1 :

Lire et bien comprendre les fiches techniques

Pour vérifier qu'on peut accéder le module correctement :
  • Écrire un programme qui analyse le bus I2C et qui imprime l'adresse de chaque module I2C présent sur le bus.
  • Écrire un programme qui enclenche la lumière de fond et, après un seconde d’attente, la déclenche de nouveau.

Exercice 2 :

Pour pouvoir facilement écrire du texte sur l'afficheur, nous avons besoins d'un pilote pour le LCD1602. Malheureusement MicroPython ne fourni aucun code pour ce module et il faut l'implémenter nous même.

  • Préparer la conception d'une classe LcdDisplayClass qui sert de pilote pour le LCD1602
  • Avec les fonctions fournies par le contrôleur HD44780 préparer une liste de méthodes et leurs paramètres qui doit être implémenté par la classe. Par exemple :
    • __init__ : pour initialiser le HD44780
    • backlight : pour enclencher ou déclencher la lumière de fond
    • write_hd44780 : pour écrire un registre dans le HD44780
    • read_hd44780 : pour lire un registre
    • putC : pour écrire un caractère
    • putS : pour écrire une chaine de max. 16 caractères
    • etc...
  • Bien étudier la séquence d'initialisation en mode 4 bits du HD44780 et l'implémenter dans la méthode __init__ de la classe LcdDisplayClass
  • Implémenter les méthodes de la classe LcdDisplayClass une à une. Écrire un programme de test pour vérifier que les méthodes travaillent comme prévu.

Exercice 3 :

Définir des caractères supplémentaires et les stocker dans la RAM "génération de caractères" (CGRAM). 8 caractères peuvent être stockés dans le CGRAM. Écrire un programme de test pour afficher ces caractères.

-- Uli Raich - 2021-06-28

Comments

Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r2 - 2021-06-28 - UliRaich
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback