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 :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #