Projet Fini

Dependencies:   F746_GUI mbed

Committer:
Pmpolo
Date:
Mon Jun 21 23:36:18 2021 +0000
Revision:
0:86c9bfb762cf
Child:
1:288f026ab14b
Fini;

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 0:86c9bfb762cf 57 dirPin = 1; // définition du sens de rotation en sens horaire
Pmpolo 0:86c9bfb762cf 58 etat = 3; // go to case 3 pour choix de la vitesse
Pmpolo 0:86c9bfb762cf 59 break;
Pmpolo 0:86c9bfb762cf 60
Pmpolo 0:86c9bfb762cf 61 case 2: // sens Anti horaire
Pmpolo 0:86c9bfb762cf 62 GrpVitesse.ActivateAll(); // activation des boutons pour choix de la vitesse
Pmpolo 0:86c9bfb762cf 63 dirPin = 0; // définition du sens de rotation en sens antihoraire
Pmpolo 0:86c9bfb762cf 64 etat = 3; // go to case 3 pour choix de la vitesse
Pmpolo 0:86c9bfb762cf 65 break;
Pmpolo 0:86c9bfb762cf 66
Pmpolo 0:86c9bfb762cf 67 case 3: // choix vitesse selon le bouton appuyé
Pmpolo 0:86c9bfb762cf 68 if (NumBoutonGrpVitesse == 0) etat = 4; //si bouton 0 appuyé (650) go to case 4
Pmpolo 0:86c9bfb762cf 69 else if (NumBoutonGrpVitesse == 1) etat = 5; //si bouton 1 appuyé (650-800) go to case 5
Pmpolo 0:86c9bfb762cf 70 else if (NumBoutonGrpVitesse == 2) etat = 6; //si bouton 0 appuyé (800) go to case 6
Pmpolo 0:86c9bfb762cf 71 break;
Pmpolo 0:86c9bfb762cf 72
Pmpolo 0:86c9bfb762cf 73 case 4: // 650 TPD
Pmpolo 0:86c9bfb762cf 74 //3 step par seconde
Pmpolo 0:86c9bfb762cf 75 GrpVitesse.InactivateAll(); // désactivation choix de la vitesse
Pmpolo 0:86c9bfb762cf 76 GrpRotation.InactivateAll(); // désactivation choix du sens de rotation
Pmpolo 0:86c9bfb762cf 77 BTStop.Activate(); // activation du bouton stop
Pmpolo 0:86c9bfb762cf 78
Pmpolo 0:86c9bfb762cf 79 // lancement du cycle de rotation du remontoir
Pmpolo 0:86c9bfb762cf 80 for(int nb_tour=0; nb_tour < 86400; nb_tour++){ // nb de seconde par jour
Pmpolo 0:86c9bfb762cf 81 for(int x = 0; x < 3; x++){ //3 step par seconde
Pmpolo 0:86c9bfb762cf 82 stepPin=1;
Pmpolo 0:86c9bfb762cf 83 wait_ms(166); // ce qui définit la vitesse de 650 TPD
Pmpolo 0:86c9bfb762cf 84 stepPin=0;
Pmpolo 0:86c9bfb762cf 85 wait_ms(166); // ce qui définit la vitesse de 650 TPD
Pmpolo 0:86c9bfb762cf 86
Pmpolo 0:86c9bfb762cf 87 if(BTStop.Touched()==1){ // si bouton stop appuyé
Pmpolo 0:86c9bfb762cf 88 x=4; // stop du 2e for
Pmpolo 0:86c9bfb762cf 89 nb_tour = 86401; // stop du 1er for
Pmpolo 0:86c9bfb762cf 90 GrpRotation.ActivateAll(); // réactivation choix sens de rotation
Pmpolo 0:86c9bfb762cf 91 BTStop.Inactivate(); // désactivation du bouton stop car plus besoin à l'init
Pmpolo 0:86c9bfb762cf 92 etat = 0; // go to case init
Pmpolo 0:86c9bfb762cf 93 }
Pmpolo 0:86c9bfb762cf 94 }
Pmpolo 0:86c9bfb762cf 95 etat = 0; // si le cycle est fini, go to case init
Pmpolo 0:86c9bfb762cf 96 }
Pmpolo 0:86c9bfb762cf 97 break;
Pmpolo 0:86c9bfb762cf 98
Pmpolo 0:86c9bfb762cf 99 case 5: //650-800
Pmpolo 0:86c9bfb762cf 100 //3 step par seconde
Pmpolo 0:86c9bfb762cf 101 GrpVitesse.InactivateAll(); // désactivation choix de la vitesse
Pmpolo 0:86c9bfb762cf 102 GrpRotation.InactivateAll(); // désactivation choix du sens de rotation
Pmpolo 0:86c9bfb762cf 103 BTStop.Activate(); // activation du bouton stop
Pmpolo 0:86c9bfb762cf 104
Pmpolo 0:86c9bfb762cf 105 // lancement du cycle de rotation du remontoir
Pmpolo 0:86c9bfb762cf 106 for(int nb_tour=0; nb_tour < 43200; nb_tour++){ // nb de seconde par jour
Pmpolo 0:86c9bfb762cf 107 for(int x = 0; x < 3; x++){ //3 step par seconde
Pmpolo 0:86c9bfb762cf 108 stepPin=1;
Pmpolo 0:86c9bfb762cf 109 wait_ms(166);
Pmpolo 0:86c9bfb762cf 110 stepPin=0;
Pmpolo 0:86c9bfb762cf 111 wait_ms(166);
Pmpolo 0:86c9bfb762cf 112 if(BTStop.Touched()==1){ // si bouton stop appuyé
Pmpolo 0:86c9bfb762cf 113 x=4; // stop du 2e for
Pmpolo 0:86c9bfb762cf 114 nb_tour = 86401; // stop du 1er for
Pmpolo 0:86c9bfb762cf 115 GrpRotation.ActivateAll(); // réactivation choix sens de rotation
Pmpolo 0:86c9bfb762cf 116 BTStop.Inactivate(); // désactivation du bouton stop car plus besoin à l'init
Pmpolo 0:86c9bfb762cf 117 etat = 0; // go to case init
Pmpolo 0:86c9bfb762cf 118 }
Pmpolo 0:86c9bfb762cf 119 }
Pmpolo 0:86c9bfb762cf 120
Pmpolo 0:86c9bfb762cf 121 for(int nb_tour=0; nb_tour < 43200; nb_tour++){ // nb de seconde par jour
Pmpolo 0:86c9bfb762cf 122 for(int x = 0; x < 3; x++){ //3 step par seconde
Pmpolo 0:86c9bfb762cf 123 stepPin=1;
Pmpolo 0:86c9bfb762cf 124 wait_ms(135);
Pmpolo 0:86c9bfb762cf 125 stepPin=0;
Pmpolo 0:86c9bfb762cf 126 wait_ms(135);
Pmpolo 0:86c9bfb762cf 127 if(BTStop.Touched()==1){ // si bouton stop appuyé
Pmpolo 0:86c9bfb762cf 128 x=4; // stop du 2e for
Pmpolo 0:86c9bfb762cf 129 nb_tour = 86401; // stop du 1er for
Pmpolo 0:86c9bfb762cf 130 GrpRotation.ActivateAll(); // réactivation choix sens de rotation
Pmpolo 0:86c9bfb762cf 131 BTStop.Inactivate(); // désactivation du bouton stop car plus besoin à l'init
Pmpolo 0:86c9bfb762cf 132 etat = 0; // go to case init
Pmpolo 0:86c9bfb762cf 133 }
Pmpolo 0:86c9bfb762cf 134 }
Pmpolo 0:86c9bfb762cf 135 etat = 0; // si le cycle est fini, go to case init
Pmpolo 0:86c9bfb762cf 136 }
Pmpolo 0:86c9bfb762cf 137 break;
Pmpolo 0:86c9bfb762cf 138
Pmpolo 0:86c9bfb762cf 139 case 6: //800
Pmpolo 0:86c9bfb762cf 140 //3 step par seconde
Pmpolo 0:86c9bfb762cf 141 GrpVitesse.InactivateAll(); // désactivation choix de la vitesse
Pmpolo 0:86c9bfb762cf 142 GrpRotation.InactivateAll(); // désactivation choix du sens de rotation
Pmpolo 0:86c9bfb762cf 143 BTStop.Activate(); // activation du bouton stop
Pmpolo 0:86c9bfb762cf 144
Pmpolo 0:86c9bfb762cf 145 // lancement du cycle de rotation du remontoir
Pmpolo 0:86c9bfb762cf 146 for(int nb_tour=0; nb_tour < 86400; nb_tour++){ // nb de seconde par jour
Pmpolo 0:86c9bfb762cf 147 for(int x = 0; x < 3; x++){ //3 step par seconde
Pmpolo 0:86c9bfb762cf 148 stepPin=1;
Pmpolo 0:86c9bfb762cf 149 wait_ms(135); // ce qui définit la vitesse de 800 TPD
Pmpolo 0:86c9bfb762cf 150 stepPin=0;
Pmpolo 0:86c9bfb762cf 151 wait_ms(135); // ce qui définit la vitesse de 800 TPD
Pmpolo 0:86c9bfb762cf 152
Pmpolo 0:86c9bfb762cf 153 if(BTStop.Touched()==1){ // si bouton stop appuyé
Pmpolo 0:86c9bfb762cf 154 x=4; // stop du 2e for
Pmpolo 0:86c9bfb762cf 155 nb_tour = 86401; // stop du 1er for
Pmpolo 0:86c9bfb762cf 156 GrpRotation.ActivateAll(); // réactivation choix sens de rotation
Pmpolo 0:86c9bfb762cf 157 BTStop.Inactivate(); // désactivation du bouton stop car plus besoin à l'init
Pmpolo 0:86c9bfb762cf 158 etat = 0; // go to case init
Pmpolo 0:86c9bfb762cf 159 }
Pmpolo 0:86c9bfb762cf 160 }
Pmpolo 0:86c9bfb762cf 161 etat = 0; // si le cycle est fini, go to case init
Pmpolo 0:86c9bfb762cf 162 }
Pmpolo 0:86c9bfb762cf 163 break;
Pmpolo 0:86c9bfb762cf 164 }
Pmpolo 0:86c9bfb762cf 165
Pmpolo 0:86c9bfb762cf 166
Pmpolo 0:86c9bfb762cf 167 } //while
Pmpolo 0:86c9bfb762cf 168 } //main