Projet Fini

Dependencies:   F746_GUI mbed

Committer:
Pmpolo
Date:
Tue Jun 22 12:16:00 2021 +0000
Revision:
1:288f026ab14b
Parent:
0:86c9bfb762cf
fini a 100%;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Pmpolo 0:86c9bfb762cf 1
Pmpolo 0:86c9bfb762cf 2 #include "mbed.h"
Pmpolo 0:86c9bfb762cf 3 #include "F746_GUI.hpp"
Pmpolo 0:86c9bfb762cf 4
Pmpolo 0:86c9bfb762cf 5 DigitalOut dirPin(D2); // pin de direction défini sur D2
Pmpolo 0:86c9bfb762cf 6 DigitalOut stepPin(D3); // pin de pas défini sur D3
Pmpolo 0:86c9bfb762cf 7
Pmpolo 0:86c9bfb762cf 8 int main()
Pmpolo 0:86c9bfb762cf 9 {
Pmpolo 0:86c9bfb762cf 10 // init variables lisant les valeurs de quel bouton est appuyé dans chaque groupe
Pmpolo 0:86c9bfb762cf 11 int etat = 0, NumBoutonGrpRotation=-1, NumBoutonGrpVitesse=-1, NumBoutonGrpPlay=-1;
Pmpolo 0:86c9bfb762cf 12
Pmpolo 0:86c9bfb762cf 13 // Titre
Pmpolo 0:86c9bfb762cf 14 Label Titre(240, 10, "", Label::CENTER, Font20);
Pmpolo 0:86c9bfb762cf 15
Pmpolo 0:86c9bfb762cf 16 ////// Init des groupes de boutons //////
Pmpolo 0:86c9bfb762cf 17
Pmpolo 0:86c9bfb762cf 18 // Groupe de bouton du sens de rotation (2 boutons)
Pmpolo 0:86c9bfb762cf 19 Label Rotation(240, 40, "Sens de rotation", Label::CENTER, Font16);
Pmpolo 0:86c9bfb762cf 20 ButtonGroup GrpRotation(145, 60, 90, 35, 2,(string[]) {
Pmpolo 0:86c9bfb762cf 21 "Horaire", "Anti-Horaire"
Pmpolo 0:86c9bfb762cf 22 }, 2, 2, 2, 1,
Pmpolo 0:86c9bfb762cf 23 Font12, LCD_COLOR_WHITE, 0xFFFEAAAA, 0xFFFF0000, 0xFFFF0000);
Pmpolo 0:86c9bfb762cf 24 GrpRotation.ActivateAll(); // activation de tous les boutons
Pmpolo 0:86c9bfb762cf 25
Pmpolo 0:86c9bfb762cf 26 // Groupe de bouton de la vitesse de rotation (3 boutons)
Pmpolo 0:86c9bfb762cf 27 Label TitreVitesse(240, 120, "Vitesse de rotation", Label::CENTER, Font16);
Pmpolo 0:86c9bfb762cf 28 ButtonGroup GrpVitesse(100, 140, 90, 35, 3,(string[]) {
Pmpolo 0:86c9bfb762cf 29 "650", "650-800", "800"
Pmpolo 0:86c9bfb762cf 30 }, 2, 2, 3, 1,
Pmpolo 0:86c9bfb762cf 31 Font12, LCD_COLOR_BLACK, 0xFFFE0000, 0xFFFFFF00, 0xFFFFFF00);
Pmpolo 0:86c9bfb762cf 32 GrpVitesse.InactivateAll();// désactivation de tous les boutons
Pmpolo 0:86c9bfb762cf 33
Pmpolo 0:86c9bfb762cf 34 // Bouton Stop
Pmpolo 0:86c9bfb762cf 35 Button BTStop(215, 200, 50, 35, "Stop",
Pmpolo 0:86c9bfb762cf 36 Font12, LCD_COLOR_BLACK, 0xFFFE0000, 0xFFFFFF00, 0xFFFFFF00);
Pmpolo 0:86c9bfb762cf 37 BTStop.Inactivate();// désactivation du bouton
Pmpolo 0:86c9bfb762cf 38
Pmpolo 0:86c9bfb762cf 39
Pmpolo 0:86c9bfb762cf 40 while(1) {
Pmpolo 0:86c9bfb762cf 41 BSP_LCD_SetBackColor(LCD_COLOR_BLACK);
Pmpolo 0:86c9bfb762cf 42
Pmpolo 0:86c9bfb762cf 43 // lecture du numéro du bouton appuyé
Pmpolo 0:86c9bfb762cf 44 NumBoutonGrpRotation=GrpRotation.GetTouchedNumber();
Pmpolo 0:86c9bfb762cf 45 NumBoutonGrpVitesse=GrpVitesse.GetTouchedNumber();
Pmpolo 0:86c9bfb762cf 46
Pmpolo 0:86c9bfb762cf 47 switch(etat) {
Pmpolo 0:86c9bfb762cf 48
Pmpolo 0:86c9bfb762cf 49 case 0: //initialisation générale
Pmpolo 0:86c9bfb762cf 50 GrpVitesse.InactivateAll(); // désactivation du choix de la vitesse
Pmpolo 0:86c9bfb762cf 51 if (NumBoutonGrpRotation == 0) etat = 1; // si bouton 0 appuyé (horaire), go to case 1
Pmpolo 0:86c9bfb762cf 52 else if (NumBoutonGrpRotation == 1) etat = 2; // si bouton 1 appuyé (antihoraire), go to case 2
Pmpolo 0:86c9bfb762cf 53 break;
Pmpolo 0:86c9bfb762cf 54
Pmpolo 0:86c9bfb762cf 55 case 1: // sens Horaire
Pmpolo 0:86c9bfb762cf 56 GrpVitesse.ActivateAll(); // activation des boutons pour choix de la vitesse
Pmpolo 1:288f026ab14b 57 GrpRotation.Inactivate(0); // désactivation du bouton choisi
Pmpolo 0:86c9bfb762cf 58 dirPin = 1; // définition du sens de rotation en sens horaire
Pmpolo 0:86c9bfb762cf 59 etat = 3; // go to case 3 pour choix de la vitesse
Pmpolo 0:86c9bfb762cf 60 break;
Pmpolo 0:86c9bfb762cf 61
Pmpolo 0:86c9bfb762cf 62 case 2: // sens Anti horaire
Pmpolo 0:86c9bfb762cf 63 GrpVitesse.ActivateAll(); // activation des boutons pour choix de la vitesse
Pmpolo 1:288f026ab14b 64 GrpRotation.Inactivate(1); // désactivation du bouton choisi
Pmpolo 0:86c9bfb762cf 65 dirPin = 0; // définition du sens de rotation en sens antihoraire
Pmpolo 0:86c9bfb762cf 66 etat = 3; // go to case 3 pour choix de la vitesse
Pmpolo 0:86c9bfb762cf 67 break;
Pmpolo 0:86c9bfb762cf 68
Pmpolo 0:86c9bfb762cf 69 case 3: // choix vitesse selon le bouton appuyé
Pmpolo 0:86c9bfb762cf 70 if (NumBoutonGrpVitesse == 0) etat = 4; //si bouton 0 appuyé (650) go to case 4
Pmpolo 0:86c9bfb762cf 71 else if (NumBoutonGrpVitesse == 1) etat = 5; //si bouton 1 appuyé (650-800) go to case 5
Pmpolo 0:86c9bfb762cf 72 else if (NumBoutonGrpVitesse == 2) etat = 6; //si bouton 0 appuyé (800) go to case 6
Pmpolo 0:86c9bfb762cf 73 break;
Pmpolo 0:86c9bfb762cf 74
Pmpolo 0:86c9bfb762cf 75 case 4: // 650 TPD
Pmpolo 0:86c9bfb762cf 76 //3 step par seconde
Pmpolo 0:86c9bfb762cf 77 GrpVitesse.InactivateAll(); // désactivation choix de la vitesse
Pmpolo 0:86c9bfb762cf 78 GrpRotation.InactivateAll(); // désactivation choix du sens de rotation
Pmpolo 0:86c9bfb762cf 79 BTStop.Activate(); // activation du bouton stop
Pmpolo 0:86c9bfb762cf 80
Pmpolo 0:86c9bfb762cf 81 // lancement du cycle de rotation du remontoir
Pmpolo 0:86c9bfb762cf 82 for(int nb_tour=0; nb_tour < 86400; nb_tour++){ // nb de seconde par jour
Pmpolo 0:86c9bfb762cf 83 for(int x = 0; x < 3; x++){ //3 step par seconde
Pmpolo 0:86c9bfb762cf 84 stepPin=1;
Pmpolo 0:86c9bfb762cf 85 wait_ms(166); // ce qui définit la vitesse de 650 TPD
Pmpolo 0:86c9bfb762cf 86 stepPin=0;
Pmpolo 0:86c9bfb762cf 87 wait_ms(166); // ce qui définit la vitesse de 650 TPD
Pmpolo 0:86c9bfb762cf 88
Pmpolo 0:86c9bfb762cf 89 if(BTStop.Touched()==1){ // si bouton stop appuyé
Pmpolo 0:86c9bfb762cf 90 x=4; // stop du 2e for
Pmpolo 0:86c9bfb762cf 91 nb_tour = 86401; // stop du 1er for
Pmpolo 0:86c9bfb762cf 92 GrpRotation.ActivateAll(); // réactivation choix sens de rotation
Pmpolo 0:86c9bfb762cf 93 BTStop.Inactivate(); // désactivation du bouton stop car plus besoin à l'init
Pmpolo 0:86c9bfb762cf 94 etat = 0; // go to case init
Pmpolo 0:86c9bfb762cf 95 }
Pmpolo 0:86c9bfb762cf 96 }
Pmpolo 0:86c9bfb762cf 97 etat = 0; // si le cycle est fini, go to case init
Pmpolo 0:86c9bfb762cf 98 }
Pmpolo 0:86c9bfb762cf 99 break;
Pmpolo 0:86c9bfb762cf 100
Pmpolo 0:86c9bfb762cf 101 case 5: //650-800
Pmpolo 0:86c9bfb762cf 102 //3 step par seconde
Pmpolo 0:86c9bfb762cf 103 GrpVitesse.InactivateAll(); // désactivation choix de la vitesse
Pmpolo 0:86c9bfb762cf 104 GrpRotation.InactivateAll(); // désactivation choix du sens de rotation
Pmpolo 0:86c9bfb762cf 105 BTStop.Activate(); // activation du bouton stop
Pmpolo 0:86c9bfb762cf 106
Pmpolo 0:86c9bfb762cf 107 // lancement du cycle de rotation du remontoir
Pmpolo 0:86c9bfb762cf 108 for(int nb_tour=0; nb_tour < 43200; nb_tour++){ // nb de seconde par jour
Pmpolo 0:86c9bfb762cf 109 for(int x = 0; x < 3; x++){ //3 step par seconde
Pmpolo 0:86c9bfb762cf 110 stepPin=1;
Pmpolo 0:86c9bfb762cf 111 wait_ms(166);
Pmpolo 0:86c9bfb762cf 112 stepPin=0;
Pmpolo 0:86c9bfb762cf 113 wait_ms(166);
Pmpolo 0:86c9bfb762cf 114 if(BTStop.Touched()==1){ // si bouton stop appuyé
Pmpolo 0:86c9bfb762cf 115 x=4; // stop du 2e for
Pmpolo 0:86c9bfb762cf 116 nb_tour = 86401; // stop du 1er for
Pmpolo 0:86c9bfb762cf 117 GrpRotation.ActivateAll(); // réactivation choix sens de rotation
Pmpolo 0:86c9bfb762cf 118 BTStop.Inactivate(); // désactivation du bouton stop car plus besoin à l'init
Pmpolo 0:86c9bfb762cf 119 etat = 0; // go to case init
Pmpolo 0:86c9bfb762cf 120 }
Pmpolo 0:86c9bfb762cf 121 }
Pmpolo 0:86c9bfb762cf 122
Pmpolo 0:86c9bfb762cf 123 for(int nb_tour=0; nb_tour < 43200; nb_tour++){ // nb de seconde par jour
Pmpolo 0:86c9bfb762cf 124 for(int x = 0; x < 3; x++){ //3 step par seconde
Pmpolo 0:86c9bfb762cf 125 stepPin=1;
Pmpolo 0:86c9bfb762cf 126 wait_ms(135);
Pmpolo 0:86c9bfb762cf 127 stepPin=0;
Pmpolo 0:86c9bfb762cf 128 wait_ms(135);
Pmpolo 0:86c9bfb762cf 129 if(BTStop.Touched()==1){ // si bouton stop appuyé
Pmpolo 0:86c9bfb762cf 130 x=4; // stop du 2e for
Pmpolo 0:86c9bfb762cf 131 nb_tour = 86401; // stop du 1er for
Pmpolo 0:86c9bfb762cf 132 GrpRotation.ActivateAll(); // réactivation choix sens de rotation
Pmpolo 0:86c9bfb762cf 133 BTStop.Inactivate(); // désactivation du bouton stop car plus besoin à l'init
Pmpolo 0:86c9bfb762cf 134 etat = 0; // go to case init
Pmpolo 0:86c9bfb762cf 135 }
Pmpolo 0:86c9bfb762cf 136 }
Pmpolo 0:86c9bfb762cf 137 etat = 0; // si le cycle est fini, go to case init
Pmpolo 0:86c9bfb762cf 138 }
Pmpolo 0:86c9bfb762cf 139 break;
Pmpolo 0:86c9bfb762cf 140
Pmpolo 0:86c9bfb762cf 141 case 6: //800
Pmpolo 0:86c9bfb762cf 142 //3 step par seconde
Pmpolo 0:86c9bfb762cf 143 GrpVitesse.InactivateAll(); // désactivation choix de la vitesse
Pmpolo 0:86c9bfb762cf 144 GrpRotation.InactivateAll(); // désactivation choix du sens de rotation
Pmpolo 0:86c9bfb762cf 145 BTStop.Activate(); // activation du bouton stop
Pmpolo 0:86c9bfb762cf 146
Pmpolo 0:86c9bfb762cf 147 // lancement du cycle de rotation du remontoir
Pmpolo 0:86c9bfb762cf 148 for(int nb_tour=0; nb_tour < 86400; nb_tour++){ // nb de seconde par jour
Pmpolo 0:86c9bfb762cf 149 for(int x = 0; x < 3; x++){ //3 step par seconde
Pmpolo 0:86c9bfb762cf 150 stepPin=1;
Pmpolo 0:86c9bfb762cf 151 wait_ms(135); // ce qui définit la vitesse de 800 TPD
Pmpolo 0:86c9bfb762cf 152 stepPin=0;
Pmpolo 0:86c9bfb762cf 153 wait_ms(135); // ce qui définit la vitesse de 800 TPD
Pmpolo 0:86c9bfb762cf 154
Pmpolo 0:86c9bfb762cf 155 if(BTStop.Touched()==1){ // si bouton stop appuyé
Pmpolo 0:86c9bfb762cf 156 x=4; // stop du 2e for
Pmpolo 0:86c9bfb762cf 157 nb_tour = 86401; // stop du 1er for
Pmpolo 0:86c9bfb762cf 158 GrpRotation.ActivateAll(); // réactivation choix sens de rotation
Pmpolo 0:86c9bfb762cf 159 BTStop.Inactivate(); // désactivation du bouton stop car plus besoin à l'init
Pmpolo 0:86c9bfb762cf 160 etat = 0; // go to case init
Pmpolo 0:86c9bfb762cf 161 }
Pmpolo 0:86c9bfb762cf 162 }
Pmpolo 0:86c9bfb762cf 163 etat = 0; // si le cycle est fini, go to case init
Pmpolo 0:86c9bfb762cf 164 }
Pmpolo 0:86c9bfb762cf 165 break;
Pmpolo 0:86c9bfb762cf 166 }
Pmpolo 1:288f026ab14b 167 }
Pmpolo 0:86c9bfb762cf 168
Pmpolo 0:86c9bfb762cf 169 } //while
Pmpolo 0:86c9bfb762cf 170 } //main