// ##################################### // # HORLOGE BOITIER EXPO # // ##################################### // # Guy Magli 23.10.2020 # // # 28.11.2020 # // ##################################### // # Conception, cablages # // # mises a jour, # // # contact... # // # www.magli.fr # // ###################################### // // : ------------ : // La personnalisation des affichages de ce code source concerne : Dt Desjoyaux : // : ------------ : // // Afin d'eviter les problemes d'affichage et d'impression les signes diacritiques // ont ete retires des commentaires et des chaines de caracteres. // // ! ======================== ! // ! Librairies et parametres ! // ! ======================== ! // #include // Pour la communication avec un peripherique #include // Pour utilisation de l'horloge RTC #include // Chaines de caracteres #include // Pour l'ecran #include // Pour l'ecran #include // Clavier 4x4 #include // Pour la temperature, l'hygrometrie et la pression // J'AI CHANGE L'ADRESSE 0x77 en 0x76 // // ! ================== ! // ! VARIABLES GLOBALES ! // ! ================== ! // // : ----------------------------- : // : Pour les prenoms et les fetes : // : ----------------------------- : // const int iNbPrenoms = 1; const int iNbFetes = 2; String cMessage = ""; // Le message (bonjour, bonne nuit...) a afficher // // : ---------------------------------- : // : Pour l'horloge, la date et l'heure : // : ---------------------------------- : // RTC_DS1307 RTC; // Constante pour le module horloge // Pour les calculs sur les dates et les heures DateTime now; int iHeures = 0; // Nombre d'heures int iHeuresD = 0; // Dizaines int iHeuresU = 0; // Unites int iMinutes = 0; // Idem pour les minutes int iMinutesD = 0; // Dizaines int iMinutesU = 0; // Unites int iJours = 0; // La date int iJoursD = 0; // Dizaines int iJoursU = 0; // Minutes String cJours = ""; // Jours en lettres int iMois = 0; // Le mois int iMoisD = 0; // Dizaines int iMoisU = 0; // Unites String cMois = ""; // Mois en lettres long int iAnnees = 0; // Annees int iJoursDeLaSemaine = 0; // Jour de la semaine String cJoursDeLaSemaine = ""; // Jour en lettres String cChaineDate = ""; // La date sous la forme JJMMAAA String cCHaineHeure = ""; // L'heure sous la forme HHMM // // : ------------------------------ : // : Pour le detecteur de mouvement : // : ------------------------------ : // const int iMouvement = 22; // // : ------------- : // : Pour la meteo : // : ------------- : // BMP280 bmp280; // // Pour le dessin de l'ECG // int iHauteur[480]; int iValeurHauteur = 0; int iPositionHauteur = 0; // // : ------------------------- : // : Pour la saisie au clavier : // : ------------------------- : // // Quand on regarde le clavier de face // // 1 2 3 A // 4 5 6 B // 7 8 9 C // * 0 # D // const byte byLignes = 4; // 4 lignes const byte byColonnes = 4; // 4 colonnes char cTouches[byLignes][byColonnes] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; byte byLignesConnecteurs[byLignes] = { 26, 27, 28, 29 }; // Connecteurs pour les lignes byte byColonnesConnecteurs[byColonnes] = { 30, 31, 32, 33 }; // Connecteurs pour les colonnes Keypad keypad = Keypad(makeKeymap(cTouches), byLignesConnecteurs, byColonnesConnecteurs, byLignes, byColonnes); char cTouche = ' '; // La touche frappee au clavier int iNombreTouche = 0; // Le nombre de touches frappees au clavier String cSaisieClavier = ""; // La ligne complete saisie au clavier String cChaineHeure = ""; int iJoursClavier = 0; // La valeur saisie au clavier int iMoisClavier = 0; // Id. int iAnneesClavier = 0; // Id. int iHeuresClavier = 0; // Id. int iMinutesClavier = 0; // Id. bool bSaisieCorrecte = false; // Validation de la date et de l'heure // // : ------ : // : Divers : // : ------ : // int t; // Pour les boucles diverses // // : ------------ : // : Pour l'ecran : // : ------------ : // #define LCD_CS A3 #define LCD_CD A2 #define LCD_WR A1 #define LCD_RD A0 #define LCD_RESET A4 LCDWIKI_KBV mylcd(ILI9486, LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); #define BUFFPIXEL 20 int xPos, yPos; // Coordonnees d'affichage int iLargeur; // Largeur de l'ecran (en mode portrait ou, ici, paysage) // // Pour les Led // const int iLed = 13; // Premiere led // // ! ===== ! // ! Setup ! // ! ===== ! // void setup() { // // Pour le debogage // Serial.begin(9600); // // Pour la detection du mouvement // pinMode(iMouvement, INPUT); // C'est un connecteur d'entree digitalWrite(iMouvement, LOW); // // Pour les led // pinMode(iLed, OUTPUT); // C'est un connecteur de sortie digitalWrite(iLed, LOW); // Eteint led // // Pour la largeur de l'ecran // iLargeur = 480; // // Pour l'horloge // Wire.begin(); RTC.begin(); delay(1000); // // : ------------------------------ : // : Affichage de la page d'accueil : // : ------------------------------ : // mylcd.Init_LCD(); mylcd.Fill_Screen(0, 0, 0); // Fond noir mylcd.Set_Rotation(1); // Mode paysage mylcd.Fill_Screen(0, 0, 0); // Fond noir // // // Titre // yPos = 120; mylcd.Set_Draw_color(0, 0, 255); mylcd.Draw_Round_Rectangle(40, 72, 440, 195, 2); CentreEtAfficheTaille1("HORLOGE PERSONNALISEE", yPos, 255, 255, 255); // Blanc delay(1000); // // Prenoms et noms // yPos = 170; CentreEtAfficheTaille1("DOCTEUR DESJOYAUX", yPos, 255, 255, 255); // Blanc delay(5000); yPos = 260; CentreEtAfficheTaille1("CONCEPTION", yPos, 128, 128, 128); // Gris delay(1000); mylcd.Set_Draw_color(0, 0, 0); mylcd.Fill_Rectangle(0, 240, iLargeur, 280); delay(100); CentreEtAfficheTaille1("REALISATION", yPos, 128, 128, 128); // Gris delay(1000); mylcd.Set_Draw_color(0, 0, 0); mylcd.Fill_Rectangle(0, 240, iLargeur, 280); delay(100); CentreEtAfficheTaille1("PROGRAMMATION", yPos, 128, 128, 128); // Gris delay(1000); mylcd.Set_Draw_color(0, 0, 0); mylcd.Fill_Rectangle(0, 240, iLargeur, 280); delay(100); CentreEtAfficheTaille1("GUY MAGLI", yPos, 128, 128, 128); // Gris delay(2500); mylcd.Set_Draw_color(0, 0, 0); mylcd.Fill_Rectangle(0, 240, iLargeur, 280); delay(100); CentreEtAfficheTaille1("DE LA PART DE", yPos, 128, 128, 128); // Gris delay(1000); mylcd.Set_Draw_color(0, 0, 0); mylcd.Fill_Rectangle(0, 240, iLargeur, 280); CentreEtAfficheTaille1("MARITE ET GUY MAGLI", yPos, 128, 128, 128); // Gris delay(2500); mylcd.Fill_Screen(0, 0, 0); // Fond noir // // Mise a l'heure de l'horloge // // Cette ligne est a utiliser uniquement pour les mises a l'heure // RTC.adjust(DateTime(__DATE__, __TIME__)); // // Pour l'ECG // iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0;iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; // 10 iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; // 20 iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = -2; // Première petite montée iHauteur[iValeurHauteur++] = -4; iHauteur[iValeurHauteur++] = -6; iHauteur[iValeurHauteur++] = -8; iHauteur[iValeurHauteur++] = -10; iHauteur[iValeurHauteur++] = -8; iHauteur[iValeurHauteur++] = -6; iHauteur[iValeurHauteur++] = -4; iHauteur[iValeurHauteur++] = -2; // 30 iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = +4; // Première moyenne descente iHauteur[iValeurHauteur++] = +8; iHauteur[iValeurHauteur++] = +12; iHauteur[iValeurHauteur++] = +16; iHauteur[iValeurHauteur++] = +20; iHauteur[iValeurHauteur++] = +16; iHauteur[iValeurHauteur++] = +12; iHauteur[iValeurHauteur++] = +8; iHauteur[iValeurHauteur++] = +4; // 40 iHauteur[iValeurHauteur++] = 0; // Deuxième grande montée iHauteur[iValeurHauteur++] = -4; iHauteur[iValeurHauteur++] = -8; iHauteur[iValeurHauteur++] = -12; iHauteur[iValeurHauteur++] = -16; iHauteur[iValeurHauteur++] = -20; iHauteur[iValeurHauteur++] = -24; iHauteur[iValeurHauteur++] = -28; iHauteur[iValeurHauteur++] = -32; iHauteur[iValeurHauteur++] = -36; // 50 iHauteur[iValeurHauteur++] = -40; iHauteur[iValeurHauteur++] = -36; iHauteur[iValeurHauteur++] = -32; iHauteur[iValeurHauteur++] = -28; iHauteur[iValeurHauteur++] = -24; iHauteur[iValeurHauteur++] = -20; iHauteur[iValeurHauteur++] = -16; iHauteur[iValeurHauteur++] = -12; iHauteur[iValeurHauteur++] = -8; iHauteur[iValeurHauteur++] = -4; // 60 iHauteur[iValeurHauteur++] = 0; // Deuxième très grande descente iHauteur[iValeurHauteur++] = 4; iHauteur[iValeurHauteur++] = 8; iHauteur[iValeurHauteur++] = 12; iHauteur[iValeurHauteur++] = 16; iHauteur[iValeurHauteur++] = 20; iHauteur[iValeurHauteur++] = 24; iHauteur[iValeurHauteur++] = 28; iHauteur[iValeurHauteur++] = 32; iHauteur[iValeurHauteur++] = 34; // 70 iHauteur[iValeurHauteur++] = 36; iHauteur[iValeurHauteur++] = 38; iHauteur[iValeurHauteur++] = 40; iHauteur[iValeurHauteur++] = 38; iHauteur[iValeurHauteur++] = 36; iHauteur[iValeurHauteur++] = 32; iHauteur[iValeurHauteur++] = 28; iHauteur[iValeurHauteur++] = 24; iHauteur[iValeurHauteur++] = 20; iHauteur[iValeurHauteur++] = 16; // 80 iHauteur[iValeurHauteur++] = 12; iHauteur[iValeurHauteur++] = 8; iHauteur[iValeurHauteur++] = 4; iHauteur[iValeurHauteur++] = 0; // Dernier petit creux iHauteur[iValeurHauteur++] = 4; iHauteur[iValeurHauteur++] = 8; iHauteur[iValeurHauteur++] = 12; iHauteur[iValeurHauteur++] = 8; iHauteur[iValeurHauteur++] = 4; iHauteur[iValeurHauteur++] = 0; // 90 iHauteur[iValeurHauteur++] = -2; // Petite irrégularité iHauteur[iValeurHauteur++] = -4; iHauteur[iValeurHauteur++] = -6; iHauteur[iValeurHauteur++] = -8; // Dernièe bosse iHauteur[iValeurHauteur++] = -6; iHauteur[iValeurHauteur++] = -8; iHauteur[iValeurHauteur++] = -10; iHauteur[iValeurHauteur++] = -12; iHauteur[iValeurHauteur++] = -14; iHauteur[iValeurHauteur++] = -12; // 100 iHauteur[iValeurHauteur++] = -10; iHauteur[iValeurHauteur++] = -8; iHauteur[iValeurHauteur++] = -6; iHauteur[iValeurHauteur++] = -4; iHauteur[iValeurHauteur++] = -2; iHauteur[iValeurHauteur++] = 0; // Long plat iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; // 110 iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; // 120 iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; // 130 iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; // 140 iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; // 150 iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; // 160 iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; // 170 iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; // 180 iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; // 190 iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; iHauteur[iValeurHauteur++] = 0; // 200 bmp280.init(); } void loop() { // Affiche l'ECG en continu int t = 0; int g = 0; for (t = 1; t <= 480; t++) { if (digitalRead(iMouvement) == HIGH) { AfficheCycleComplet(); } // Dessine le spot brillant mylcd.Set_Draw_color(255, 255, 255); mylcd.Draw_Pixel(t, 160 + iHauteur[iPositionHauteur] * 3 - 6); mylcd.Draw_Pixel(t, 160 + iHauteur[iPositionHauteur] * 3 - 5); mylcd.Draw_Pixel(t, 160 + iHauteur[iPositionHauteur] * 3 - 4); mylcd.Draw_Pixel(t, 160 + iHauteur[iPositionHauteur] * 3 - 3); mylcd.Draw_Pixel(t, 160 + iHauteur[iPositionHauteur] * 3 - 2); mylcd.Draw_Pixel(t, 160 + iHauteur[iPositionHauteur] * 3 - 1); mylcd.Draw_Pixel(t, 160 + iHauteur[iPositionHauteur] * 3); mylcd.Draw_Pixel(t, 160 + iHauteur[iPositionHauteur] * 3 + 1); mylcd.Draw_Pixel(t, 160 + iHauteur[iPositionHauteur] * 3 + 2); mylcd.Draw_Pixel(t, 160 + iHauteur[iPositionHauteur] * 3 + 3); mylcd.Draw_Pixel(t, 160 + iHauteur[iPositionHauteur] * 3 + 4); mylcd.Draw_Pixel(t, 160 + iHauteur[iPositionHauteur] * 3 + 5); mylcd.Draw_Pixel(t, 160 + iHauteur[iPositionHauteur] * 3 + 6); delay(3); // Dessine le spot sombre juste derrière mylcd.Set_Draw_color(0, 0, 255); mylcd.Draw_Pixel(t - 1, 160 + iHauteur[iPositionHauteur - 1] * 3 - 6); mylcd.Draw_Pixel(t - 1, 160 + iHauteur[iPositionHauteur - 1] * 3 - 5); mylcd.Draw_Pixel(t - 1, 160 + iHauteur[iPositionHauteur - 1] * 3 - 4); mylcd.Draw_Pixel(t - 1, 160 + iHauteur[iPositionHauteur - 1] * 3 - 3); mylcd.Draw_Pixel(t - 1, 160 + iHauteur[iPositionHauteur - 1] * 3 - 2); mylcd.Draw_Pixel(t - 1, 160 + iHauteur[iPositionHauteur - 1] * 3 - 1); mylcd.Draw_Pixel(t - 1, 160 + iHauteur[iPositionHauteur - 1] * 3); mylcd.Draw_Pixel(t - 1, 160 + iHauteur[iPositionHauteur - 1] * 3 + 1); mylcd.Draw_Pixel(t - 1, 160 + iHauteur[iPositionHauteur - 1] * 3 + 2); mylcd.Draw_Pixel(t - 1, 160 + iHauteur[iPositionHauteur - 1] * 3 + 3); mylcd.Draw_Pixel(t - 1, 160 + iHauteur[iPositionHauteur - 1] * 3 + 4); mylcd.Draw_Pixel(t - 1, 160 + iHauteur[iPositionHauteur - 1] * 3 + 5); mylcd.Draw_Pixel(t - 1, 160 + iHauteur[iPositionHauteur - 1] * 3 + 6); iPositionHauteur++; if (iPositionHauteur > 200) { iPositionHauteur = 1; } } mylcd.Fill_Screen(0, 0, 0); // Fond noir } // // ! ========== ! // ! Procedures ! // ! ========== ! // // : ----------- : // : L'HORLOGE : // : ----------- : // // : ----------------------------------------------------------- : // : Affiche l'heure et les minutes en gros au milieu de l'ecran : // : ----------------------------------------------------------- : // void afficheHeureGros() { int xHeuresD = 80; int xHeuresU = 158; int xMinutesD = 257; int xMinutesU = 335; int yHeuresMinutes = 200; litLaDateEtLHeure(); mylcd.Set_Draw_color(0, 0, 255); // L'utilisation de switch case conduisait a des dysfonctionnements (reboot de la carte) if (iHeuresD == 0) Led0Taille3(xHeuresD, yHeuresMinutes); if (iHeuresD == 1) Led1Taille3(xHeuresD, yHeuresMinutes); if (iHeuresD == 2) Led2Taille3(xHeuresD, yHeuresMinutes); if (iHeuresD == 3) Led3Taille3(xHeuresD, yHeuresMinutes); if (iHeuresD == 4) Led4Taille3(xHeuresD, yHeuresMinutes); if (iHeuresD == 5) Led5Taille3(xHeuresD, yHeuresMinutes); if (iHeuresD == 6) Led6Taille3(xHeuresD, yHeuresMinutes); if (iHeuresD == 7) Led7Taille3(xHeuresD, yHeuresMinutes); if (iHeuresD == 8) Led8Taille3(xHeuresD, yHeuresMinutes); if (iHeuresD == 9) Led9Taille3(xHeuresD, yHeuresMinutes); if (iHeuresU == 0) Led0Taille3(xHeuresU, yHeuresMinutes); if (iHeuresU == 1) Led1Taille3(xHeuresU, yHeuresMinutes); if (iHeuresU == 2) Led2Taille3(xHeuresU, yHeuresMinutes); if (iHeuresU == 3) Led3Taille3(xHeuresU, yHeuresMinutes); if (iHeuresU == 4) Led4Taille3(xHeuresU, yHeuresMinutes); if (iHeuresU == 5) Led5Taille3(xHeuresU, yHeuresMinutes); if (iHeuresU == 6) Led6Taille3(xHeuresU, yHeuresMinutes); if (iHeuresU == 7) Led7Taille3(xHeuresU, yHeuresMinutes); if (iHeuresU == 8) Led8Taille3(xHeuresU, yHeuresMinutes); if (iHeuresU == 9) Led9Taille3(xHeuresU, yHeuresMinutes); LedDeuxPointsTaille3(210, yHeuresMinutes); if (iMinutesD == 0) Led0Taille3(xMinutesD, yHeuresMinutes); if (iMinutesD == 1) Led1Taille3(xMinutesD, yHeuresMinutes); if (iMinutesD == 2) Led2Taille3(xMinutesD, yHeuresMinutes); if (iMinutesD == 3) Led3Taille3(xMinutesD, yHeuresMinutes); if (iMinutesD == 4) Led4Taille3(xMinutesD, yHeuresMinutes); if (iMinutesD == 5) Led5Taille3(xMinutesD, yHeuresMinutes); if (iMinutesD == 6) Led6Taille3(xMinutesD, yHeuresMinutes); if (iMinutesD == 7) Led7Taille3(xMinutesD, yHeuresMinutes); if (iMinutesD == 8) Led8Taille3(xMinutesD, yHeuresMinutes); if (iMinutesD == 9) Led9Taille3(xMinutesD, yHeuresMinutes); if (iMinutesU == 0) Led0Taille3(xMinutesU, yHeuresMinutes); if (iMinutesU == 1) Led1Taille3(xMinutesU, yHeuresMinutes); if (iMinutesU == 2) Led2Taille3(xMinutesU, yHeuresMinutes); if (iMinutesU == 3) Led3Taille3(xMinutesU, yHeuresMinutes); if (iMinutesU == 4) Led4Taille3(xMinutesU, yHeuresMinutes); if (iMinutesU == 5) Led5Taille3(xMinutesU, yHeuresMinutes); if (iMinutesU == 6) Led6Taille3(xMinutesU, yHeuresMinutes); if (iMinutesU == 7) Led7Taille3(xMinutesU, yHeuresMinutes); if (iMinutesU == 8) Led8Taille3(xMinutesU, yHeuresMinutes); if (iMinutesU == 9) Led9Taille3(xMinutesU, yHeuresMinutes); } // // : ------------------------------------------------------- : // : Affiche l'heure et les minutes en petit en haut l'ecran : // : ------------------------------------------------------- : // void afficheHeurePetit() { int xHeureD = 158; int xHeureU = 193; int xMinutesD = 257; int xMinutesU = 292; int yHeure = 75; mylcd.Set_Draw_color(0, 0, 255); // L'utilisation de switch case conduisait a des dysfonctionnements (reboot de la carte) if (iHeuresD == 0) Led0Taille2(xHeureD, yHeure); if (iHeuresD == 1) Led1Taille2(xHeureD, yHeure); if (iHeuresD == 2) Led2Taille2(xHeureD, yHeure); if (iHeuresD == 3) Led3Taille2(xHeureD, yHeure); if (iHeuresD == 4) Led4Taille2(xHeureD, yHeure); if (iHeuresD == 5) Led5Taille2(xHeureD, yHeure); if (iHeuresD == 6) Led6Taille2(xHeureD, yHeure); if (iHeuresD == 7) Led7Taille2(xHeureD, yHeure); if (iHeuresD == 8) Led8Taille2(xHeureD, yHeure); if (iHeuresD == 9) Led9Taille2(xHeureD, yHeure); if (iHeuresU == 0) Led0Taille2(xHeureU, yHeure); if (iHeuresU == 1) Led1Taille2(xHeureU, yHeure); if (iHeuresU == 2) Led2Taille2(xHeureU, yHeure); if (iHeuresU == 3) Led3Taille2(xHeureU, yHeure); if (iHeuresU == 4) Led4Taille2(xHeureU, yHeure); if (iHeuresU == 5) Led5Taille2(xHeureU, yHeure); if (iHeuresU == 6) Led6Taille2(xHeureU, yHeure); if (iHeuresU == 7) Led7Taille2(xHeureU, yHeure); if (iHeuresU == 8) Led8Taille2(xHeureU, yHeure); if (iHeuresU == 9) Led9Taille2(xHeureU, yHeure); LedDeuxPointsTaille2(225, 85); if (iMinutesD == 0) Led0Taille2(xMinutesD, yHeure); if (iMinutesD == 1) Led1Taille2(xMinutesD, yHeure); if (iMinutesD == 2) Led2Taille2(xMinutesD, yHeure); if (iMinutesD == 3) Led3Taille2(xMinutesD, yHeure); if (iMinutesD == 4) Led4Taille2(xMinutesD, yHeure); if (iMinutesD == 5) Led5Taille2(xMinutesD, yHeure); if (iMinutesD == 6) Led6Taille2(xMinutesD, yHeure); if (iMinutesD == 7) Led7Taille2(xMinutesD, yHeure); if (iMinutesD == 8) Led8Taille2(xMinutesD, yHeure); if (iMinutesD == 9) Led9Taille2(xMinutesD, yHeure); if (iMinutesU == 0) Led0Taille2(xMinutesU, yHeure); if (iMinutesU == 1) Led1Taille2(xMinutesU, yHeure); if (iMinutesU == 2) Led2Taille2(xMinutesU, yHeure); if (iMinutesU == 3) Led3Taille2(xMinutesU, yHeure); if (iMinutesU == 4) Led4Taille2(xMinutesU, yHeure); if (iMinutesU == 5) Led5Taille2(xMinutesU, yHeure); if (iMinutesU == 6) Led6Taille2(xMinutesU, yHeure); if (iMinutesU == 7) Led7Taille2(xMinutesU, yHeure); if (iMinutesU == 8) Led8Taille2(xMinutesU, yHeure); if (iMinutesU == 9) Led9Taille2(xMinutesU, yHeure); } // // : --------------------------------- : // : Affiche la date en bas de l'ecran : // : --------------------------------- : // void afficheDatePetit() { int yDate = 300; String cChaineDate; // // Ecrit la date complete // // L'utilisation de switch case conduisait a des dysfonctionnements (reboot de la carte) if (iJoursDeLaSemaine == 1) { cChaineDate = "LUNDI "; } if (iJoursDeLaSemaine == 2) { cChaineDate = "MARDI "; } if (iJoursDeLaSemaine == 3) { cChaineDate = "MERCREDI "; } if (iJoursDeLaSemaine == 4) { cChaineDate = "JEUDI "; } if (iJoursDeLaSemaine == 5) { cChaineDate = "VENDREDI "; } if (iJoursDeLaSemaine == 6) { cChaineDate = "SAMEDI "; } if (iJoursDeLaSemaine == 0) { cChaineDate = "DIMANCHE "; } cChaineDate = cChaineDate + (String)iJoursD + (String)iJoursU; //// L'utilisation de switch case conduisait a des dysfonctionnements (reboot de la carte) if (iMois == 1) { cChaineDate = cChaineDate + " JANVIER"; } if (iMois == 2) { cChaineDate = cChaineDate + " FEVRIER"; } if (iMois == 3) { cChaineDate = cChaineDate + " MARS"; } if (iMois == 4) { cChaineDate = cChaineDate + " AVRIL"; } if (iMois == 5) { cChaineDate = cChaineDate + " MAI"; } if (iMois == 6) { cChaineDate = cChaineDate + " JUIN"; } if (iMois == 7) { cChaineDate = cChaineDate + " JUILLET"; } if (iMois == 8) { cChaineDate = cChaineDate + " AOUT"; } if (iMois == 9) { cChaineDate = cChaineDate + " SEPTEMBRE"; } if (iMois == 10) { cChaineDate = cChaineDate + " OCTOBRE"; } if (iMois == 11) { cChaineDate = cChaineDate + " NOVEMBRE"; } if (iMois == 12) { cChaineDate = cChaineDate + " DECEMBRE"; } CentreEtAfficheTaille1(cChaineDate, yDate, 0, 0, 200); } // // : ----------------- : // : Lit le module RTC : // : ----------------- : // void litLaDateEtLHeure() { now = RTC.now(); // On lit l'heure complete et on extrait iHeures = now.hour(); // l'heure, iHeuresD = iHeures / 10; iHeuresU = iHeures % 10; iMinutes = now.minute(); // les minutes, iMinutesD = iMinutes / 10; iMinutesU = iMinutes % 10; iJours = now.day(); // la date du jour, iJoursD = iJours / 10; iJoursU = iJours % 10; cJours = (String)iJours; iMois = now.month(); // le mois, iAnnees = now.year(); // l'annee iJoursDeLaSemaine = now.dayOfTheWeek(); // et le jour de la semaine. } // : --------- : // : LA METEO : // : --------- : // // : -------------- : // : La temperature : // : -------------- : // void afficheTemperature() { double dTemperature = bmp280.getTemperature(); dTemperature--; // Correction int iTemperature = round(dTemperature); CentreEtAfficheTaille1("TEMPERATURE " + ((String)iTemperature), 220, 51, 102, 253); } // : ----------- : // : La pression : // : ----------- : // void affichePression() { double dPression = bmp280.getPressure(); dPression = dPression / 100.0F + (418 / 8.3F); int iPression = round(dPression); CentreEtAfficheTaille1("PRESSION " + (String)(iPression), 220, 51, 102, 253); } // // : ------------- : // : L'AFFICHAGE : // : ------------- : // // : ------------------------------ // : Outils de conversion de code : // : ------------------------------ // void GM_Draw_Rectangle(int x, int y, int lx, int ly) { mylcd.Fill_Rectangle(x, y, x + lx, y + ly); } // : ---------------- : // : Epele et affiche : // : ---------------- : // void AfficheTaille1(String cChaineAAfficher, int x, int y, int colorR, int colorV, int colorB) { int t; char cChar; for (t = 0; t <= cChaineAAfficher.length(); t++) { cChar = cChaineAAfficher[t]; mylcd.Set_Draw_color(colorR, colorV, colorB); // L'utilisation de switch/case conduisait a des dysfonctionnements (reboot de la carte) if (cChar == 'A') { ATaille1(x, y); x += 19; } if (cChar == 'B') { BTaille1(x, y); x += 16; } if (cChar == 'C') { CTaille1(x, y); x += 20; } if (cChar == 'D') { DTaille1(x, y); x += 21; } if (cChar == 'E') { ETaille1(x, y); x += 17; } if (cChar == 'F') { FTaille1(x, y); x += 17; } if (cChar == 'G') { GTaille1(x, y); x += 20; } if (cChar == 'H') { HTaille1(x, y); x += 18; } if (cChar == 'I') { ITaille1(x, y); x += 7; } if (cChar == 'J') { JTaille1(x, y); x += 13; } if (cChar == 'K') { KTaille1(x, y); x += 18; } if (cChar == 'L') { LTaille1(x, y); x += 14; } if (cChar == 'M') { MTaille1(x, y); x += 20; } if (cChar == 'N') { NTaille1(x, y); x += 20; } if (cChar == 'O') { OTaille1(x, y); x += 21; } if (cChar == 'P') { PTaille1(x, y); x += 16; } if (cChar == 'Q') { QTaille1(x, y); x += 23; } if (cChar == 'R') { RTaille1(x, y); x += 18; } if (cChar == 'S') { STaille1(x, y); x += 18; } if (cChar == 'T') { TTaille1(x, y); x += 16; } if (cChar == 'U') { UTaille1(x, y); x += 19; } if (cChar == 'V') { VTaille1(x, y); x += 19; } if (cChar == 'W') { WTaille1(x, y); x += 18; } if (cChar == 'X') { XTaille1(x, y); x += 19; } if (cChar == 'Y') { YTaille1(x, y); x += 19; } if (cChar == 'Z') { ZTaille1(x, y); x += 18; } if (cChar == ' ') { EspaceTaille1(x, y); x += 10; } if (cChar == '-') { TraitDUnionTaille1(x, y); x += 19; } if (cChar == '`') { ApostropheTaille1(x, y); x += 8; } if (cChar == '.') { PointTaille2(x, y); x += 10; } if (cChar == ':') { LedDeuxPointsTaille2(x, y); x += 10; } if (cChar == '0') { Led0Taille2(x, y); x += 42; } if (cChar == '1') { Led1Taille2(x, y); x += 42; } if (cChar == '2') { Led2Taille2(x, y); x += 42; } if (cChar == '3') { Led3Taille2(x, y); x += 42; } if (cChar == '4') { Led4Taille2(x, y); x += 42; } if (cChar == '5') { Led5Taille2(x, y); x += 42; } if (cChar == '6') { Led6Taille2(x, y); x += 42; } if (cChar == '7') { Led7Taille2(x, y); x += 42; } if (cChar == '8') { Led8Taille2(x, y); x += 42; } if (cChar == '9') { Led9Taille2(x, y); x += 42; } } } // // : ----------------- : // : Centre et affiche : // : ----------------- : // void CentreEtAfficheTaille1(String cChaineACentrerEtAfficher, int y, int colorR, int colorV, int colorB) { int t; char cChar; long x = 0; // L'utilisation de switch/case conduisait a des dysfonctionnements (reboot de la carte) for (t = 0; t <= cChaineACentrerEtAfficher.length(); t++) { cChar = cChaineACentrerEtAfficher[t]; if (cChar == 'A') { x += 19; } if (cChar == 'B') { x += 16; } if (cChar == 'C') { x += 20; } if (cChar == 'D') { x += 21; } if (cChar == 'E') { x += 17; } if (cChar == 'F') { x += 17; } if (cChar == 'G') { x += 20; } if (cChar == 'H') { x += 18; } if (cChar == 'I') { x += 7; } if (cChar == 'J') { x += 13; } if (cChar == 'K') { x += 18; } if (cChar == 'L') { x += 14; } if (cChar == 'M') { x += 20; } if (cChar == 'N') { x += 20; } if (cChar == 'O') { x += 21; } if (cChar == 'P') { x += 16; } if (cChar == 'Q') { x += 23; } if (cChar == 'R') { x += 18; } if (cChar == 'S') { x += 18; } if (cChar == 'T') { x += 16; } if (cChar == 'U') { x += 19; } if (cChar == 'V') { x += 19; } if (cChar == 'W') { x += 18; } if (cChar == 'X') { x += 19; } if (cChar == 'Y') { x += 19; } if (cChar == 'Z') { x += 18; } if (cChar == ' ') { x += 10; } if (cChar == '-') { x += 19; } if (cChar == '`') { x += 8; } if (cChar == '.') { x += 10; } if (cChar == ':') { x += 10; } if (cChar == '0') { x += 42; } if (cChar == '1') { x += 42; } if (cChar == '2') { x += 42; } if (cChar == '3') { x += 42; } if (cChar == '4') { x += 42; } if (cChar == '5') { x += 42; } if (cChar == '6') { x += 42; } if (cChar == '7') { x += 42; } if (cChar == '8') { x += 42; } if (cChar == '9') { x += 42; } } mylcd.Set_Draw_color(colorR, colorV, colorB); AfficheTaille1(cChaineACentrerEtAfficher, ((iLargeur - x) / 2), y, colorR, colorV, colorB); } // // : ----------- : // : LES LETTRES : // : ----------- : // // : - : // : A : // : - : // void ATaille1(int x, int y) // Largeur 19 { GM_Draw_Rectangle(x, y - 1, 2, 2); GM_Draw_Rectangle(x + 1, y - 4, 2, 3); GM_Draw_Rectangle(x + 2, y - 6, 2, 3); GM_Draw_Rectangle(x + 3, y - 9, 2, 4); GM_Draw_Rectangle(x + 4, y - 12, 2, 3); GM_Draw_Rectangle(x + 5, y - 15, 2, 4); GM_Draw_Rectangle(x + 6, y - 17, 2, 3); GM_Draw_Rectangle(x + 7, y - 19, 3, 2); GM_Draw_Rectangle(x + 9, y - 17, 2, 3); GM_Draw_Rectangle(x + 10, y - 16, 2, 4); GM_Draw_Rectangle(x + 11, y - 13, 2, 3); GM_Draw_Rectangle(x + 12, y - 10, 2, 4); GM_Draw_Rectangle(x + 13, y - 7, 2, 3); GM_Draw_Rectangle(x + 14, y - 5, 2, 3); GM_Draw_Rectangle(x + 15, y - 2, 2, 2); GM_Draw_Rectangle(x + 3, y - 7, 11, 2); xPos += 19; } // // : - : // : B : // : - : // void BTaille1(int x, int y) // Largeur 16 { GM_Draw_Rectangle(x, y - 19, 2, 20); GM_Draw_Rectangle(x, y - 19, 11, 2); GM_Draw_Rectangle(x, y - 10, 12, 2); GM_Draw_Rectangle(x, y - 1, 11, 2); GM_Draw_Rectangle(x + 10, y - 18, 2, 2); GM_Draw_Rectangle(x + 11, y - 17, 2, 2); GM_Draw_Rectangle(x + 11, y - 16, 2, 5); GM_Draw_Rectangle(x + 11, y - 15, 2, 2); GM_Draw_Rectangle(x + 11, y - 12, 2, 3); GM_Draw_Rectangle(x + 12, y - 9, 2, 2); GM_Draw_Rectangle(x + 12, y - 7, 2, 5); GM_Draw_Rectangle(x + 12, y - 3, 2, 2); GM_Draw_Rectangle(x + 11, y - 2, 2, 2); xPos += 16; } // // : - : // : C : // : - : // void CTaille1(int x, int y) // Largeur 20 { GM_Draw_Rectangle(x + 16, y - 6, 2, 2); GM_Draw_Rectangle(x + 15, y - 5, 2, 3); GM_Draw_Rectangle(x + 14, y - 3, 2, 2); GM_Draw_Rectangle(x + 12, y - 2, 3, 2); GM_Draw_Rectangle(x + 6, y - 1, 7, 2); GM_Draw_Rectangle(x + 4, y - 2, 2, 2); GM_Draw_Rectangle(x + 3, y - 3, 2, 2); GM_Draw_Rectangle(x + 3, y - 4, 2, 2); GM_Draw_Rectangle(x + 1, y - 6, 2, 3); GM_Draw_Rectangle(x + 0, y - 13, 2, 7); GM_Draw_Rectangle(x + 1, y - 15, 2, 3); GM_Draw_Rectangle(x + 2, y - 16, 2, 2); GM_Draw_Rectangle(x + 3, y - 17, 2, 2); GM_Draw_Rectangle(x + 4, y - 18, 2, 2); GM_Draw_Rectangle(x + 6, y - 19, 7, 2); GM_Draw_Rectangle(x + 13, y - 18, 2, 2); GM_Draw_Rectangle(x + 14, y - 17, 2, 2); GM_Draw_Rectangle(x + 15, y - 16, 2, 2); GM_Draw_Rectangle(x + 16, y - 15, 2, 2); xPos += 20; } // // : - : // : D : // : - : // void DTaille1(int x, int y) // Largeur 19 { GM_Draw_Rectangle(x + 0, y - 19, 2, 19); GM_Draw_Rectangle(x + 0, y - 19, 12, 2); GM_Draw_Rectangle(x + 0, y - 1, 12, 2); GM_Draw_Rectangle(x + 11, y - 18, 2, 2); GM_Draw_Rectangle(x + 13, y - 17, 2, 2); GM_Draw_Rectangle(x + 14, y - 15, 2, 2); GM_Draw_Rectangle(x + 15, y - 13, 2, 8); GM_Draw_Rectangle(x + 14, y - 5, 2, 2); GM_Draw_Rectangle(x + 13, y - 3, 2, 2); GM_Draw_Rectangle(x + 12, y - 2, 2, 2); xPos += 21; } // // : - : // : E : // : - : // void ETaille1(int x, int y) // Largeur 17 { GM_Draw_Rectangle(x + 0, y - 19, 2, 19); GM_Draw_Rectangle(x + 0, y - 19, 15, 2); GM_Draw_Rectangle(x + 0, y - 10, 14, 2); GM_Draw_Rectangle(x + 0, y - 0, 15, 2); xPos += 17; } // // : - : // : F : // : - : // void FTaille1(int x, int y) // Largeur 17 { GM_Draw_Rectangle(x + 0, y - 19, 2, 21); GM_Draw_Rectangle(x + 0, y - 19, 15, 2); GM_Draw_Rectangle(x + 0, y - 10, 12, 2); xPos += 17; } // // : - : // : G : // : - : // void GTaille1(int x, int y) // Largeur 20 { GM_Draw_Rectangle(x + 16, y - 6, 2, 2); GM_Draw_Rectangle(x + 15, y - 5, 2, 3); GM_Draw_Rectangle(x + 14, y - 3, 2, 2); GM_Draw_Rectangle(x + 12, y - 2, 3, 2); GM_Draw_Rectangle(x + 6, y - 1, 7, 2); GM_Draw_Rectangle(x + 4, y - 2, 2, 2); GM_Draw_Rectangle(x + 3, y - 3, 2, 2); GM_Draw_Rectangle(x + 3, y - 4, 2, 2); GM_Draw_Rectangle(x + 1, y - 6, 2, 3); GM_Draw_Rectangle(x + 0, y - 13, 2, 7); GM_Draw_Rectangle(x + 1, y - 15, 2, 3); GM_Draw_Rectangle(x + 2, y - 16, 2, 2); GM_Draw_Rectangle(x + 3, y - 17, 2, 2); GM_Draw_Rectangle(x + 4, y - 18, 2, 2); GM_Draw_Rectangle(x + 6, y - 19, 7, 2); GM_Draw_Rectangle(x + 13, y - 18, 2, 2); GM_Draw_Rectangle(x + 14, y - 17, 2, 2); GM_Draw_Rectangle(x + 15, y - 16, 2, 2); GM_Draw_Rectangle(x + 16, y - 15, 2, 2); GM_Draw_Rectangle(x + 10, y - 10, 8, 2); GM_Draw_Rectangle(x + 16, y - 10, 2, 7); xPos += 20; } // // : - : // : H : // : - : // void HTaille1(int x, int y) // Largeur 17 { GM_Draw_Rectangle(x + 0, y - 19, 2, 20); GM_Draw_Rectangle(x + 0, y - 10, 15, 2); GM_Draw_Rectangle(x + 13, y - 19, 2, 20); xPos += 18; } // // : - : // : I : // : - : // void ITaille1(int x, int y) // Largeur 7 { GM_Draw_Rectangle(x + 0, y - 19, 2, 20); xPos += 7; } // // : - : // : J : // : - : // void JTaille1(int x, int y) // Largeur 13 { GM_Draw_Rectangle(x + 0, y - 5, 2, 3); GM_Draw_Rectangle(x + 1, y - 2, 2, 2); GM_Draw_Rectangle(x + 2, y - 1, 5, 2); GM_Draw_Rectangle(x + 7, y - 2, 2, 2); GM_Draw_Rectangle(x + 8, y - 19, 2, 17); xPos += 13; } // // : - : // : K : // : - : // void KTaille1(int x, int y) // Largeur 18 { GM_Draw_Rectangle(x + 0, y - 19, 2, 20); mylcd.Draw_Line(x + 2, y - 9, x + 12, y - 19); mylcd.Draw_Line(x + 2, y - 8, x + 13, y - 19); mylcd.Draw_Line(x + 2, y - 7, x + 14, y - 19); GM_Draw_Rectangle(x + 6, y - 10, 2, 2); GM_Draw_Rectangle(x + 7, y - 8, 3, 2); GM_Draw_Rectangle(x + 8, y - 6, 3, 1); GM_Draw_Rectangle(x + 9, y - 5, 3, 1); GM_Draw_Rectangle(x + 10, y - 4, 3, 1); GM_Draw_Rectangle(x + 11, y - 3, 2, 2); GM_Draw_Rectangle(x + 12, y - 2, 3, 1); GM_Draw_Rectangle(x + 12, y - 1, 3, 1); GM_Draw_Rectangle(x + 13, y - 0, 3, 0); xPos += 18; } // // : - : // : L : // : - : // void LTaille1(int x, int y) // Largeur 14 { GM_Draw_Rectangle(x + 0, y - 19, 2, 20); GM_Draw_Rectangle(x + 0, y - 1, 12, 2); xPos += 14; } // // : - : // : M : // : - : // void MTaille1(int x, int y) // Largeur 18 { GM_Draw_Rectangle(x + 0, y - 19, 2, 20); GM_Draw_Rectangle(x + 0, y - 18, 4, 3); GM_Draw_Rectangle(x + 3, y - 15, 2, 3); GM_Draw_Rectangle(x + 4, y - 12, 2, 3); GM_Draw_Rectangle(x + 5, y - 9, 2, 4); GM_Draw_Rectangle(x + 6, y - 6, 2, 4); GM_Draw_Rectangle(x + 7, y - 2, 3, 3); GM_Draw_Rectangle(x + 9, y - 6, 2, 4); GM_Draw_Rectangle(x + 10, y - 9, 2, 4); GM_Draw_Rectangle(x + 11, y - 12, 2, 3); GM_Draw_Rectangle(x + 12, y - 15, 2, 3); GM_Draw_Rectangle(x + 13, y - 18, 1, 4); GM_Draw_Rectangle(x + 14, y - 19, 2, 20); xPos += 20; } // // : - : // : N : // : - : // void NTaille1(int x, int y) // Largeur 18 { GM_Draw_Rectangle(x + 0, y - 19, 2, 20); GM_Draw_Rectangle(x + 0, y - 19, 3, 2); GM_Draw_Rectangle(x + 0, y - 17, 4, 2); GM_Draw_Rectangle(x + 3, y - 15, 2, 1); GM_Draw_Rectangle(x + 4, y - 14, 2, 2); GM_Draw_Rectangle(x + 5, y - 12, 2, 1); GM_Draw_Rectangle(x + 6, y - 11, 2, 2); GM_Draw_Rectangle(x + 7, y - 9, 2, 2); GM_Draw_Rectangle(x + 8, y - 7, 2, 1); GM_Draw_Rectangle(x + 9, y - 6, 2, 2); GM_Draw_Rectangle(x + 10, y - 4, 2, 1); GM_Draw_Rectangle(x + 11, y - 3, 2, 2); GM_Draw_Rectangle(x + 12, y - 1, 2, 2); GM_Draw_Rectangle(x + 14, y - 19, 2, 20); xPos += 20; } // // : - : // : O : // : - : // void OTaille1(int x, int y) // Largeur 21 { GM_Draw_Rectangle(x + 16, y - 6, 2, 2); GM_Draw_Rectangle(x + 15, y - 5, 2, 3); GM_Draw_Rectangle(x + 14, y - 3, 2, 2); GM_Draw_Rectangle(x + 12, y - 2, 3, 2); GM_Draw_Rectangle(x + 6, y - 1, 7, 2); GM_Draw_Rectangle(x + 4, y - 2, 2, 2); GM_Draw_Rectangle(x + 3, y - 3, 2, 2); GM_Draw_Rectangle(x + 3, y - 4, 2, 2); GM_Draw_Rectangle(x + 1, y - 6, 2, 3); GM_Draw_Rectangle(x + 0, y - 13, 2, 7); GM_Draw_Rectangle(x + 1, y - 15, 2, 3); GM_Draw_Rectangle(x + 2, y - 16, 2, 2); GM_Draw_Rectangle(x + 3, y - 17, 2, 2); GM_Draw_Rectangle(x + 4, y - 18, 2, 2); GM_Draw_Rectangle(x + 6, y - 19, 7, 2); GM_Draw_Rectangle(x + 13, y - 18, 2, 2); GM_Draw_Rectangle(x + 14, y - 17, 2, 2); GM_Draw_Rectangle(x + 15, y - 16, 2, 2); GM_Draw_Rectangle(x + 16, y - 15, 2, 2); GM_Draw_Rectangle(x + 17, y - 13, 2, 8); xPos += 21; } // // : - : // : P : // : - : // void PTaille1(int x, int y) // Largeur 16 { GM_Draw_Rectangle(x + 0, y - 19, 2, 20); GM_Draw_Rectangle(x + 0, y - 19, 11, 2); GM_Draw_Rectangle(x + 0, y - 9, 10, 2); GM_Draw_Rectangle(x + 10, y - 18, 2, 2); GM_Draw_Rectangle(x + 11, y - 17, 2, 2); GM_Draw_Rectangle(x + 12, y - 16, 2, 6); GM_Draw_Rectangle(x + 11, y - 10, 2, 2); GM_Draw_Rectangle(x + 10, y - 9, 2, 2); xPos += 16; } // // : - : // : Q : // : - : // void QTaille1(int x, int y) // Largeur 18 { GM_Draw_Rectangle(x + 16, y - 6, 2, 2); GM_Draw_Rectangle(x + 15, y - 5, 2, 3); GM_Draw_Rectangle(x + 14, y - 3, 2, 2); GM_Draw_Rectangle(x + 12, y - 2, 3, 2); GM_Draw_Rectangle(x + 6, y - 1, 7, 2); GM_Draw_Rectangle(x + 4, y - 2, 2, 2); GM_Draw_Rectangle(x + 3, y - 3, 2, 2); GM_Draw_Rectangle(x + 3, y - 4, 2, 2); GM_Draw_Rectangle(x + 1, y - 6, 2, 3); GM_Draw_Rectangle(x + 0, y - 13, 2, 7); GM_Draw_Rectangle(x + 1, y - 15, 2, 3); GM_Draw_Rectangle(x + 2, y - 16, 2, 2); GM_Draw_Rectangle(x + 3, y - 17, 2, 2); GM_Draw_Rectangle(x + 4, y - 18, 2, 2); GM_Draw_Rectangle(x + 6, y - 19, 7, 2); GM_Draw_Rectangle(x + 13, y - 18, 2, 2); GM_Draw_Rectangle(x + 14, y - 17, 2, 2); GM_Draw_Rectangle(x + 15, y - 16, 2, 2); GM_Draw_Rectangle(x + 16, y - 15, 2, 2); GM_Draw_Rectangle(x + 17, y - 13, 2, 8); GM_Draw_Rectangle(x + 10, y - 4, 3, 2); GM_Draw_Rectangle(x + 12, y - 3, 5, 3); GM_Draw_Rectangle(x + 16, y + 0, 2, 2); GM_Draw_Rectangle(x + 17, y + 1, 2, 2); xPos += 23; } // // : - : // : R : // : - : // void RTaille1(int x, int y) // Largeur 16 { GM_Draw_Rectangle(x + 0, y - 19, 2, 20); GM_Draw_Rectangle(x + 0, y - 19, 11, 2); GM_Draw_Rectangle(x + 0, y - 9, 10, 2); GM_Draw_Rectangle(x + 10, y - 18, 2, 2); GM_Draw_Rectangle(x + 11, y - 17, 2, 2); GM_Draw_Rectangle(x + 12, y - 16, 2, 6); GM_Draw_Rectangle(x + 11, y - 10, 2, 2); GM_Draw_Rectangle(x + 10, y - 9, 2, 2); GM_Draw_Rectangle(x + 8, y - 8, 3, 1); GM_Draw_Rectangle(x + 9, y - 7, 2, 1); GM_Draw_Rectangle(x + 10, y - 6, 2, 1); GM_Draw_Rectangle(x + 10, y - 5, 3, 1); GM_Draw_Rectangle(x + 11, y - 4, 3, 1); GM_Draw_Rectangle(x + 12, y - 3, 2, 1); GM_Draw_Rectangle(x + 13, y - 2, 2, 1); GM_Draw_Rectangle(x + 13, y - 1, 3, 1); GM_Draw_Rectangle(x + 14, y - 0, 2, 1); xPos += 18; } // // : - : // : S : // : - : // void STaille1(int x, int y) // Largeur 18 { GM_Draw_Rectangle(x + 0, y - 6, 2, 3); GM_Draw_Rectangle(x + 1, y - 4, 2, 2); GM_Draw_Rectangle(x + 2, y - 3, 2, 2); GM_Draw_Rectangle(x + 3, y - 2, 2, 2); GM_Draw_Rectangle(x + 5, y - 1, 7, 2); GM_Draw_Rectangle(x + 12, y - 2, 2, 2); GM_Draw_Rectangle(x + 13, y - 3, 2, 2); GM_Draw_Rectangle(x + 14, y - 7, 2, 4); GM_Draw_Rectangle(x + 13, y - 7, 3, 1); GM_Draw_Rectangle(x + 11, y - 8, 4, 1); GM_Draw_Rectangle(x + 7, y - 9, 7, 1); GM_Draw_Rectangle(x + 4, y - 10, 9, 1); GM_Draw_Rectangle(x + 2, y - 11, 8, 1); GM_Draw_Rectangle(x + 1, y - 12, 3, 1); GM_Draw_Rectangle(x + 1, y - 16, 2, 4); GM_Draw_Rectangle(x + 2, y - 17, 2, 6); GM_Draw_Rectangle(x + 3, y - 18, 2, 2); GM_Draw_Rectangle(x + 5, y - 19, 8, 2); GM_Draw_Rectangle(x + 13, y - 18, 2, 2); GM_Draw_Rectangle(x + 14, y - 16, 2, 2); xPos += 18; } // // : - : // : T : // : - : // void TTaille1(int x, int y) // Largeur 16 { GM_Draw_Rectangle(x + 0, y - 19, 14, 2); GM_Draw_Rectangle(x + 6, y - 19, 2, 20); xPos += 16; } // // : - : // : U : // : - : // void UTaille1(int x, int y) // Largeur 17 { GM_Draw_Rectangle(x + 0, y - 19, 2, 16); GM_Draw_Rectangle(x + 1, y - 4, 2, 3); GM_Draw_Rectangle(x + 2, y - 2, 3, 2); GM_Draw_Rectangle(x + 4, y - 1, 7, 2); GM_Draw_Rectangle(x + 10, y - 2, 3, 2); GM_Draw_Rectangle(x + 12, y - 4, 2, 3); GM_Draw_Rectangle(x + 13, y - 19, 2, 16); xPos += 19; } // // : - : // : V : // : - : // void VTaille1(int x, int y) // Largeur 19 { GM_Draw_Rectangle(x + 0, y - 19, 2, 2); GM_Draw_Rectangle(x + 1, y - 18, 2, 4); GM_Draw_Rectangle(x + 2, y - 15, 2, 3); GM_Draw_Rectangle(x + 3, y - 12, 2, 3); GM_Draw_Rectangle(x + 4, y - 10, 2, 4); GM_Draw_Rectangle(x + 5, y - 7, 2, 3); GM_Draw_Rectangle(x + 6, y - 4, 2, 3); GM_Draw_Rectangle(x + 7, y - 2, 3, 3); GM_Draw_Rectangle(x + 9, y - 4, 2, 3); GM_Draw_Rectangle(x + 10, y - 7, 2, 3); GM_Draw_Rectangle(x + 11, y - 10, 2, 4); GM_Draw_Rectangle(x + 12, y - 12, 2, 3); GM_Draw_Rectangle(x + 13, y - 15, 2, 3); GM_Draw_Rectangle(x + 14, y - 18, 2, 4); GM_Draw_Rectangle(x + 15, y - 19, 2, 2); xPos += 19; } // // : - : // : W : // : - : // void WTaille1(int x, int y) // Largeur 28 { GM_Draw_Rectangle(x + 0, y - 19, 2, 2); GM_Draw_Rectangle(x + 1, y - 17, 2, 4); GM_Draw_Rectangle(x + 2, y - 13, 2, 4); GM_Draw_Rectangle(x + 3, y - 10, 2, 5); GM_Draw_Rectangle(x + 4, y - 6, 2, 4); GM_Draw_Rectangle(x + 5, y - 2, 3, 3); GM_Draw_Rectangle(x + 7, y - 6, 2, 4); GM_Draw_Rectangle(x + 8, y - 10, 2, 4); GM_Draw_Rectangle(x + 9, y - 14, 2, 4); GM_Draw_Rectangle(x + 10, y - 17, 2, 3); GM_Draw_Rectangle(x + 11, y - 19, 3, 2); GM_Draw_Rectangle(x + 13, y - 19, 2, 2); GM_Draw_Rectangle(x + 14, y - 17, 2, 4); GM_Draw_Rectangle(x + 15, y - 13, 2, 4); GM_Draw_Rectangle(x + 16, y - 10, 2, 5); GM_Draw_Rectangle(x + 17, y - 6, 2, 4); GM_Draw_Rectangle(x + 18, y - 2, 3, 3); GM_Draw_Rectangle(x + 20, y - 6, 2, 4); GM_Draw_Rectangle(x + 21, y - 10, 2, 4); GM_Draw_Rectangle(x + 22, y - 14, 2, 4); GM_Draw_Rectangle(x + 23, y - 17, 2, 3); GM_Draw_Rectangle(x + 24, y - 19, 2, 2); xPos += 28; } // // : - : // : X : // : - : // void XTaille1(int x, int y) // Largeur 19 { GM_Draw_Rectangle(x + 0, y - 0, 3, 1); GM_Draw_Rectangle(x + 1, y - 1, 3, 1); GM_Draw_Rectangle(x + 2, y - 3, 3, 2); GM_Draw_Rectangle(x + 3, y - 4, 3, 1); GM_Draw_Rectangle(x + 4, y - 6, 3, 2); GM_Draw_Rectangle(x + 5, y - 7, 3, 1); GM_Draw_Rectangle(x + 6, y - 8, 2, 1); GM_Draw_Rectangle(x + 7, y - 11, 4, 3); GM_Draw_Rectangle(x + 6, y - 12, 2, 1); GM_Draw_Rectangle(x + 5, y - 14, 3, 2); GM_Draw_Rectangle(x + 4, y - 15, 3, 1); GM_Draw_Rectangle(x + 3, y - 16, 3, 1); GM_Draw_Rectangle(x + 3, y - 17, 2, 1); GM_Draw_Rectangle(x + 2, y - 18, 3, 1); GM_Draw_Rectangle(x + 1, y - 19, 3, 1); GM_Draw_Rectangle(x + 14, y - 0, 3, 1); GM_Draw_Rectangle(x + 13, y - 1, 3, 1); GM_Draw_Rectangle(x + 13, y - 3, 2, 3); GM_Draw_Rectangle(x + 12, y - 3, 3, 1); GM_Draw_Rectangle(x + 11, y - 4, 3, 1); GM_Draw_Rectangle(x + 10, y - 6, 3, 2); GM_Draw_Rectangle(x + 9, y - 7, 3, 1); GM_Draw_Rectangle(x + 9, y - 8, 2, 1); GM_Draw_Rectangle(x + 9, y - 12, 2, 1); GM_Draw_Rectangle(x + 9, y - 13, 3, 2); GM_Draw_Rectangle(x + 10, y - 14, 3, 1); GM_Draw_Rectangle(x + 11, y - 15, 3, 1); GM_Draw_Rectangle(x + 12, y - 16, 3, 1); GM_Draw_Rectangle(x + 13, y - 17, 2, 1); GM_Draw_Rectangle(x + 13, y - 18, 3, 1); GM_Draw_Rectangle(x + 14, y - 19, 3, 1); xPos += 19; } // // : - : // : Y : // : - : // void YTaille1(int x, int y) // Largeur 19 { GM_Draw_Rectangle(x + 0, y - 19, 2, 1); GM_Draw_Rectangle(x + 1, y - 18, 2, 1); GM_Draw_Rectangle(x + 2, y - 17, 2, 2); GM_Draw_Rectangle(x + 3, y - 15, 2, 2); GM_Draw_Rectangle(x + 4, y - 13, 3, 1); GM_Draw_Rectangle(x + 5, y - 12, 2, 2); GM_Draw_Rectangle(x + 6, y - 10, 4, 2); GM_Draw_Rectangle(x + 7, y - 8, 2, 9); GM_Draw_Rectangle(x + 9, y - 12, 2, 2); GM_Draw_Rectangle(x + 9, y - 13, 3, 1); GM_Draw_Rectangle(x + 10, y - 14, 3, 1); GM_Draw_Rectangle(x + 11, y - 15, 2, 1); GM_Draw_Rectangle(x + 11, y - 16, 3, 1); GM_Draw_Rectangle(x + 12, y - 17, 2, 1); GM_Draw_Rectangle(x + 12, y - 18, 3, 1); GM_Draw_Rectangle(x + 13, y - 19, 3, 1); xPos += 19; } // // : - : // : Z : // : - : // void ZTaille1(int x, int y) // Largeur 18 { GM_Draw_Rectangle(x + 0, y - 19, 15, 2); GM_Draw_Rectangle(x + 0, y - 1, 15, 2); GM_Draw_Rectangle(x + 1, y - 2, 2, 1); GM_Draw_Rectangle(x + 2, y - 3, 2, 1); GM_Draw_Rectangle(x + 2, y - 4, 3, 1); GM_Draw_Rectangle(x + 3, y - 5, 3, 1); GM_Draw_Rectangle(x + 4, y - 6, 2, 1); GM_Draw_Rectangle(x + 5, y - 7, 2, 1); GM_Draw_Rectangle(x + 6, y - 8, 2, 1); GM_Draw_Rectangle(x + 6, y - 9, 3, 1); GM_Draw_Rectangle(x + 7, y - 10, 3, 1); GM_Draw_Rectangle(x + 8, y - 11, 2, 1); GM_Draw_Rectangle(x + 9, y - 12, 2, 1); GM_Draw_Rectangle(x + 9, y - 13, 3, 1); GM_Draw_Rectangle(x + 10, y - 14, 3, 1); GM_Draw_Rectangle(x + 11, y - 15, 2, 1); GM_Draw_Rectangle(x + 12, y - 16, 2, 1); GM_Draw_Rectangle(x + 13, y - 17, 2, 1); xPos += 18; } // // : ------------ : // : LES CHIFFRES : // : ------------ : // // // : --- : // : 1 : // : --- : // void Led1Taille2(int x, int y) { GM_Draw_Rectangle(x + 24, y - 44, 2, 14); // B GM_Draw_Rectangle(x + 26, y - 46, 2, 18); GM_Draw_Rectangle(x + 28, y - 48, 2, 22); GM_Draw_Rectangle(x + 24, y - 20, 2, 14); // C GM_Draw_Rectangle(x + 26, y - 22, 2, 18); GM_Draw_Rectangle(x + 28, y - 24, 1, 22); xPos += 21; } void Led1Taille3(int x, int y) { GM_Draw_Rectangle(x + 48, y - 88, 4, 28); // B GM_Draw_Rectangle(x + 52, y - 92, 4, 36); GM_Draw_Rectangle(x + 56, y - 96, 4, 44); GM_Draw_Rectangle(x + 48, y - 40, 4, 28); // C GM_Draw_Rectangle(x + 52, y - 44, 4, 36); GM_Draw_Rectangle(x + 56, y - 48, 4, 44); } // // : --- : // : 2 : // : --- : // void Led2Taille2(int x, int y) { GM_Draw_Rectangle(x + 4, y - 52, 22, 2); // A GM_Draw_Rectangle(x + 2, y - 50, 26, 2); GM_Draw_Rectangle(x + 4, y - 48, 22, 2); GM_Draw_Rectangle(x + 24, y - 44, 2, 14); // B GM_Draw_Rectangle(x + 26, y - 46, 2, 18); GM_Draw_Rectangle(x + 28, y - 48, 2, 22); GM_Draw_Rectangle(x + 4, y - 0, 22, 2); // D GM_Draw_Rectangle(x + 2, y - 2, 26, 2); GM_Draw_Rectangle(x + 4, y - 4, 22, 2); GM_Draw_Rectangle(x + 0, y - 24, 2, 22); // E GM_Draw_Rectangle(x + 2, y - 22, 2, 18); GM_Draw_Rectangle(x + 4, y - 20, 2, 14); GM_Draw_Rectangle(x + 4, y - 28, 22, 2); // G GM_Draw_Rectangle(x + 2, y - 26, 26, 2); GM_Draw_Rectangle(x + 4, y - 24, 22, 2); xPos += 21; } void Led2Taille3(int x, int y) { GM_Draw_Rectangle(x + 8, y - 104, 44, 4); // A GM_Draw_Rectangle(x + 4, y - 100, 52, 4); GM_Draw_Rectangle(x + 8, y - 96, 44, 4); GM_Draw_Rectangle(x + 48, y - 88, 4, 28); // B GM_Draw_Rectangle(x + 52, y - 92, 4, 36); GM_Draw_Rectangle(x + 56, y - 96, 4, 44); GM_Draw_Rectangle(x + 8, y - 0, 44, 4); // D GM_Draw_Rectangle(x + 4, y - 4, 52, 4); GM_Draw_Rectangle(x + 8, y - 8, 44, 4); GM_Draw_Rectangle(x + 0, y - 48, 4, 44); // E GM_Draw_Rectangle(x + 4, y - 44, 4, 36); GM_Draw_Rectangle(x + 8, y - 40, 4, 28); GM_Draw_Rectangle(x + 8, y - 56, 44, 4); // G GM_Draw_Rectangle(x + 4, y - 52, 52, 4); GM_Draw_Rectangle(x + 8, y - 48, 44, 4); } // // : --- : // : 3 : // : --- : // void Led3Taille2(int x, int y) { GM_Draw_Rectangle(x + 4, y - 52, 22, 2); // A GM_Draw_Rectangle(x + 2, y - 50, 26, 2); GM_Draw_Rectangle(x + 4, y - 48, 22, 2); GM_Draw_Rectangle(x + 24, y - 44, 2, 14); // B GM_Draw_Rectangle(x + 26, y - 46, 2, 18); GM_Draw_Rectangle(x + 28, y - 48, 2, 22); GM_Draw_Rectangle(x + 24, y - 20, 2, 14); // C GM_Draw_Rectangle(x + 26, y - 22, 2, 18); GM_Draw_Rectangle(x + 28, y - 24, 2, 22); GM_Draw_Rectangle(x + 4, y - 0, 22, 2); // D GM_Draw_Rectangle(x + 2, y - 2, 26, 2); GM_Draw_Rectangle(x + 4, y - 4, 22, 2); GM_Draw_Rectangle(x + 4, y - 28, 22, 2); // G GM_Draw_Rectangle(x + 2, y - 26, 26, 2); GM_Draw_Rectangle(x + 4, y - 24, 22, 2); xPos += 21; } void Led3Taille3(int x, int y) { GM_Draw_Rectangle(x + 8, y - 104, 44, 4); // A GM_Draw_Rectangle(x + 4, y - 100, 52, 4); GM_Draw_Rectangle(x + 8, y - 96, 44, 4); GM_Draw_Rectangle(x + 48, y - 88, 4, 28); // B GM_Draw_Rectangle(x + 52, y - 92, 4, 36); GM_Draw_Rectangle(x + 56, y - 96, 4, 44); GM_Draw_Rectangle(x + 48, y - 40, 4, 28); // C GM_Draw_Rectangle(x + 52, y - 44, 4, 36); GM_Draw_Rectangle(x + 56, y - 48, 4, 44); GM_Draw_Rectangle(x + 8, y - 0, 44, 4); // D GM_Draw_Rectangle(x + 4, y - 4, 52, 4); GM_Draw_Rectangle(x + 8, y - 8, 44, 4); GM_Draw_Rectangle(x + 8, y - 56, 44, 4); // G GM_Draw_Rectangle(x + 4, y - 52, 52, 4); GM_Draw_Rectangle(x + 8, y - 48, 44, 4); } // // : --- : // : 4 : // : --- : // void Led4Taille2(int x, int y) { GM_Draw_Rectangle(x + 24, y - 44, 2, 14); // B GM_Draw_Rectangle(x + 26, y - 46, 2, 18); GM_Draw_Rectangle(x + 28, y - 48, 2, 22); GM_Draw_Rectangle(x + 24, y - 20, 2, 14); // C GM_Draw_Rectangle(x + 26, y - 22, 2, 18); GM_Draw_Rectangle(x + 28, y - 24, 1, 22); GM_Draw_Rectangle(x + 0, y - 48, 2, 22); // F GM_Draw_Rectangle(x + 2, y - 46, 2, 18); GM_Draw_Rectangle(x + 4, y - 44, 2, 14); GM_Draw_Rectangle(x + 4, y - 28, 22, 2); // G GM_Draw_Rectangle(x + 2, y - 26, 26, 2); GM_Draw_Rectangle(x + 4, y - 24, 22, 2); xPos += 21; } void Led4Taille3(int x, int y) { GM_Draw_Rectangle(x + 48, y - 88, 4, 28); // B GM_Draw_Rectangle(x + 52, y - 92, 4, 36); GM_Draw_Rectangle(x + 56, y - 96, 4, 44); GM_Draw_Rectangle(x + 48, y - 40, 4, 28); // C GM_Draw_Rectangle(x + 52, y - 44, 4, 36); GM_Draw_Rectangle(x + 56, y - 48, 4, 44); GM_Draw_Rectangle(x + 0, y - 96, 4, 44); // F GM_Draw_Rectangle(x + 4, y - 92, 4, 36); GM_Draw_Rectangle(x + 8, y - 88, 4, 28); GM_Draw_Rectangle(x + 8, y - 56, 44, 4); // G GM_Draw_Rectangle(x + 4, y - 52, 52, 4); GM_Draw_Rectangle(x + 8, y - 48, 44, 4); } // // : --- : // : 5 : // : --- : // void Led5Taille2(int x, int y) { GM_Draw_Rectangle(x + 4, y - 52, 22, 2); // A GM_Draw_Rectangle(x + 2, y - 50, 26, 2); GM_Draw_Rectangle(x + 4, y - 48, 22, 2); GM_Draw_Rectangle(x + 24, y - 20, 2, 14); // C GM_Draw_Rectangle(x + 26, y - 22, 2, 18); GM_Draw_Rectangle(x + 28, y - 24, 2, 22); GM_Draw_Rectangle(x + 4, y - 0, 22, 2); // D GM_Draw_Rectangle(x + 2, y - 2, 26, 2); GM_Draw_Rectangle(x + 4, y - 4, 22, 2); GM_Draw_Rectangle(x + 0, y - 48, 2, 22); // F GM_Draw_Rectangle(x + 2, y - 46, 2, 18); GM_Draw_Rectangle(x + 4, y - 44, 2, 14); GM_Draw_Rectangle(x + 4, y - 28, 22, 2); // G GM_Draw_Rectangle(x + 2, y - 26, 26, 2); GM_Draw_Rectangle(x + 4, y - 24, 22, 2); xPos += 21; } void Led5Taille3(int x, int y) { GM_Draw_Rectangle(x + 8, y - 104, 44, 4); // A GM_Draw_Rectangle(x + 4, y - 100, 52, 4); GM_Draw_Rectangle(x + 8, y - 96, 44, 4); GM_Draw_Rectangle(x + 48, y - 40, 4, 28); // C GM_Draw_Rectangle(x + 52, y - 44, 4, 36); GM_Draw_Rectangle(x + 56, y - 48, 4, 44); GM_Draw_Rectangle(x + 8, y - 0, 44, 4); // D GM_Draw_Rectangle(x + 4, y - 4, 52, 4); GM_Draw_Rectangle(x + 8, y - 8, 44, 4); GM_Draw_Rectangle(x + 0, y - 96, 4, 44); // F GM_Draw_Rectangle(x + 4, y - 92, 4, 36); GM_Draw_Rectangle(x + 8, y - 88, 4, 28); GM_Draw_Rectangle(x + 8, y - 56, 44, 4); // G GM_Draw_Rectangle(x + 4, y - 52, 52, 4); GM_Draw_Rectangle(x + 8, y - 48, 44, 4); } // // : --- : // : 6 : // : --- : // void Led6Taille2(int x, int y) { GM_Draw_Rectangle(x + 4, y - 52, 22, 2); // A GM_Draw_Rectangle(x + 2, y - 50, 26, 2); GM_Draw_Rectangle(x + 4, y - 48, 22, 2); GM_Draw_Rectangle(x + 24, y - 20, 2, 14); // C GM_Draw_Rectangle(x + 26, y - 22, 2, 18); GM_Draw_Rectangle(x + 28, y - 24, 2, 22); GM_Draw_Rectangle(x + 4, y - 0, 22, 2); // D GM_Draw_Rectangle(x + 2, y - 2, 26, 2); GM_Draw_Rectangle(x + 4, y - 4, 22, 2); GM_Draw_Rectangle(x + 0, y - 24, 2, 22); // E GM_Draw_Rectangle(x + 2, y - 22, 2, 18); GM_Draw_Rectangle(x + 4, y - 20, 2, 14); GM_Draw_Rectangle(x + 0, y - 48, 2, 22); // F GM_Draw_Rectangle(x + 2, y - 46, 2, 18); GM_Draw_Rectangle(x + 4, y - 44, 2, 14); GM_Draw_Rectangle(x + 4, y - 28, 22, 2); // G GM_Draw_Rectangle(x + 2, y - 26, 26, 2); GM_Draw_Rectangle(x + 4, y - 24, 22, 2); xPos += 21; } void Led6Taille3(int x, int y) { GM_Draw_Rectangle(x + 8, y - 104, 44, 4); // A GM_Draw_Rectangle(x + 4, y - 100, 52, 4); GM_Draw_Rectangle(x + 8, y - 96, 44, 4); GM_Draw_Rectangle(x + 48, y - 40, 4, 28); // C GM_Draw_Rectangle(x + 52, y - 44, 4, 36); GM_Draw_Rectangle(x + 56, y - 48, 4, 44); GM_Draw_Rectangle(x + 8, y - 0, 44, 4); // D GM_Draw_Rectangle(x + 4, y - 4, 52, 4); GM_Draw_Rectangle(x + 8, y - 8, 44, 4); GM_Draw_Rectangle(x + 0, y - 48, 4, 44); // E GM_Draw_Rectangle(x + 4, y - 44, 4, 36); GM_Draw_Rectangle(x + 8, y - 40, 4, 28); GM_Draw_Rectangle(x + 0, y - 96, 4, 44); // F GM_Draw_Rectangle(x + 4, y - 92, 4, 36); GM_Draw_Rectangle(x + 8, y - 88, 4, 28); GM_Draw_Rectangle(x + 8, y - 56, 44, 4); // G GM_Draw_Rectangle(x + 4, y - 52, 52, 4); GM_Draw_Rectangle(x + 8, y - 48, 44, 4); } // // : --- : // : 7 : // : --- : // void Led7Taille2(int x, int y) { GM_Draw_Rectangle(x + 4, y - 52, 22, 2); // A GM_Draw_Rectangle(x + 2, y - 50, 26, 2); GM_Draw_Rectangle(x + 4, y - 48, 22, 2); GM_Draw_Rectangle(x + 24, y - 44, 2, 14); // B GM_Draw_Rectangle(x + 26, y - 46, 2, 18); GM_Draw_Rectangle(x + 28, y - 48, 2, 22); GM_Draw_Rectangle(x + 24, y - 20, 2, 14); // C GM_Draw_Rectangle(x + 26, y - 22, 2, 18); GM_Draw_Rectangle(x + 28, y - 24, 2, 22); xPos += 21; } void Led7Taille3(int x, int y) { GM_Draw_Rectangle(x + 8, y - 104, 44, 4); // A GM_Draw_Rectangle(x + 4, y - 100, 52, 4); GM_Draw_Rectangle(x + 8, y - 96, 44, 4); GM_Draw_Rectangle(x + 48, y - 88, 4, 28); // B GM_Draw_Rectangle(x + 52, y - 92, 4, 36); GM_Draw_Rectangle(x + 56, y - 96, 4, 44); GM_Draw_Rectangle(x + 48, y - 40, 4, 28); // C GM_Draw_Rectangle(x + 52, y - 44, 4, 36); GM_Draw_Rectangle(x + 56, y - 48, 4, 44); } // // : --- : // : 8 : // : --- : // void Led8Taille2(int x, int y) { GM_Draw_Rectangle(x + 4, y - 52, 22, 2); // A GM_Draw_Rectangle(x + 2, y - 50, 26, 2); GM_Draw_Rectangle(x + 4, y - 48, 21, 2); GM_Draw_Rectangle(x + 24, y - 44, 2, 14); // B GM_Draw_Rectangle(x + 26, y - 46, 2, 18); GM_Draw_Rectangle(x + 28, y - 48, 2, 22); GM_Draw_Rectangle(x + 24, y - 20, 2, 14); // C GM_Draw_Rectangle(x + 26, y - 22, 2, 18); GM_Draw_Rectangle(x + 28, y - 24, 2, 22); GM_Draw_Rectangle(x + 4, y - 0, 22, 2); // D GM_Draw_Rectangle(x + 2, y - 2, 26, 2); GM_Draw_Rectangle(x + 4, y - 4, 22, 2); GM_Draw_Rectangle(x + 0, y - 24, 2, 22); // E GM_Draw_Rectangle(x + 2, y - 22, 2, 18); GM_Draw_Rectangle(x + 4, y - 20, 2, 14); GM_Draw_Rectangle(x + 0, y - 48, 2, 22); // F GM_Draw_Rectangle(x + 2, y - 46, 2, 18); GM_Draw_Rectangle(x + 4, y - 44, 2, 14); GM_Draw_Rectangle(x + 4, y - 28, 22, 2); // G GM_Draw_Rectangle(x + 2, y - 26, 26, 2); GM_Draw_Rectangle(x + 4, y - 24, 22, 2); xPos += 21; } void Led8Taille3(int x, int y) { GM_Draw_Rectangle(x + 8, y - 104, 44, 4); // A GM_Draw_Rectangle(x + 4, y - 100, 52, 4); GM_Draw_Rectangle(x + 8, y - 96, 44, 4); GM_Draw_Rectangle(x + 48, y - 88, 4, 28); // B GM_Draw_Rectangle(x + 52, y - 92, 4, 36); GM_Draw_Rectangle(x + 56, y - 96, 4, 44); GM_Draw_Rectangle(x + 48, y - 40, 4, 28); // C GM_Draw_Rectangle(x + 52, y - 44, 4, 36); GM_Draw_Rectangle(x + 56, y - 48, 4, 44); GM_Draw_Rectangle(x + 8, y - 0, 44, 4); // D GM_Draw_Rectangle(x + 4, y - 4, 52, 4); GM_Draw_Rectangle(x + 8, y - 8, 44, 4); GM_Draw_Rectangle(x + 0, y - 48, 4, 44); // E GM_Draw_Rectangle(x + 4, y - 44, 4, 36); GM_Draw_Rectangle(x + 8, y - 40, 4, 28); GM_Draw_Rectangle(x + 0, y - 96, 4, 44); // F GM_Draw_Rectangle(x + 4, y - 92, 4, 36); GM_Draw_Rectangle(x + 8, y - 88, 4, 28); GM_Draw_Rectangle(x + 8, y - 56, 44, 4); // G GM_Draw_Rectangle(x + 4, y - 52, 52, 4); GM_Draw_Rectangle(x + 8, y - 48, 44, 4); } // // : --- : // : 9 : // : --- : // void Led9Taille2(int x, int y) { GM_Draw_Rectangle(x + 4, y - 52, 22, 2); // A GM_Draw_Rectangle(x + 2, y - 50, 26, 2); GM_Draw_Rectangle(x + 4, y - 48, 22, 2); GM_Draw_Rectangle(x + 24, y - 44, 2, 14); // B GM_Draw_Rectangle(x + 26, y - 46, 2, 18); GM_Draw_Rectangle(x + 28, y - 48, 2, 22); GM_Draw_Rectangle(x + 24, y - 20, 2, 14); // C GM_Draw_Rectangle(x + 26, y - 22, 2, 18); GM_Draw_Rectangle(x + 28, y - 24, 2, 22); GM_Draw_Rectangle(x + 4, y - 0, 22, 2); // D GM_Draw_Rectangle(x + 2, y - 2, 26, 2); GM_Draw_Rectangle(x + 4, y - 4, 22, 2); GM_Draw_Rectangle(x + 0, y - 48, 2, 22); // F GM_Draw_Rectangle(x + 2, y - 46, 2, 18); GM_Draw_Rectangle(x + 4, y - 44, 2, 14); GM_Draw_Rectangle(x + 4, y - 28, 22, 2); // G GM_Draw_Rectangle(x + 2, y - 26, 26, 2); GM_Draw_Rectangle(x + 4, y - 24, 22, 2); xPos += 21; } void Led9Taille3(int x, int y) { GM_Draw_Rectangle(x + 8, y - 104, 44, 4); // A GM_Draw_Rectangle(x + 4, y - 100, 52, 4); GM_Draw_Rectangle(x + 8, y - 96, 44, 4); GM_Draw_Rectangle(x + 48, y - 88, 4, 28); // B GM_Draw_Rectangle(x + 52, y - 92, 4, 36); GM_Draw_Rectangle(x + 56, y - 96, 4, 44); GM_Draw_Rectangle(x + 48, y - 40, 4, 28); // C GM_Draw_Rectangle(x + 52, y - 44, 4, 36); GM_Draw_Rectangle(x + 56, y - 48, 4, 44); GM_Draw_Rectangle(x + 8, y - 0, 44, 4); // D GM_Draw_Rectangle(x + 4, y - 4, 52, 4); GM_Draw_Rectangle(x + 8, y - 8, 44, 4); GM_Draw_Rectangle(x + 0, y - 96, 4, 44); // F GM_Draw_Rectangle(x + 4, y - 92, 4, 36); GM_Draw_Rectangle(x + 8, y - 88, 4, 28); GM_Draw_Rectangle(x + 8, y - 56, 44, 4); // G GM_Draw_Rectangle(x + 4, y - 52, 52, 4); GM_Draw_Rectangle(x + 8, y - 48, 44, 4); } // // : --- : // : 0 : // : --- : // void Led0Taille2(int x, int y) { GM_Draw_Rectangle(x + 4, y - 52, 22, 2); // A GM_Draw_Rectangle(x + 0, y - 50, 26, 2); GM_Draw_Rectangle(x + 4, y - 48, 22, 2); GM_Draw_Rectangle(x + 24, y - 44, 2, 14); // B GM_Draw_Rectangle(x + 26, y - 46, 2, 18); GM_Draw_Rectangle(x + 28, y - 48, 2, 22); GM_Draw_Rectangle(x + 24, y - 20, 2, 14); // C GM_Draw_Rectangle(x + 26, y - 22, 2, 18); GM_Draw_Rectangle(x + 28, y - 24, 2, 22); GM_Draw_Rectangle(x + 4, y - 0, 22, 2); // D GM_Draw_Rectangle(x + 2, y - 2, 26, 2); GM_Draw_Rectangle(x + 4, y - 4, 22, 2); GM_Draw_Rectangle(x + 0, y - 24, 2, 22); // E GM_Draw_Rectangle(x + 2, y - 22, 2, 18); GM_Draw_Rectangle(x + 4, y - 20, 2, 14); GM_Draw_Rectangle(x + 0, y - 48, 2, 22); // F GM_Draw_Rectangle(x + 2, y - 46, 2, 18); GM_Draw_Rectangle(x + 4, y - 44, 2, 14); xPos += 21; } void Led0Taille3(int x, int y) { GM_Draw_Rectangle(x + 8, y - 104, 44, 4); // A GM_Draw_Rectangle(x + 4, y - 100, 52, 4); GM_Draw_Rectangle(x + 8, y - 96, 44, 4); GM_Draw_Rectangle(x + 48, y - 88, 4, 28); // B GM_Draw_Rectangle(x + 52, y - 92, 4, 36); GM_Draw_Rectangle(x + 56, y - 96, 4, 44); GM_Draw_Rectangle(x + 48, y - 40, 4, 28); // C GM_Draw_Rectangle(x + 52, y - 44, 4, 36); GM_Draw_Rectangle(x + 56, y - 48, 4, 44); GM_Draw_Rectangle(x + 8, y - 0, 44, 4); // D GM_Draw_Rectangle(x + 4, y - 4, 52, 4); GM_Draw_Rectangle(x + 8, y - 8, 44, 4); GM_Draw_Rectangle(x + 0, y - 48, 4, 44); // E GM_Draw_Rectangle(x + 4, y - 44, 4, 36); GM_Draw_Rectangle(x + 8, y - 40, 4, 28); GM_Draw_Rectangle(x + 0, y - 96, 4, 44); // F GM_Draw_Rectangle(x + 4, y - 92, 4, 36); GM_Draw_Rectangle(x + 8, y - 88, 4, 28); } // // : ---------------- : // : LA PONCTUATION : // : ---------------- : // // : -------- : // : Points : // : -------- : // void PointTaille2(int x, int y) { GM_Draw_Rectangle(x + 12, y - 0, 6, 4); } void PointTaille3(int x, int y) { GM_Draw_Rectangle(x + 24, y - 0, 12, 8); } // : ------------- : // : Deux points : // : ------------- : // void LedDeuxPointsTaille2(int x, int y) { GM_Draw_Rectangle(x + 12, y - 20, 6, 4); GM_Draw_Rectangle(x + 12, y - 34, 6, 4); } void LedDeuxPointsTaille3(int x, int y) { GM_Draw_Rectangle(x + 24, y - 40, 12, 8); GM_Draw_Rectangle(x + 24, y - 68, 12, 8); } // // : --------------- : // : Trait d'union : // : --------------- : // void TraitDUnionTaille1(int x, int y) { GM_Draw_Rectangle(x + 2, y - 10, 12, 2); xPos += 19; } void TraitDUnionTaille2(int x, int y) { GM_Draw_Rectangle(x + 4, y - 20, 24, 4); xPos += 38; } // // : ----------- : // : Apostrophe : // : ----------- : // void ApostropheTaille1(int x, int y) { GM_Draw_Rectangle(x + 2, y - 19, 4, 6); xPos += 8; } void ApostropheTaille2(int x, int y) { GM_Draw_Rectangle(x + 4, y - 38, 8, 12); xPos += 38; } // // : ------- : // : Espace : // : ------- : // void EspaceTaille1(int x, int y) { xPos += 10; } void EspaceTaille2(int x, int y) { xPos += 20; } // // : ----------------------------------------- : // : Affiche le cycle complet des informations : // : ----------------------------------------- : // void AfficheCycleComplet() { mylcd.Fill_Screen(0, 0, 0); // Fond noir digitalWrite(iMouvement, LOW); // A-t-on presse une touche cTouche = keypad.getKey(); if (cTouche != NO_KEY) // Une touche a ete pressee { if (cTouche == '*') // Reglages demandes { regleLaDateEtLHeure(); } } // // ----------------------- // Affiche l'heure en gros (debut du cycle d'affichage) // ----------------------- // litLaDateEtLHeure(); afficheHeureGros(); // // Delai de 3 secondes // for (t = 0; t <= 30; t++) { delay(100); digitalWrite(iMouvement, LOW); if ((t == 0) || (t == 15) || (t == 30)) AllumeLed(); } mylcd.Fill_Screen(0, 0, 0); // A-t-on presse une touche cTouche = keypad.getKey(); if (cTouche != NO_KEY) // Une touche a ete pressee { if (cTouche == '*') // Reglages demandes { regleLaDateEtLHeure(); } } // // ------------------------------------------- // Affiche l'heure en petit caracteres en haut // ------------------------------------------- // litLaDateEtLHeure(); afficheHeurePetit(); // // -------------------- // Affiche les messages // -------------------- // // Dans tous les cas, on affiche BONJOUR, BONSOIR ou BONNE NUIT... // if ((iHeures >= 0) && (iHeures < 12)) cMessage = "BONJOUR DT DESJOYAUX"; if ((iHeures >= 12) && (iHeures < 18)) cMessage = "BON APRES-MIDI DT DESJOYAUX"; if ((iHeures >= 18) && (iHeures < 22)) cMessage = "BONNE SOIREE DT DESJOYAUX"; if ((iHeures >= 22) && (iHeures <= 23)) cMessage = "BONNE NUIT DT DESJOYAUX"; CentreEtAfficheTaille1(cMessage, 135, 60, 102, 255); // // ---------------------- // Affiche la date en bas // ---------------------- // afficheDatePetit(); // // A-t-on presse une touche cTouche = keypad.getKey(); if (cTouche != NO_KEY) // Une touche a ete pressee { if (cTouche == '*') // Reglages demandes { regleLaDateEtLHeure(); } } // ---------------------- // Affiche la temperature // ---------------------- // afficheTemperature(); AllumeLed(); delay(1500); AllumeLed(); delay(1500); mylcd.Fill_Rect(0, 150, 480, 100, 0x0000); // A-t-on presse une touche cTouche = keypad.getKey(); if (cTouche != NO_KEY) // Une touche a ete pressee { if (cTouche == '*') // Reglages demandes { regleLaDateEtLHeure(); } } // // ------------------- // Affiche la pression // ------------------- // affichePression(); // // Delai de 5 secondes // for (t = 0; t <= 30; t++) { delay(100); digitalWrite(iMouvement, LOW); if ((t == 0) || (t == 15) || (t == 30)) AllumeLed(); } mylcd.Fill_Rect(0, 150, 480, 100, 0x0000); // A-t-on presse une touche cTouche = keypad.getKey(); if (cTouche != NO_KEY) // Une touche a ete pressee { if (cTouche == '*') // Reglages demandes { regleLaDateEtLHeure(); } } // // -------------------------------------------------- // Affiche l'heure en gros (fin du cycle d'affichage) // -------------------------------------------------- // mylcd.Fill_Screen(0, 0, 0); afficheHeureGros(); // // Delai de 3 secondes // for (t = 0; t <= 30; t++) { delay(100); digitalWrite(iMouvement, LOW); if ((t == 0) || (t == 15) || (t == 30)) AllumeLed(); } mylcd.Fill_Screen(0, 0, 0); // Fond noir } // : --------------------------- : // : Allume la led : // : --------------------------- : void AllumeLed() { digitalWrite(iLed, HIGH); // Allume led delay(250); digitalWrite(iLed, LOW); // Eteint led } // // : ------------------------ : // : Regle la date et l'heure : // : ------------------------ : // void regleLaDateEtLHeure() { // La date bSaisieCorrecte = false; while (bSaisieCorrecte == false) { iNombreTouche = 0; cTouche = ' '; cSaisieClavier = ""; mylcd.Fill_Screen(0, 0, 0); // Fond noir unsigned long start = micros(); mylcd.Set_Text_Size(3); mylcd.Set_Text_Back_colour(0, 0, 0); mylcd.Set_Text_colour(0, 153, 30); // Vert mylcd.Print_String(" DATE", 0, 60); mylcd.Set_Text_colour(255, 255, 0); // Jaune mylcd.Print_String(" ENTREZ SIX CHIFFRES", 0, 100); mylcd.Set_Text_colour(0, 0, 255); // Bleu mylcd.Print_String(" JJMMAA", 0, 140); mylcd.Set_Text_colour(255, 255, 0); // Jaune mylcd.Print_String(" EXEMPLE : 140821", 0, 180); mylcd.Set_Text_colour(255, 0, 0); // Rouge iNombreTouche = 0; cTouche = ' '; iJours = 0; iMois = 0; iAnnees = 0; while (iNombreTouche < 6) { cTouche = keypad.getKey(); if (cTouche != NO_KEY) { if ((cTouche >= '0') && (cTouche <= '9')) { mylcd.Print_String((String)cTouche, 180 + (iNombreTouche * 20), 220); iNombreTouche++; switch (iNombreTouche) { case 1: iJours = (((int)cTouche - 48) * 10); break; case 2: iJours = iJours + (((int)cTouche - 48) * 1); break; case 3: iMois = (((int)cTouche - 48) * 10); break; case 4: iMois = iMois + (((int)cTouche - 48) * 1); break; case 5: iAnnees = (((int)cTouche - 48) * 10); break; case 6: iAnnees = iAnnees + (((int)cTouche - 48) * 1); break; } cSaisieClavier = cSaisieClavier + cTouche; cTouche = ' '; delay(250); } } } mylcd.Fill_Screen(0, 0, 0); // Fond noir mylcd.Set_Text_colour(0, 153, 0); // Vert mylcd.Print_String(" DATE", 0, 60); mylcd.Set_Text_colour(255, 255, 0); // Jaune mylcd.Print_String(" VALEUR", 0, 100); mylcd.Set_Text_colour(255, 0, 0); // Rouge mylcd.Print_String(cSaisieClavier, 185, 140); mylcd.Set_Text_colour(255, 255, 0); // Jaune mylcd.Print_String(" DATE CORRECTE ?", 0, 180); mylcd.Print_String(" 1 OUI / 0 NON", 0, 220); iNombreTouche = 0; cTouche = ' '; mylcd.Set_Text_colour(255, 0, 0); // Rouge while (iNombreTouche < 1) { cTouche = keypad.getKey(); if (cTouche != NO_KEY) { if ((cTouche >= '0') && (cTouche <= '1')) { iNombreTouche++; if (cTouche == '1') { bSaisieCorrecte = true; cChaineDate = cSaisieClavier; mylcd.Print_String((String)cTouche, 230, 260); delay(250); } else // On recommence tout { mylcd.Print_String((String)cTouche, 230, 260); delay(250); } } } } } // L'heure bSaisieCorrecte = false; while (bSaisieCorrecte == false) { iNombreTouche = 0; cTouche = ' '; cSaisieClavier = ""; mylcd.Fill_Screen(0, 0, 0); // Fond noir unsigned long start = micros(); mylcd.Set_Text_Size(3); mylcd.Set_Text_colour(0, 153, 0); // Vert mylcd.Print_String("HEURE", 0, 20); mylcd.Set_Text_colour(255, 255, 0); // Jaune mylcd.Print_String("ENTREZ", 0, 40); mylcd.Print_String("QUATRE CHIFFRES", 0, 60); mylcd.Print_String("HHMM", 0, 80); mylcd.Print_String("EXEMPLES", 0, 80); mylcd.Print_String("1425 OU 0305", 0, 100); mylcd.Set_Text_colour(255, 0, 0); // Rouge iNombreTouche = 0; cTouche = ' '; iHeures = 0; iMinutes = 0; while (iNombreTouche < 4) { cTouche = keypad.getKey(); if (cTouche != NO_KEY) { if ((cTouche >= '0') && (cTouche <= '9')) { mylcd.Print_String((String)cTouche, iNombreTouche * 20, 120); iNombreTouche++; switch (iNombreTouche) { case 1: iHeures = (((int)cTouche - 48) * 10); break; case 2: iHeures = iHeures + (((int)cTouche - 48) * 1); break; case 3: iMinutes = (((int)cTouche - 48) * 10); break; case 4: iMinutes = iMinutes + (((int)cTouche - 48) * 1); break; } cSaisieClavier = cSaisieClavier + cTouche; cTouche = ' '; delay(250); } } } mylcd.Fill_Screen(0, 0, 0); // Fond noir mylcd.Set_Text_colour(0, 153, 0); // Vert mylcd.Print_String("HEURE", 0, 20); mylcd.Set_Text_colour(255, 255, 0); // Jaune mylcd.Print_String("VALEUR", 0, 20); mylcd.Set_Text_colour(255, 0, 0); // Rouge mylcd.Print_String(cSaisieClavier, 0, 40); mylcd.Set_Text_colour(255, 255, 0); // Jaune mylcd.Print_String("CORRECTE ?", 0, 60); mylcd.Print_String("1 OUI / 0 NON", 0, 80); iNombreTouche = 0; cTouche = ' '; mylcd.Set_Text_colour(255, 0, 0); // Rouge while (iNombreTouche < 1) { cTouche = keypad.getKey(); if (cTouche != NO_KEY) { if ((cTouche >= '0') && (cTouche <= '1')) { iNombreTouche++; if (cTouche == '1') { bSaisieCorrecte = true; cChaineHeure = cSaisieClavier; mylcd.Print_String((String)cTouche, iNombreTouche * 20, 120); delay(250); // On regle la date et l'heure RTC.adjust(DateTime((2000 + iAnnees), iMois, iJours, iHeures, iMinutes, 0)); mylcd.Fill_Screen(0, 0, 0); // Fond noir } else // On recommence tout { mylcd.Print_String((String)cTouche, iNombreTouche * 20, 120); delay(250); } } } } } }