Horloge digitale
Révision datée du 18 janvier 2019 à 11:46 par Antonydbzh (discussion | contributions)
///////////////////////////////// // // // Afficher des Pictos // // Sur une matrice de LED 8X8 // // // ///////////////////////////////// /////////////////////////////////////////////////////////////////// // BROCHAGE // // _________________ // // / D1 mini \ // // - |[ ]RST TX[ ]| - // // - |[ ]A0 RX[ ]| - // // - |[ ]D0 D1[ ]| - // // Din - |[X]D5 D2[ ]| - // // CLK - |[X]D6 D3[ ]| - // // CS - |[X]D7 D4[ ]| LED_BUILTIN // // - |[ ]D8 GND[X]| - // // - |[X]3V3 . 5V[ ]| - // // | +---+ | // // |_______|USB|_______| // /////////////////////////////////////////////////////////////////// /* Matériel : - un Wemos - une matrice de LED MAX7219. - Quelques cable dupont tutoriel disponible sur : http://wikidebrouillard.dokit.io/wiki/Afficher_des_pictos_sur_une_matrice_de_led_8X8 Programme inspiré des exemples de la bibliothèque "LedControl.h" ___ / ___ \ |_| | | /_/ _ ___ _ |_| |___|_| |_ ___|_ _| |___| |_| Les petits Débrouillards - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/ Antony Le Goïc-Auffret */ #include "LedControl.h" #define CS_broche D7 #define CLK_broche D6 #define DIN_broche D5 LedControl lc=LedControl(DIN_broche,CLK_broche,CS_broche,4); // On défini un ensemble de matrice de led "lc". // Dans l'ordre, on branche les broches Din sur la broche D5, CLK sur D6, CS sur D7. // le dernier chiffre indique le nombre de matrice de LED (il peut y en avoir jusqu'à 8). // ici on n'en a qu'une. unsigned long dureeImage=200; // Durée d'affichage de chaque image // Pour créer une image, il faut allumer ou éteindre certaines led // Les valeurs qui gèrent l'allumage de chaque LED sont dans un tableau (0 = led éteinte, 1 = Led Allulmée). byte coeurPetit[] = //le tableau contient 8 octet (byte), chaque octet code une ligne de la matrice de led { B00000000, B00110110, B01111111, B01111111, B00111110, B00011100, B00001000, B00000000 }; byte coeur[] = { B01100110, B11111111, B11111111, B11111111, B01111110, B00111100, B00011000, B00000000 }; byte coeurGros[] = { B11101110, B11111111, B11111111, B11111111, B11111110, B01111100, B00111000, B00010000 }; void setup() { lc.shutdown(0,false); // Allule la matrice de led lc.setIntensity(0,1); // règle la luminosité (de 1 à 10) lc.clearDisplay(0); // efface la matrice (éteint toute les les led). } // Prendre les valeurs dans les tableaux et les afficher void battement1() { for (int i = 0; i < 8; i++) { lc.setRow(0,i,coeurPetit[i]); } } void battement2() { for (int i = 0; i < 8; i++) { lc.setRow(0,i,coeur[i]); } } void battement3() { for (int i = 0; i < 8; i++) { lc.setRow(0,i,coeurGros[i]); } } void loop() { battement1(); // on affiche la première image du petit coeur. delay(dureeImage); // pendant une durée de dureeImage millisecondes battement2(); // on affiche la seconde image delay(dureeImage); // etc... battement3(); delay(dureeImage); battement2(); delay(dureeImage); }