Aucun fichier de ce nom existe.
/* inclusion de la librairie */
//*******************************// //*******************************// //** DECLARATION DES VARIABLES **// //*******************************// //*******************************//
// Pour le module du joueur 1
// Pour le module du joueur 2
// Module du joueur 1 TM1637Display TM001(CLK1, DIO1); // Module du joueur 2 TM1637Display TM002(CLK2, DIO2);
// LA LED Blanche Pour le joueur 1 const int J1 = 9; // broche 9 du micro-contrôleur // LA LED Blanche Pour le joueur 2 const int J2 = 10; // broche 10 du micro-contrôleur
// LA LED Verte R1 const int R1 = 11; // broche 11 du micro-contrôleur // LA LED Rouge R2 const int R2 = 12; // broche 12 du micro-contrôleur
// Attribution int pinBouton; int pinBouton_deux; int pinBouton_trois;
// 300 seconde correspond à 5 minutes int joueur_un_seconde = 300; int joueur_deux_seconde = 300;
// Affichage du temps de l'horloge sur les afficheurs 7 segments à 4 digits pour le joueur 1 int joueur_un_minute_dizaine; int joueur_un_minute_unite; int joueur_un_seconde_dizaine; int joueur_un_seconde_unite;
int joueur_un_minute_total; int joueur_un_seconde_total;
// Affichage du temps de l'horloge sur les afficheurs 7 segments à 4 digits pour le joueur 2 int joueur_deux_minute_dizaine; int joueur_deux_minute_unite; int joueur_deux_seconde_dizaine; int joueur_deux_seconde_unite;
int joueur_deux_minute_total; int joueur_deux_seconde_total;
// Etat des 3 boutons : bouton 1,2 et 3 boolean etatBouton; boolean etatBouton_deux; boolean etatBouton_trois;
//*******************************// //*******************************// //************ SETUP ************// //*******************************// //*******************************//
void setup() {
// LED du joueur n°1 pinMode(J1, OUTPUT); //L1 est une broche de sortie // LED du joueur n°2 pinMode(J2, OUTPUT); //L2 est une broche de sortie // LED rouge du mode de réglage pinMode(R1, OUTPUT); //R1 est une broche de sortie // LED verte du mode partie pinMode(R2, OUTPUT); //R2 est une broche de sortie
//bouton changement joueur pinBouton=6; pinMode(pinBouton,INPUT_PULLUP);
//bouton 5 Minute plus pinBouton_deux=7; pinMode(pinBouton_deux,INPUT_PULLUP);
//bouton réglage pinBouton_trois=8; pinMode(pinBouton_trois,INPUT_PULLUP);
// Intensité des afficheurs TM001.setBrightness(0x0f); TM002.setBrightness(0x0f);
//*******************************// //*******************************// //INITIALISATION PREMIER COMPTEUR// //*******************************// //*******************************// uint8_t segto_000; uint8_t segto_001; uint8_t segto_002; uint8_t segto_003; // 0x80 correspond à la colonne centrale de l'afficheur pour faire la différence entre les minutes et les secondes // Attribuer 0 dans la première variable segto_000 = 0x80 | TM001.encodeDigit(0); // Attribuer 5 dans la deuxième variable segto_001 = 0x80 | TM001.encodeDigit(5); // Afficher 0 dans la troisième variable segto_002 = 0x80 | TM001.encodeDigit(0); // Afficher 0 dans la quatrième variable segto_003 = 0x80 | TM001.encodeDigit(0);
// afficher les chiffres sur les sept segments à partir des variables // Afficher 0 pour le premier digit à partir de la variable TM001.setSegments(&segto_000, 1, 0); // Afficher 5 pour le deuxième digit à partir de la variable TM001.setSegments(&segto_001, 1, 1); // Afficher 0 pour le troisième digit à partir de la variable TM001.setSegments(&segto_002, 1, 2); // Afficher 0 pour le quatrième digit à partir de la variable TM001.setSegments(&segto_003, 1, 3);
//*******************************// //*******************************// //INITIALISATION DEUXIEME COMPTEUR// //*******************************// //*******************************//
uint8_t segto_004; uint8_t segto_005; uint8_t segto_006; uint8_t segto_007; segto_004 = 0x80 | TM002.encodeDigit(0); segto_005 = 0x80 | TM002.encodeDigit(5); segto_006 = 0x80 | TM002.encodeDigit(0); segto_007 = 0x80 | TM002.encodeDigit(0); TM002.setSegments(&segto_004, 1, 0); TM002.setSegments(&segto_005, 1, 1); TM002.setSegments(&segto_006, 1, 2); TM002.setSegments(&segto_007, 1, 3);
}
//*******************************// //*******************************// //************ LOOP *************// //*******************************// //*******************************//
void loop() {
//-------------------------------------------// //-------------------------------------------// //------------ REGLAGE HORLOGE -------------// //-------------------------------------------// //-------------------------------------------// // Bouton TROIS : MODE réglage etatBouton_trois=digitalRead(pinBouton_trois); while (etatBouton_trois == 1) { // On allume la LED R1, qui est la LED Rouge digitalWrite(R1, HIGH); // On eteind la LED R2, qui est la LED Verte digitalWrite(R2, LOW); etatBouton=digitalRead(pinBouton); if (etatBouton == 1) { // Quand le bouton 1 est en position ON, On allume la LED du joueur 1 digitalWrite(J1, HIGH); // Quand le bouton 1 est en position ON, On eteind la LED du joueur 2 digitalWrite(J2, LOW); } else { // Quand le bouton 1 est en position OFF, On eteind la LED du joueur 1 digitalWrite(J1, LOW); // Quand le bouton 1 est en position OFF, On allume la LED du joueur 1 digitalWrite(J2, HIGH); }
// Le bouton 2 correspond au réglage de l'horloge, a chaque appui sur le bouton, on ajoute 5 minutes de jeux etatBouton_deux=digitalRead(pinBouton_deux); if (etatBouton_deux == 0) { //On attend 750 milli-seconde (DELAY) delay (750); // Pour les réglages, On ajoute 300 secondes, ce qui correspond à 5 minutes joueur_un_seconde = joueur_un_seconde + 300; joueur_deux_seconde = joueur_deux_seconde + 300; horloge_un(joueur_un_seconde); horloge_deux(joueur_deux_seconde); } etatBouton_trois=digitalRead(pinBouton_trois); }
//-------------------------------------------// //-------------------------------------------// //------- MODE PARTIE EN COURS -------------// //-------------------------------------------// //-------------------------------------------// // etatBouton_trois=digitalRead(pinBouton_trois); // Quand le bouton 3 est à l'état 0, on passe en mode partie, la LED passe au vert (on allume la LED verte et on éteint la LED rouge) while (etatBouton_trois == 0) { // On eteind la LED R1, qui est la LED Rouge digitalWrite(R1, LOW); // On allume la LED R2, qui est la LED Verte digitalWrite(R2, HIGH);
// JOUEUR 1 etatBouton=digitalRead(pinBouton); while (etatBouton == 1) { // On allume la LED J1, qui est la LED Blanche du joueur n°1 digitalWrite(J1, HIGH); // On eteind la LED J2, qui est la LED Blanche du joueur n°2 digitalWrite(J2, LOW); etatBouton=digitalRead(pinBouton);
// Si le temps est égal à 0 alors on stoppe le compteur à 0 // Sinon, on compte le temps if(joueur_un_seconde == 0) { horloge_un(0); etatBouton_trois=digitalRead(pinBouton_trois); // Si le bouton réglage est à 1, on initialise le compteur à 5 minutes et on quitte la fonction PARTIE pour se mettre en mode REGLAGE if(etatBouton_trois == 1) { joueur_un_seconde = 300; joueur_deux_seconde = 300; horloge_un(joueur_un_seconde); horloge_deux(joueur_deux_seconde); break; }; } else { // On lance le compte à rebours joueur_un_seconde = joueur_un_seconde -1; // On utilise la fonction horloge_un, elle est défini à la fin du fichier horloge_un(joueur_un_seconde); // on laisse passer 1 seconde delay (1000); // Lorsque on quitte le mode PARTIE, on rentre à nouveau dans le mode REGLAGE etatBouton_trois=digitalRead(pinBouton_trois); if(etatBouton_trois == 1) { // Lors du passage en mode réglage on initialise de nouveau l'horloge à 5 minutes (300 secondes) et on quitte la fonction PARTIE pour se mettre en mode REGLAGE joueur_un_seconde = 300; joueur_deux_seconde = 300; horloge_un(joueur_un_seconde); horloge_deux(joueur_deux_seconde); break; }; }
} // JOUEUR 2 etatBouton=digitalRead(pinBouton); while (etatBouton == 0) { // On eteind la LED J1, qui est la LED Blanche du joueur n°1 digitalWrite(J1, LOW); // On allume la LED J2, qui est la LED Blanche du joueur n°2 digitalWrite(J2, HIGH);
etatBouton=digitalRead(pinBouton); // Si le temps est égal à 0 alors on stoppe le compteur à 0 // Sinon, on compte le temps if(joueur_deux_seconde == 0) { horloge_deux(0); etatBouton_trois=digitalRead(pinBouton_trois); // Si le bouton réglage est à 1, on initialise le compteur à 5 minutes et on quitte la fonction PARTIE pour se mettre en mode REGLAGE if(etatBouton_trois == 1) { joueur_un_seconde = 300; joueur_deux_seconde = 300; horloge_un(joueur_un_seconde); horloge_deux(joueur_deux_seconde); // Avec break on quitte la fonction PARTIE pour se mettre en mode REGLAGE break; }; } else { // On lance le compte à rebours joueur_deux_seconde = joueur_deux_seconde -1; // On utilise la fonction horloge_deux, elle est défini à la fin du fichier horloge_deux(joueur_deux_seconde); // on laisse passer 1 seconde delay (1000);
// Lorsque on quitte le mode PARTIE, on rentre à nouveau dans le mode REGLAGE etatBouton_trois=digitalRead(pinBouton_trois); if(etatBouton_trois == 1) { // Lors du passage en mode réglage on initialise de nouveau l'horloge à 5 minutes (300 secondes) et on quitte la fonction PARTIE pour se mettre en mode REGLAGE joueur_un_seconde = 300; joueur_deux_seconde = 300; horloge_un(joueur_un_seconde); horloge_deux(joueur_deux_seconde); // Avec break on quitte la fonction PARTIE pour se mettre en mode REGLAGE break; }; }
} }
}
// FIN DE LA FONCTION LOOP
//-------------------------------------------// //-------------------------------------------// //-------------- LES FONCTIONS -------------// //-------------------------------------------// //-------------------------------------------//
void horloge_un(int joueur_un_seconde) {
// On extrait les minutes en divisant par soixante joueur_un_minute_total = joueur_un_seconde / 60;
// On extrait la dizaine des minutes en divisant par 10 joueur_un_minute_dizaine = joueur_un_minute_total / 10; // On extrait les unités des minutes avec un modulo 10 joueur_un_minute_unite = joueur_un_minute_total % 10; // On extrait les secondes en divisant par soixante joueur_un_seconde_total = joueur_un_seconde % 60;
// On extrait la dizaine des secondes en divisant par 10 joueur_un_seconde_dizaine = joueur_un_seconde_total / 10;
// On extrait les unités des secondes avec un modulo 10 joueur_un_seconde_unite = joueur_un_seconde_total % 10;
// Déclaration des variables uint8_t segto_000; uint8_t segto_001; uint8_t segto_002; uint8_t segto_003; // 0x80 correspond à la colonne du milieu segto_000 = 0x80 | TM001.encodeDigit(joueur_un_minute_dizaine); segto_001 = 0x80 | TM001.encodeDigit(joueur_un_minute_unite); segto_002 = 0x80 | TM001.encodeDigit(joueur_un_seconde_dizaine); segto_003 = 0x80 | TM001.encodeDigit(joueur_un_seconde_unite);
// affichage du temps passé sur les 4 digits du module 1 : TM001 TM001.setSegments(&segto_000, 1, 0); TM001.setSegments(&segto_001, 1, 1); TM001.setSegments(&segto_002, 1, 2); TM001.setSegments(&segto_003, 1, 3);
}
void horloge_deux(int joueur_deux_seconde) {
// On extrait les minutes en divisant par soixante joueur_deux_minute_total = joueur_deux_seconde / 60; // On extrait la dizaine des minutes en divisant par 10 joueur_deux_minute_dizaine = joueur_deux_minute_total / 10; // On extrait les unités des minutes avec un modulo 10 joueur_deux_minute_unite = joueur_deux_minute_total % 10; // On extrait les secondes en divisant par soixante joueur_deux_seconde_total = joueur_deux_seconde % 60;
// On extrait la dizaine des secondes en divisant par 10 joueur_deux_seconde_dizaine = joueur_deux_seconde_total / 10; // On extrait les unités des secondes avec un modulo 10 joueur_deux_seconde_unite = joueur_deux_seconde_total % 10;
// Déclaration des variables uint8_t segto_004; uint8_t segto_005; uint8_t segto_006; uint8_t segto_007; // 0x80 correspond à la colonne du milieu segto_004 = 0x80 | TM002.encodeDigit(joueur_deux_minute_dizaine); segto_005 = 0x80 | TM002.encodeDigit(joueur_deux_minute_unite); segto_006 = 0x80 | TM002.encodeDigit(joueur_deux_seconde_dizaine); segto_007 = 0x80 | TM002.encodeDigit(joueur_deux_seconde_unite);
// affichage du temps passé sur les 4 digits du module 2 : TM002 TM002.setSegments(&segto_004, 1, 0); TM002.setSegments(&segto_005, 1, 1); TM002.setSegments(&segto_006, 1, 2); TM002.setSegments(&segto_007, 1, 3);
}
Aucune page n'utilise ce fichier.
Vous avez entré un nom de page invalide, avec un ou plusieurs caractères suivants :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #