Branchement afficheur Nokia 5510 avec Arduino

L’écran Nokia 5510 84 х 48 est un écran graphique LCD qui a été conçu à l’origine pour les écrans des téléphones portables emblématiques Nokia 5510. Mais aujourd’hui, l’afficher Nokia 84 х 48 peut facilement être utilisé dans des projets avec une carte Arduino. Voyons comment connecter l’écran Nokia 5110 LCD au microcontrôleur Arduino, comment afficher du texte et des chiffres, ainsi qu’une image bitmap monochrome sur l’écran du module.


Pour cette activité, nous aurons besoin:

Matériel supplémentaire sur ce sujet:

  1. Tetris sur Arduino Uno avec écran OLED SSD1306
  2. Horloge Arduino avec DS3231 et l’écran OLED
  3. Thermomètre sur Arduino avec afficheur TM1637

L’écran LCD Nokia 5510 Arduino datacheet, pinout

Afficheur Nokia 5510 LCD pinout, datacheet
Afficheur Nokia 5510 LCD pinout, datacheet

Caractéristiques Nokia 5510 (datacheet)

  • Alimentation: 3.3 – 5 В
  • Puce: PCD8544
  • Interface: SPI
  • Taille de l’écran: 84 x 48
  • Type: TFT
  • Couleur: monochrome
  • Fréquence d’horloge: jusqu’à 4 MHz
  • Temps de réinitialisation: 100 ns

Toutes les fonctions d’affichage nécessaires sont regroupées dans un petit contrôleur Philips PCD8544 qui fonctionne à très basse tension. La puce PCD8544 est plus économique, plus précise et plus fiable que le contrôleur de l’écran LCD 1602. Le module Nokia 5510 possède 8 connecteurs (voir image ci-dessous) pour la connexion, la tension de fonctionnement de display Nokia 5510 et du rétro-éclairage de l’écran est comprise entre 3,3 et 5 Volts.

  • contact RST est utilisé pour la réinitialisation
  • contact LIGHT est utilisé pour le rétro-éclairage
  • broches VCC et GND sont utilisées pour l’alimentation du module
  • broches CE, DIN et CLK sont utilisées pour le contrôle de l’écran
  • contact DC est utilisé pour indiquer si la prochaine information à transmettre est une commande ou des données

Comment brancher écran Nokia 5510 LCD Arduino

Comment connecter module display Nokia 5510 avec Arduino Uno
Comment connecter module display Nokia 5510 avec Arduino Uno
LCD Nokia 5110 Arduino Uno Arduino Nano Arduino Mega
RST 7 7 7
CE 6 6 6
DC 5 5 5
Din 4 4 4
Clk 3 3 3
VCC 5V 5V 5V
BL 5V 5V 5V
GND GND GND GND

Nokia 5110 48×84 est connecté au microcontrôleur Arduino via le protocole SPI, mais seule une communication unidirectionnelle est utilisée, car l’écran n’a pas besoin d’envoyer de données à l’Arduino Uno. Le programme suivant utilisera une implémentation logicielle du bus SPI, de sorte qu’il est possible d’utiliser n’importe quelle broche GPIO d’Arduino pour communiquer entre le microcontrôleur et l’écran graphique monochrome Nokia 5110.

Programme Arduino pour display Nokia 5510 LCD

#include "SPI.h"
#include "Adafruit_GFX.h"
#include "Adafruit_PCD8544.h"

// broches de connexion du module
Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 6, 7);

void setup() {
  display.begin();
  display.setContrast(20); // contraste de l'affichage de 0 à 100 
  display.setTextSize(1); // taille du texte (1 - valeur minimale)
  display.clearDisplay(); // nettoyage de l'écran d'affichage
}

void loop() {
  display.setTextColor(BLACK); // couleur du texte 
  display.setCursor(5, 0); // position du texte sur les axes X et Y 
  display.println("Hello, World!"); 
  display.display(); // fonction pour l'édition de texte 
  delay(1000); 
  display.clearDisplay(); 

  display.setTextColor(WHITE, BLACK); // inversion des couleurs 
  display.setCursor(6, 20); 
  display.println(" Nokia 5110 "); 
  display.display();
  delay(1000); 
  display.clearDisplay();
}

