Même si les afficheurs LCD 16 X 2 ont d'abord et avant tout été conçus pour afficher du texte, il est possible d'y afficher de petits dessins en créant nos propres polices de caractères. Bien entendu, on est loin de la flexibilité des écrans graphiques puisque nous sommes limités à un maximum de 4 caractères de 5 pixels de large et de 8 pixels de haut. La bibliothèque LiquidCrystal de l'IDE Arduino permet la création de ces caractères sur mesure grâce à la fonction createChar().
Par exemple, en traçant à l'écran le schéma représenté ci-dessus, Screenduino a généré automatiquement le sketch ci-dessous.
-
/* | |
Schéma d'un cicruit électrique sur un aficheur LCD 16 X 2 | |
Généré avec le Custom Glyph Generator Screenduino de tusindfryd; | |
https://tusindfryd.github.io/screenduino/ | |
*/ | |
#include <LiquidCrystal.h> | |
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7 | |
void setup() { | |
lcd.begin(16, 2); | |
image(); | |
} | |
void loop() {} | |
void image() { | |
lcd.clear(); | |
byte image08[8] = {B10000, B10000, B10000, B10000, B11111, B10000, B10000, B10000}; | |
byte image25[8] = {B00001, B00001, B00001, B11111, B00001, B00001, B00001, B00001}; | |
byte image24[8] = {B00000, B11111, B00001, B00001, B00001, B11111, B00000, B00000}; | |
byte image07[8] = {B00000, B00000, B00001, B00001, B11111, B10001, B10000, B10000}; | |
byte image23[8] = {B10000, B10011, B10010, B11110, B00010, B00011, B00000, B00000}; | |
byte image26[8] = {B10001, B10001, B10001, B11111, B10000, B10000, B10000, B10000}; | |
byte image10[8] = {B00000, B00000, B00000, B00000, B11111, B00001, B00001, B00001}; | |
byte image09[8] = {B00001, B00010, B00100, B01000, B10000, B00000, B00000, B00000}; | |
lcd.createChar(0, image08); | |
lcd.createChar(1, image25); | |
lcd.createChar(2, image24); | |
lcd.createChar(3, image07); | |
lcd.createChar(4, image23); | |
lcd.createChar(5, image26); | |
lcd.createChar(6, image10); | |
lcd.createChar(7, image09); | |
lcd.setCursor(7, 0); | |
lcd.write(byte(0)); | |
lcd.setCursor(8, 1); | |
lcd.write(byte(1)); | |
lcd.setCursor(7, 1); | |
lcd.write(byte(2)); | |
lcd.setCursor(6, 0); | |
lcd.write(byte(3)); | |
lcd.setCursor(6, 1); | |
lcd.write(byte(4)); | |
lcd.setCursor(9, 1); | |
lcd.write(byte(5)); | |
lcd.setCursor(9, 0); | |
lcd.write(byte(6)); | |
lcd.setCursor(8, 0); | |
lcd.write(byte(7)); | |
} |
-
L'afficheur était branché à un Arduino Uno de la façon suivante:
À lire également
Aucun commentaire:
Enregistrer un commentaire