Exemple 88
Réglage du niveau de gris
Le but de cet exemple n’est pas d’optimisé le programme mais de montrer le principe de fonctionnement de celui-ci ( dans la partie void setup la présentation du numéro de l’exemple idem à l’exemple 86 ).Ce petit programme vous montre comment modifier la luminosité des caractères sur votre afficheur OLE42178P , soit en mode manuel avec un potentiomètre ou en mode automatique avec un détecteur de lumière Grove SEN11302P ou équivalent
Matériel nécessaire
– 1 Carte Arduino Mega 2560
– 1 Carte Grove Mega Shield
– 1 Afficheur Oled 96×96 OLE42178P
– 1 Détecteur de lumière Grove SEN11302P ou équivalent
– 1 Module potentiomètre Grove COM08212P ou équivalent
A savoir
– la fonction d’initialisation setup() qui est exécutée une seule fois au démarrage.Cette fonction est utilisée pour initialiser les variables, le sens des broches, les librairies utilisées
– la fonction « boucle sans fin » loop() qui est exécutée en boucle une fois que la fonction setup() a été exécutée une fois.
– Toutes les lignes qui commencent par // sont ignorées par le compilateur et sont appelées des commentaires.Les commentaires sont des lignes de texte incluses dans le programme, de plus elles n’occupent aucun espace mémoire dans le microcontrôleur
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 |
// // // *************************************************** // * Programme réaliser par RedOhm * // * * // * 1- Positionnement d'un texte sur plusieurs * // * lignes * // * 2- une pause de 3 secondes * // * 3- efface l'ecran * // * DEBUT DE L'EXEMPLE 88 * // * 4- Reglage du niveau de gris par * // * potentiometre ou par detecteur de * // * lumiere * // * * // * H.Mazelin * // *************************************************** //Cette bibliothèque vous permet de communiquer avec des périphériques I2C #include <Wire.h> //bibliothèque de gestion de l’afficheur SeeedGrayOLED.h #include <SeeedGrayOLED.h> // avr/pgmspace.h .Afin de Stocker les données dans la mémoire // Flash (mémoire programme) au lieu de la mémoire SRAM #include <avr/pgmspace.h> // Potentiometre connectée a l'entrée analogique 0 const int potentiometrePin =0; // Un programme Arduino doit impérativement contenir cette fonction . // Elle ne sera exécuter une seule fois au démarrage du microcontroleur // Elle sert à configurer globalement les entrées sorties // // void setup() { // Initialise la library Wire et se connecte au bus I2C // Cette instruction ne doit normalement n'être appelée qu'une seule fois Wire.begin(); //initialiser l'écran OLED SEEED SeeedGrayOled.init(); //Effacer l'écran SeeedGrayOled.clearDisplay(); //Réglage du mode d'affichage en normal SeeedGrayOled.setNormalDisplay(); // Passez en mode vertical pour l'affichage du texte SeeedGrayOled.setVerticalMode(); { // Affiche le niveau de gris par défaut 15 SeeedGrayOled.setGrayLevel(15); //position du curseur pour régler ligne 1, colonne 0 SeeedGrayOled.setTextXY(1,0); // Afficher RedOhm SeeedGrayOled.putString("RedOhm"); //position du curseur pour régler ligne 2, colonne 3 SeeedGrayOled.setTextXY(2,3); // Afficher Bonjour SeeedGrayOled.putString("bonjour"); //position du curseur pour régler ligne 5, colonne 3 SeeedGrayOled.setTextXY(5,0); // Afficher Exercice SeeedGrayOled.putString("Exercice"); //position du curseur pour régler ligne 6, colonne 5 SeeedGrayOled.setTextXY(7,5); // N 88 SeeedGrayOled.putString("N 88"); // pause de 3 secondes delay (3000); //initialiser l'écran OLED SEEED SeeedGrayOled.init(); //Effacer l'écran SeeedGrayOled.clearDisplay(); // ----------------------------------------------------------------------- // // Debut de l'exemple // // ----------------------------------------------------------------------- } } // Le programme principal s’exécute par une boucle infinie appelée Loop () void loop() { //position du curseur pour afficher entree brute ligne 7, colonne 0 SeeedGrayOled.setTextXY(7,0); // affiche le nom Entrée brute SeeedGrayOled.putString("Entree brute"); //position du curseur pour afficher valeur gris ligne 9, colonne 0 SeeedGrayOled.setTextXY(9,0); // affiche le nom Valeur gris ( valeur du niveau de gris SeeedGrayOled.putString("Valeur gris"); // lit la tension présente sur la broche analogique pin.La fonction // analogRead() renvoie la valeur lue , convertie en un entier // compris entre 0 et 1023 int valeurpo = analogRead(potentiometrePin); // debut du traitement efface 1 ligne 10 // si la valeur valeurpo et strictement inférieure à 10 // efface le derniere caractere if (valeurpo/68<10) { //position du curseur pour effacer le dernier caractére ligne 10, colonne 6 SeeedGrayOled.setTextXY(10,6); // affiche un espace vide SeeedGrayOled.putString(" "); } // fin de traitement efface 1 // debut du traitement efface 2 // si la valeur valeurpo et strictement inférieure à 10 // efface le derniere caractere if (valeurpo<10) { //position du curseur pour effacer le dernier caractére ligne 8, colonne 6 SeeedGrayOled.setTextXY(8,6); // affiche un espace vide SeeedGrayOled.putString(" "); } // si la valeur valeurpo et strictement inférieure à 100 // efface le derniere caractere else if (valeurpo<100) { //position du curseur pour effacer le dernier caractére ligne 8, colonne 7 SeeedGrayOled.setTextXY(8,7); // affiche un espace vide SeeedGrayOled.putString(" "); } // si la valeur valeurpo et strictement inférieure à 1000 // efface le derniere caractere else if (valeurpo<1000) { //position du curseur pour effacer le dernier caractere ligne 8, colonne 8 SeeedGrayOled.setTextXY(8,8); // affiche un espace vide SeeedGrayOled.putString(" "); } // fin de traitement efface 2 // Affiche le niveau de gris par défaut 15 SeeedGrayOled.setGrayLevel(15); //position du curseur pour régler ligne 8, colonne 5 SeeedGrayOled.setTextXY(8,5); // Affiche la valeur numerique du potentiometre SeeedGrayOled.putNumber(valeurpo); //position du curseur pour régler ligne 10, colonne 5 SeeedGrayOled.setTextXY(10,5); // Affiche la valeur du potentiometre mise à l'echelle pour le niveau de // gris de 0 a 15 à choisir SeeedGrayOled.putNumber(valeurpo/68); // Execute la valeur du potentiometre mise à l'echelle pour le niveau de // gris de 0 a 15 à choisir SeeedGrayOled.setGrayLevel(valeurpo/68); //position du curseur pour régler ligne 0, colonne 0 SeeedGrayOled.setTextXY(0,0); // Affiche la valeur ============ SeeedGrayOled.putString("============"); //position du curseur pour régler ligne 1, colonne 0 SeeedGrayOled.setTextXY(1,0); // Affiche la valeur ============ SeeedGrayOled.putString("| RedOhm |"); //position du curseur pour régler ligne 2, colonne 0 SeeedGrayOled.setTextXY(2,0); // Affiche la valeur "| |" SeeedGrayOled.putString("| |"); //position du curseur pour régler ligne 3, colonne 0 SeeedGrayOled.setTextXY(3,0); // Affiche la valeur ============ SeeedGrayOled.putString("============"); // Affiche le niveau de gris par défaut 15 SeeedGrayOled.setGrayLevel(15); } |