Explication du code contrôle du LCD display Nokia 5510:

  1. la fonction display.setCursor(10, 10); a deux arguments: le premier est la coordonnée X (incrémentée vers la droite), le second est la coordonnée Y (incrémentée vers le bas);
  2. dans la fonction display.setTextColor(WHITE, BLACK); le premier argument est responsable de la couleur du texte et le second de la couleur de l’écran.

Comment afficher une image sur le Nokia 5110

einshtein

Pour afficher une image sur l’écran du Nokia 5110, vous devez la créer au format BMP avec une résolution de 84 x 48. Vous pouvez télécharger l’image sur Internet ou vous inspirer de notre exemple dans lequel nous utilisons l’image d’Einstein. Dans un premier temps, il est nécessaire de télécharger l’image prête à l’emploi sur le web site suivant:

https://javl.github.io/image2cpp/

javl.github.io

Lors de la deuxième étape, vous pouvez modifier divers paramètres (par exemple, inverser l’image, l’étirer ou la retourner, sélectionner l’arrière-plan, etc.) Sur le website javl.github.io, un aperçu de l’affichage de l’image téléchargée sur l’écran LCD monochrome du Nokia 5110 est disponible en ligne – voir la capture d’écran ci-dessous.

copiez le tableau

À la dernière étape, cliquez sur le bouton « Générer le code » et copiez le tableau prêt dans la fenêtre du bas. Seul le tableau doit être copié, nous n’avons pas besoin des autres lignes de code. Collez ensuite ce code dans l’esquisse. Faites attention au nom du tableau (il est créé automatiquement à partir du nom du fichier téléchargé) et à la résolution de l’image.

Programme Arduino pour afficher image sur Nokia 5110

#include "SPI.h"
#include "Adafruit_GFX.h"
#include "Adafruit_PCD8544.h"

// broches de connexion du module
Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 6, 7);

// 'einshtein', 84x48px
const unsigned char epd_bitmap_einshtein [] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x01, 0x43, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 
  0x46, 0xc1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x80, 0xc0, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0x03, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x01, 0x7e, 0x10, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x5c, 0x28, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x06, 0x00, 0x41, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0xca, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfc, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x04, 0x00, 0x0e, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x1a, 
  0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x04, 0x01, 0x40, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0xcd, 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xab, 0x00, 
  0x68, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xa8, 0x00, 0x04, 0x01, 0xc0, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x01, 0x29, 0x00, 0x00, 0x01, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x6a, 
  0x00, 0x70, 0x14, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x6b, 0xa0, 0xe0, 0x0a, 0xe0, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x01, 0x71, 0xe0, 0x70, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 
  0x52, 0x20, 0x60, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x54, 0x20, 0x80, 0x06, 0x58, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x40, 0x30, 0x0b, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0xb0, 0x40, 0x00, 0x0a, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x44, 0x00, 0x22, 
  0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x20, 0x08, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x10, 0xc5, 0x00, 0x38, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x60, 0x40, 
  0x20, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 
  0x41, 0x11, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xfb, 0x01, 0x20, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x0c, 0x89, 0x81, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 
  0x81, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x81, 0x00, 0x80, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x01, 0x42, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x10, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0xa8, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};

void setup() {
  display.begin();
  display.setContrast(20);
  display.clearDisplay();

  // display image
  display.drawBitmap(0, 0, epd_bitmap_einshtein, 84, 48, BLACK);
  display.display();
}

void loop() {

}

Explication du codeafficher image sur display Nokia 5510:

  1. Lorsque vous affichez une image sur l’écran du Nokia PCD8544, tenez compte du nom du tableau de données et de la résolution de l’image.

Conclusion. Lors de la sortie de variables ou d’informations provenant de capteurs vers l’écran dans la commande display.println(x);, ne mettez pas de guillemets. En d’autres termes, les règles sont les mêmes que pour le port série de l’IDE Arduino. Si vous suivez toutes les étapes détaillées dans cette présentation, vous obtiendrez les mêmes informations textuelles et graphiques à l’écran que dans l’animation au début de ce billet.





Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.