Bonjour !
J’ai enfin fini mon projet !
Tout semble fonctionnel, à voir avec les bêta tests à venir semaine prochaine.
Cependant, je trouve que le “démarrage” est un peu long…
une fois l’arduino branché, il lui faut 7-8 sec pour démarrer le compte à rebours sur l’écran, le temps de “créer” toutes les variables et de tout initialiser je présume, mais ça m’embête un peu, puisque quand les joueurs ouvriront la mallette, ils ne verront rien sur l’écran pendant ce temps, puisque c’est l’ouverture de la mallette qui va actionner l’interrupteur qui alimente l’arduino.
De plus, j’ai une LED puissante qui sert d’“effet spécial” lorsque la bombe explose, qui pendant ce temps de démarrage, reste allumée, avant de s’éteindre une fois que la boucle est lancée.
N’y a-t-il pas moyen d’accélérer le démarrage ? J’avais pensé à déclarer une partie des variables dans la fonction loop(), mais je crains alors que ça ralentisse celle-ci si à chaque cycle les variables repassent à la moulinette.
Et pour la LED, je l’éteins dès la fonction setup(), mais ça ne change pas grand chose. Y’a-t-il un moyen de mettre une pin à 0 dès la déclaration des variables globales ?
Voilà ma déclaration de variables :
//######### LIBRAIRIES KEYPAD #############
#include <Key.h>
#include <Keypad.h>
//########## LIBRAIRIES ÉCRAN #############
#include <Wire.h>
#include "rgb_lcd.h"
//########## FONCTION ÉCRAN LCD ###########
rgb_lcd lcd;
//#########################################
//########## DEFINITION DES PINS ##########
//#########################################
const byte pinbuzzer = 6;
const byte pinmorse = 2;
const byte pinledexp = 1;
//################# FILS ##################
const byte pinfilrouge = 7;
const byte pinfiljaune = 8;
const byte pinfilvert = 9;
const byte pinfilgris = 10;
const byte pinfil1 = 11;
const byte pinfil2 = 12;
const byte pinfil3 = 13;
const byte pinfil4 = 14;
const byte pinfil5 = 15;
const char pinfil6 = A3; //ATTENTION, les pins analogiques sont définis sans les variables, ici juste pour mémoire
const char pinfil7 = A4; //ATTENTION, les pins analogiques sont définis sans les variables, ici juste pour mémoire
const char pinfil8 = A0; //ATTENTION, les pins analogiques sont définis sans les variables, ici juste pour mémoire
const char pinfil9 = A1; //ATTENTION, les pins analogiques sont définis sans les variables, ici juste pour mémoire
const char pinfil10 = A2; //ATTENTION, les pins analogiques sont définis sans les variables, ici juste pour mémoire
//########### CLAVIER MATRICIEL ###########
const byte C3 = 3; //declaration constante de broche
const byte C2 = 4; //declaration constante de broche
const byte C1 = 5; //declaration constante de broche
const byte L4 = 16; //declaration constante de broche
const byte L3 = 17; //declaration constante de broche
const byte L2 = 18; //declaration constante de broche
const byte L1 = 19; //declaration constante de broche
//#########################################
//######## VARIABLES FILS À COUPER ########
//#########################################
boolean bons_fils = 0;
boolean filrouge;
boolean filvert;
boolean filjaune;
boolean filgris;
//#########################################
//############ VARIABLES BUZZER ###########
//#########################################
//#########################################
//###### VARIABLES CLAVIER MATRICIEL ######
//#########################################
const byte LIGNES = 4; // 4 lignes
const byte COLONNES = 3; // 3 colonnes
char touches[LIGNES][COLONNES] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
//#### TABLEAU DE LIGNES ET COLONNES ####
byte BrochesLignes[LIGNES] = {L1, L2, L3, L4}; //connexions utilisées pour les broches de lignes du clavier
byte BrochesColonnes[COLONNES] = {C1, C2, C3}; //connexions utilisées pour les broches de colonnes du clavier
char touche; // variable de stockage valeur touche appuyée
Keypad clavier = Keypad( makeKeymap(touches), BrochesLignes, BrochesColonnes, LIGNES, COLONNES );
//#########################################
//####### VARIABLES COMPTE À REBOURS ######
//#########################################
const int temps_restant = 300; // temps restant en secondes
byte minutes;
byte secondes;
boolean acceleration = 0;
int tps_acceleration; // temps à partir duquel a lieu l'accélération
char message[16] = ""; // variable de concaténation de message écran
//#########################################
//########## VARIABLE FIN DE JEU ##########
//#########################################
boolean game_over = 0;
//#########################################
//######### VARIABLES CODE CLAVIER ########
//#########################################
byte nb_touche = 0; //nombre de touches tapées
const char code1 = '3';
const char code2 = '3';
const char code3 = '3';
const char code4 = '3';
char touche1; //première touche tapée
char touche2; //deuxième touche tapée
char touche3; //troisième touche tapée
char touche4; //quatrième touche tapée
byte nb_essais = 3;
//#########################################
//########## VARIABLES CODE MORSE #########
//#########################################
const long intervalle = 500;
boolean debut_morse = 0;
unsigned long revolution = 0;
long temps_revolution = 135 * intervalle;
Je peux coller le reste demon code au besoin, mais il est quand même assez long (sans doute manque-t-il cruellement d’optimisation aussi ^^), et ce n’est peut-être pas nécessaire dans un premier temps, dites-moi si vous en avez besoin.
D’avance merci de vos éclairages 