Pour mon baromètre / altimètre, j'avais utilisé un programme fait par je ne sais plus qui (la honte) pour afficher les informations sur un écran LCD 16x2.
Mais j'aime bien faire les choses moi-même, alors j'ai récemment repris la doc de mon afficheur et je m'y suis mis. Finalement, pas bien compliqué!
Le module en question est le ELCD 162, qui dispose d'une communication série à 19200 baud/s.
J'ai écrit une classe qui permet d'initialiser l'engin, de positionner le curseur, d'écrire du texte, de faire un reset, d'afficher ou non le curseur.
C'est assez facile à utiliser. Il faut :
Voici un exemple de code :
[cpp]
SoftwareSerial srl; LCD lcd; void setup() { srl = new SoftwareSerial(3,2);//rx, tx (on connecte l'afficheur au pin 2) srl->begin(19200);
lcd = new LCD(srl); lcd->print("Ouais, gros!"); }
void loop() {
}
[/cpp]
Allez, c'est cadeau !
Voici le fichier la déclaration de la classe :
[cpp]
class LCD { private: Stream *_serial;
public:
LCD(Stream *s); void reset(); void moveTo(int x, int y); void print(String str); void hideCursor(); void showCursor(); };
[/cpp]
Et l'implémentation :
[cpp]
LCD::LCD(Stream *s) { _serial = s;
_serial->write(0xA0); delay(150);
reset(); }
/**
/**
/**
int zero = 0; _serial->write(zero); delay(100); }
/**
/**
[/cpp]
Faites-vous plaisir :)
*Rhaaaa mais qu'il m'énerve, ce SyntaxHighlighter avec sa perte d'indentation! Tant pis, je laisse comme ça...