ACCUEIL | ARDUINO > S'INSTALLER > DEBUTER > APPROFONDIR | PROCESSING | MECATRONIQUE | MATERIEL | OUTILS | TESTS | Plus...|
ATELIERS Python + Qt | Mes Robots | RepRap | Mes lib'Arduino | Mes shields Arduino | Mes distros | RaspberryPi |
ATELIERS ARDUINO| VIDEOS | COMPRENDRE | REFERENCES | CODER | TECHNIQUE | GNU/LINUX | LIENS | Rien à voir |
Test de l'affichage sur un afficheur LCD graphique 128x64ARDUINO - INITIATION - LCD GRAPHIQUE Sur cette page... (Masquer)
1. PrésentationCe programme teste l'affichage sur un afficheur LCD graphique.Ce programme montre comment afficher des points et des figures simples sur un afficheur LCD graphique. Source technique : Datasheet de l'afficheur 128x64 basé sur le CI KS0108 Ce programme utilise les fonctionnalités suivantes :
2. Matériel Nécessaire2.1 L'espace de développement Arduino
![]() 2.2 Le matériel suivant pour réaliser le montage associé
![]()
![]() 3. Brochage type d'un afficheur LCD Graphique :Un afficheur LCD graphique présente typiquement les 20 broches suivantes : ![]() On distingue :
![]()
![]() 4. Instructions de montage
5. Le schéma théorique du montage![]() Le schéma théorique du montage 6. Le circuit du montage![]() Le schéma du montage à réaliser 7. Explication du programme7.1 Structure globale du programmeCe programme simple comprend :
7.2 Déroulement du programmeLe programme se déroule de la façon suivante :
![]() Le déroulement du programme 8. Au niveau de la partie déclarative :Inclusion des librairies utilisées
#include <ks0108.h> // Librairie pour afficheur LCD Graphique 128x64 basé sur CI ks0108 ou équiv // Librairie à télécharger à l'adresse : http://www.arduino.cc/playground/Code/GLCDks0108 // Modifier au besoin la définition des broches utilisée dans fichier ks0108_Arduino.h ou ks0108_Mega //Pour mémoire : le coin gauche supérieur a pour coordonnées (0,0) Le brochage que nous utilisons ici est différent du brochage par défaut fourni avec la librairie. Il faut modifier le fichier ks0108_Arduino.h en conséquence. Déclaration de constantes utiles
Déclaration des constantes de broches
Déclaration des variables globales
int i=0; // variable de boucle Déclarations des objets utiles pour les fonctionnalités utilisées
9. Au niveau de la fonction d'initialisation setup( ) :Initialisation des fonctionnalités utilisées :
GLCD.Init(NON_INVERTED); // initialise la librairie LCD graphique - NON INVERTED = écran blanc avec dessin noir GLCD.ClearScreen(); // efface l'écran configuration des broches utilisées :
10. Au niveau de la boucle principale, la fonction loop ( ) :
for (i=0; i<100; i++) {
GLCD.SetDot(i, i/2, BLACK); // affiche un point de la couleur (BLACK/WHITE) à la position x,y indiquée
delay(100); // pause
}
GLCD.ClearScreen(); // efface l'écran GLCD.DrawRect(32, 32, 50, 30, BLACK); //dessine un rectangle delay (3000); // pause de 3 secondes avant recommencer GLCD.ClearScreen(); // efface l'écran
Se reporter aux commentaires présents dans le programme pour plus de détails. 11. Mise en oeuvre du programme11.1 Préparation du montage et programmation de la carte Arduino :
11.2 Fonctionnement
12. Le programme complet en langage Arduino :A copier/coller directement dans l'éditeur Arduino
// --- Programme Arduino ---
// par X. HINAULT - 01/2010
// www.mon-club-elec.fr
// --- Que fait ce programme ? ---
/* Test l'affichage sur un afficheur LCD graphique*/
// --- Fonctionnalités utilisées ---
// Utilise un afficheur LCD Graphique 128x64
// --- Circuit à réaliser ---
// Connecter sur la broche 4 la broche D4 du LCD Graphique
// Connecter sur la broche 5 la broche D5 du LCD Graphique
// Connecter sur la broche 6 la broche D6 du LCD Graphique
// Connecter sur la broche 7 la broche D7 du LCD Graphique
// Connecter sur la broche 8 la broche D0 du LCD Graphique
// Connecter sur la broche 9 la broche D1 du LCD Graphique
// Connecter sur la broche 10 la broche D2 du LCD Graphique
// Connecter sur la broche 11 la broche D3 du LCD Graphique
// Connecter sur la broche 12 la broche CS1 du LCD Graphique
// Connecter sur la broche 13 la broche CS2 du LCD Graphique
// Connecter sur la broche 16 la broche D/I du LCD Graphique
// Connecter sur la broche 17 la broche R/W du LCD Graphique
// Connecter sur la broche 18 la broche E du LCD Graphique
// Connecter sur la broche 19 la broche Reset du LCD Graphique
//**************** Entête déclarative *******
// A ce niveau sont déclarées les librairies, les constantes, les variables...
// --- Inclusion des librairies utilisées ---
#include <ks0108.h> // Librairie pour afficheur LCD Graphique 128x64 basé sur CI ks0108 ou équiv
// Librairie à télécharger à l'adresse : http://www.arduino.cc/playground/Code/GLCDks0108
// Modifier au besoin la définition des broches utilisée dans fichier ks0108_Arduino.h ou ks0108_Mega
//Pour mémoire : le coin gauche supérieur a pour coordonnées (0,0)
// --- Déclaration des constantes ---
// --- constantes des broches ---
// Les broches utilisées avec le LCD graphique sont déclarées par la fonction GLCD.init (voir setup)
// --- Déclaration des variables globales ---
int i=0; // variable de boucle
// --- Déclaration des objets utiles pour les fonctionnalités utilisées ---
//**************** FONCTION SETUP = Code d'initialisation *****
// La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme
void setup() { // debut de la fonction setup()
// --- ici instructions à exécuter au démarrage ---
GLCD.Init(NON_INVERTED); // initialise la librairie LCD graphique - NON INVERTED = écran blanc avec dessin noir
GLCD.ClearScreen(); // efface l'écran
// ------- Broches en sortie -------
// ------- Broches en entrée -------
// ------- Activation du rappel au + interne des broches en entrée si nécessaire -------
} // fin de la fonction setup()
// ********************************************************************************
//*************** FONCTION LOOP = Boucle sans fin = coeur du programme *************
// la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension
void loop(){ // debut de la fonction loop()
for (i=0; i<100; i++) {
GLCD.SetDot(i, i/2, BLACK); // affiche un point de la couleur (BLACK/WHITE) à la position x,y indiquée
delay(100); // pause
}
GLCD.ClearScreen(); // efface l'écran
GLCD.DrawRect(32, 32, 50, 30, BLACK); //dessine un rectangle
delay (3000); // pause de 3 secondes avant recommencer
GLCD.ClearScreen(); // efface l'écran
} // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin
// ********************************************************************************
// --- Fin programme ---
// --- Mémo instructions ---
//--- Mémo LCD graphique ---
//GLCD.Init(invert) initialize the library for normal or inverted drawing. If invert is false,
// drawing sets pixels, if true pixels are cleared when drawn (see also SetInverted method)
//GLCD.GotoXY(x,y) locate the graphic cursor at positions x and y, 0,0 is upper left corner
//GLCD.ClearScreen() clear the LCD screen
// Graphic Drawing Functions (color WHITE clears pixels, BLACK sets pixels)
//GLCD.DrawCircle(x, y, radius, color) draw circle with center at x,y
//GLCD.DrawLine(x1,y1,x2,y2,color) draw line from x1,y1 to x2,y2
//GLCD.DrawVertLine(x, y, length, color) draw vertical line
//GLCD.DrawHoriLine(x, y, length, color) draw horizontal line
//GLCD.DrawRect(x, y, width, height, color) draw rectangle
//GLCD.DrawRoundRect(x, y, width, height, radius, color) as above with rounded edges
//GLCD.FillRect(x, y, width, height, color) draw filled rectangle
//GLCD.InvertRect(x, y, width, height) invert pixels within given rectangle
//GLCD.SetInverted(invert) set drawing mode to inverted
//GLCD.SetDot(x, y, color); draw a dot in the given color at the given location
//GLCD.DrawBitmap(bitmap, x, y, color); draw the bitmap at the given x,y position
// Font Functions
//GLCD.SelectFont(font, color ) select font, defaults color to black if not specified
//GLCD.PutChar(character) print given character to screen at current cursor location
//GLCD.Puts(string) print given string to screen at current cursor location
//GLCD.Puts_P(string) print string from program memory to screen at current cursor location
//GLCD.PrintNumber(number) print the decimal value of the given number at current cursor location
//GLCD.CursorTo(x, y); // 0 based coordinates for fixed width fonts (i.e. the supplied system font)
|