mardi 30 septembre 2014

Pinguino et afficheur LCD

Voici quelques petites recommandations pour l'utilisation d'un afficheur LCD de type Hitachi HD44780 (2 lignes de 16 caractères chacune) avec un Pinguino.


Connexions de l'afficheur au Pinguino


J'ai utilisé le mode 4 bits, question d'économiser quelques pins sur le Pinguino, ça peut toujours être utile pour brancher autre chose.


Tel qu'illustré ci-dessus, les branchements sont:
LCD GND - Pinguino GND
LCD Vcc - Pinguino 5 V
LCD V0 - Curseur d'un potentiomètre allant de 0 à 5 V (ajustement du contraste)
LCD Rs - Pinguino pin 0
LCD R/W - Pinguino GND
LCD E - Pinguino pin 1
LCD D0 - pas branché
LCD D1 - pas branché
LCD D2 - pas branché
LCD D3 - pas branché
LCD D4 - Pinguino pin 2
LCD D5 - Pinguino pin 3
LCD D6 - Pinguino pin 4
LCD D7 - Pinguino pin 5

Pour connaître la numérotation des entrées/sorties de votre modèle de Pinguino, référez-vous au site pinguino.cc (pour cette expérience, j'ai utilisé un Pinguino 4550).

Côté logiciel, un sketch destiné à l'Arduino ne nécessitera que quelques rares modifications pour fonctionner correctement avec le Pinguino.  La principale différence, à mon avis, c'est qu'avec Pinguino la fonction lcd.print ne fonctionne que pour afficher des strings, alors qu'avec Arduino on peut tout aussi bien lui passer un nombre en argument.  Il existe pour Pinguino la fonction lcd.printNumber, mais d'après ce que j'ai constaté elle ne fonctionne que pour des nombres entiers.

Pour afficher une valeur décimale non-entière, on doit donc utiliser la fonction lcd.printf.  Les programmeurs expérimentés en langage C sont familiers avec printf, dont la syntaxe est loin d'être conviviale, à mon avis.  Ainsi, pour afficher "Tension:  2,01 V" , où 2,01 est le contenu d'une variable de type float intitulée "nombre", j'ai dû écrire:

lcd.printf("Tension: %04f V", nombre); 

Le symbole "%" indique l'endroit où le contenu de la variable sera inséré à l'intérieur du string, "04" permet de régler le nombre de décimales qui seront affichées, et "f" indique que la variable est de type float.

Ça fonctionne, mais sur cet aspect je préfère de loin la convivialité de la syntaxe Arduino!

Voici donc l'adaptation pour le Pinguino d'un sketch que j'avais utilisé pour l'Arduino il y a quelques années:  l'afficheur LCD indique en volts la tension à l'entrée analogique 1 du Pinguino.  Sur la deuxième ligne, une jauge de type "bar graph" ajoute une information visuelle supplémentaire.

La tension à l'entrée analogique 1 du Pinguino peut provenir, par exemple, d'un potentiomètre.



Yves Pelletier (Twitter:  @ElectroAmateur)

Aucun commentaire:

Enregistrer un commentaire