projet cabanis golf 2022

Dependencies:   mbed HX711 TextLCD

Committer:
mbedyp
Date:
Tue May 31 07:11:11 2022 +0000
Revision:
1:f6e3e0f785cd
Parent:
0:5f789b9ae213
Child:
2:a7f75462252d
Projet BTS Cabanis Capteurs force;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mcragun 0:5f789b9ae213 1 #include "mbed.h"
mcragun 0:5f789b9ae213 2 #include "HX711.h"
mbedyp 1:f6e3e0f785cd 3 #include "TextLCD.h"
mbedyp 1:f6e3e0f785cd 4
mbedyp 1:f6e3e0f785cd 5 // LCD and Joystick Setting
mbedyp 1:f6e3e0f785cd 6 TextLCD lcd(p8, p10, p11, p5, p6, p7); // rs, e, d4-d7
mbedyp 1:f6e3e0f785cd 7 //rs e d4 d5 d6 d7
mbedyp 1:f6e3e0f785cd 8 DigitalOut RW(p9);
mcragun 0:5f789b9ae213 9
mcragun 0:5f789b9ae213 10 DigitalOut gpo(D0);
mbedyp 1:f6e3e0f785cd 11
mbedyp 1:f6e3e0f785cd 12 //LED MBED
mbedyp 1:f6e3e0f785cd 13 DigitalOut led1(LED1);
mbedyp 1:f6e3e0f785cd 14 DigitalOut led2(LED2);
mbedyp 1:f6e3e0f785cd 15 DigitalOut led3(LED3);
mbedyp 1:f6e3e0f785cd 16 DigitalOut led4(LED4);
mbedyp 1:f6e3e0f785cd 17
mbedyp 1:f6e3e0f785cd 18 //LED BICOLORE
mbedyp 1:f6e3e0f785cd 19 DigitalOut ledB1(p29); // SI 1 LED ROUGE
mbedyp 1:f6e3e0f785cd 20 DigitalOut ledB2(p30); // SI 1 LED VERT
mbedyp 1:f6e3e0f785cd 21
mbedyp 1:f6e3e0f785cd 22 //HX711
mbedyp 1:f6e3e0f785cd 23 HX711 scale1(p22, p21); //22 , 21
mbedyp 1:f6e3e0f785cd 24 HX711 scale2(p24, p23); //24 , 23
mbedyp 1:f6e3e0f785cd 25
mbedyp 1:f6e3e0f785cd 26 // BOUTON
mbedyp 1:f6e3e0f785cd 27 DigitalIn Up(p12);
mbedyp 1:f6e3e0f785cd 28 DigitalIn Down(p13);
mbedyp 1:f6e3e0f785cd 29 DigitalIn Left(p14);
mbedyp 1:f6e3e0f785cd 30 DigitalIn Right(p15);
mbedyp 1:f6e3e0f785cd 31 DigitalIn Center(p16);
mcragun 0:5f789b9ae213 32
mcragun 0:5f789b9ae213 33 AnalogIn scaleRaw(A3);
mbedyp 1:f6e3e0f785cd 34 Serial pc(USBTX, USBRX); // USB Serial Terminal
mbedyp 1:f6e3e0f785cd 35 float calibration_factor1 = 2325; //2325 // -7050 worked for my 440lb max scale setup
mbedyp 1:f6e3e0f785cd 36 float calibration_factor2 = 2178; //2178
mbedyp 1:f6e3e0f785cd 37 int averageSamples = 5; //NOMBRE DE MESURE
mbedyp 1:f6e3e0f785cd 38
mbedyp 1:f6e3e0f785cd 39 int moyenneClick = 0;
mbedyp 1:f6e3e0f785cd 40 int boucleExecute = 0;
mbedyp 1:f6e3e0f785cd 41
mbedyp 1:f6e3e0f785cd 42 int i = 0; //count
mbedyp 1:f6e3e0f785cd 43 int ii = 0; //count
mbedyp 1:f6e3e0f785cd 44
mbedyp 1:f6e3e0f785cd 45 float m = 0; //MASSE
mbedyp 1:f6e3e0f785cd 46 float lg = 0; //LG
mbedyp 1:f6e3e0f785cd 47 float MOI = 0; // MOI
mbedyp 1:f6e3e0f785cd 48 float massMoy = 0; //Moyenne de la masse a chaque points
mbedyp 1:f6e3e0f785cd 49
mbedyp 1:f6e3e0f785cd 50 float weight1 = 0; // F1
mbedyp 1:f6e3e0f785cd 51 float weight2 = 0; // F0
mbedyp 1:f6e3e0f785cd 52
mbedyp 1:f6e3e0f785cd 53 //SWINGWEIGHT
mbedyp 1:f6e3e0f785cd 54 float convertionInches = 2.54; // 1 inches = 2,54 centimètre
mbedyp 1:f6e3e0f785cd 55 float calculInches = 0; // Variable pour effectuer des calculs
mbedyp 1:f6e3e0f785cd 56 float SW = 0; // Variable résultat SWINGWEIGHT
mbedyp 1:f6e3e0f785cd 57
mbedyp 1:f6e3e0f785cd 58 int main(void) {
mbedyp 1:f6e3e0f785cd 59 //Mettre la LED bicolore en ROUGE pendant la tare
mbedyp 1:f6e3e0f785cd 60 ledB1 = 1;
mbedyp 1:f6e3e0f785cd 61 ledB2 = 0;
mbedyp 1:f6e3e0f785cd 62 RW = 0;
mbedyp 1:f6e3e0f785cd 63
mbedyp 1:f6e3e0f785cd 64 pc.printf("Starting Scale\n");
mbedyp 1:f6e3e0f785cd 65 pc.printf("HX711 calibration sketch\n");
mbedyp 1:f6e3e0f785cd 66 pc.printf("Retirer tout les poids des capteurs\n");
mbedyp 1:f6e3e0f785cd 67 pc.printf("Une fois que la LED bicolore passe de rouge a verte placer le club\n");
mbedyp 1:f6e3e0f785cd 68 pc.printf("[capteur1] Press 1 or a pour augmenter le facteur etalonnage de 25\n");
mbedyp 1:f6e3e0f785cd 69 pc.printf("[capteur1] Press 3 or z pour diminuer le facteur etalonnage de 25\n");
mbedyp 1:f6e3e0f785cd 70 pc.printf("[capteur2] Press 4 or a pour augmenter le facteur etalonnage de 25\n");
mbedyp 1:f6e3e0f785cd 71 pc.printf("[capteur2] Press 6 or z pour diminuer le facteur etalonnage de 25\n");
mbedyp 1:f6e3e0f785cd 72
mbedyp 1:f6e3e0f785cd 73 scale1.setScale(0);
mbedyp 1:f6e3e0f785cd 74 scale1.tare(); //Reset the scale to 0
mbedyp 1:f6e3e0f785cd 75
mbedyp 1:f6e3e0f785cd 76 scale2.setScale(0);
mbedyp 1:f6e3e0f785cd 77 scale2.tare(); //Reset the scale to 0
mbedyp 1:f6e3e0f785cd 78
mbedyp 1:f6e3e0f785cd 79 long zero_factor1 = scale1.averageValue(averageSamples); //Get a baseline reading / Obtenez une lecture de base CAPTEUR 1
mbedyp 1:f6e3e0f785cd 80 long zero_factor2 = scale2.averageValue(averageSamples); //Get a baseline reading / Obtenez une lecture de base CAPTEUR 2
mbedyp 1:f6e3e0f785cd 81 pc.printf("Zero factor Capteur1: %.4f\n", zero_factor1); //This can be used to remove the need to tare the scale. Useful in permanent scale projects. / Cela peut être utilisé pour supprimer le besoin de tarer la balance. Utile dans les projets à échelle permanente. CAPTEUR 1
mbedyp 1:f6e3e0f785cd 82 pc.printf("Zero factor Capteur2: %.4f\n", zero_factor2); //This can be used to remove the need to tare the scale. Useful in permanent scale projects. / Cela peut être utilisé pour supprimer le besoin de tarer la balance. Utile dans les projets à échelle permanente. CAPTEUR 2
mbedyp 1:f6e3e0f785cd 83
mbedyp 1:f6e3e0f785cd 84 // Mettre la LED en VERT pour indiquer la fin de la tare
mbedyp 1:f6e3e0f785cd 85 ledB1 = 0;
mbedyp 1:f6e3e0f785cd 86 ledB2 = 1;
mbedyp 1:f6e3e0f785cd 87
mbedyp 1:f6e3e0f785cd 88 while (true) {
mbedyp 1:f6e3e0f785cd 89 scale1.setScale(calibration_factor1); //Adjust to this calibration factor / Ajuster à ce facteur d'étalonnage
mbedyp 1:f6e3e0f785cd 90 scale2.setScale(calibration_factor2); //Adjust to this calibration factor / Ajuster à ce facteur d'étalonnage
mbedyp 1:f6e3e0f785cd 91
mbedyp 1:f6e3e0f785cd 92 if (moyenneClick == 0) {
mbedyp 1:f6e3e0f785cd 93 weight1 = scale1.getGram();
mbedyp 1:f6e3e0f785cd 94 weight2 = scale2.getGram();
mbedyp 1:f6e3e0f785cd 95 }
mbedyp 1:f6e3e0f785cd 96
mbedyp 1:f6e3e0f785cd 97 //float raw = scaleRaw.read();
mbedyp 1:f6e3e0f785cd 98 pc.printf("Reading Capteur1 g : %.2f\n", weight1);
mbedyp 1:f6e3e0f785cd 99 //pc.printf("Raw Value: %.7f\n", raw);
mbedyp 1:f6e3e0f785cd 100 pc.printf("Reading Capteur2 g : %.2f\n", weight2);
mbedyp 1:f6e3e0f785cd 101
mbedyp 1:f6e3e0f785cd 102 m = weight1 - weight2; // Calcul masse du club
mbedyp 1:f6e3e0f785cd 103 lg = 45 * (weight1 / m); //Longueur jusqu'aux points d'équilibre
mbedyp 1:f6e3e0f785cd 104
mbedyp 1:f6e3e0f785cd 105 MOI = m * (lg * lg); // Calcul masse du MOI (masse inertielle)
mbedyp 1:f6e3e0f785cd 106
mbedyp 1:f6e3e0f785cd 107 calculInches = lg / convertionInches; //Convertion en inches
mbedyp 1:f6e3e0f785cd 108 SW = (calculInches - 14) * m; //Calcul SWINGWEIGHT
mbedyp 1:f6e3e0f785cd 109
mbedyp 1:f6e3e0f785cd 110 switch (i) {
mbedyp 1:f6e3e0f785cd 111 case 0: {
mbedyp 1:f6e3e0f785cd 112 //LED_BOUTON_B
mbedyp 1:f6e3e0f785cd 113 ledB1 = 0;
mbedyp 1:f6e3e0f785cd 114 ledB2 = 1;
mbedyp 1:f6e3e0f785cd 115
mbedyp 1:f6e3e0f785cd 116 lcd.cls(); //CLEAR LCD
mbedyp 1:f6e3e0f785cd 117 lcd.locate(0, 0); //Ecrire sur la 1er ligne
mbedyp 1:f6e3e0f785cd 118 lcd.printf("F1: %.2fg\n", weight1); // Afficher le poids en grammes du capteur 1
mbedyp 1:f6e3e0f785cd 119
mbedyp 1:f6e3e0f785cd 120 lcd.locate(0, 1); //Ecrire sur la 2ème ligne
mbedyp 1:f6e3e0f785cd 121 lcd.printf("F0: %.2fg\n", weight2); // Afficher le poids en grammes du capteur 2
mbedyp 1:f6e3e0f785cd 122
mbedyp 1:f6e3e0f785cd 123 if (!Center) {
mbedyp 1:f6e3e0f785cd 124 //CODE: LED_BOUTON_A
mbedyp 1:f6e3e0f785cd 125 ledB1 = 1;
mbedyp 1:f6e3e0f785cd 126 ledB2 = 0;
mbedyp 1:f6e3e0f785cd 127
mbedyp 1:f6e3e0f785cd 128 weight1 = 0;
mbedyp 1:f6e3e0f785cd 129 weight2 = 0;
mbedyp 1:f6e3e0f785cd 130
mbedyp 1:f6e3e0f785cd 131 wait(1.5); // Attendre 1.5 sec
mbedyp 1:f6e3e0f785cd 132
mbedyp 1:f6e3e0f785cd 133 while (moyenneClick == 0) {
mbedyp 1:f6e3e0f785cd 134
mbedyp 1:f6e3e0f785cd 135 boucleExecute++;
mbedyp 1:f6e3e0f785cd 136
mbedyp 1:f6e3e0f785cd 137 weight1 = weight1 + scale1.getGram();
mbedyp 1:f6e3e0f785cd 138 weight2 = weight2 + scale2.getGram();
mbedyp 1:f6e3e0f785cd 139
mbedyp 1:f6e3e0f785cd 140 m = weight1 - weight2; // Calcul masse du club
mbedyp 1:f6e3e0f785cd 141
mbedyp 1:f6e3e0f785cd 142 massMoy = massMoy + m;
mbedyp 1:f6e3e0f785cd 143
mbedyp 1:f6e3e0f785cd 144 wait(0.1); // Attendre 0.1 sec
mbedyp 1:f6e3e0f785cd 145
mbedyp 1:f6e3e0f785cd 146 massMoy = massMoy / boucleExecute;
mbedyp 1:f6e3e0f785cd 147
mbedyp 1:f6e3e0f785cd 148 lcd.cls(); //CLEAR LCD
mbedyp 1:f6e3e0f785cd 149 lcd.locate(0, 0); //Ecrire sur la 1er ligne
mbedyp 1:f6e3e0f785cd 150 lcd.printf("Nombre de points\n"); // Afficher le nombre de points
mbedyp 1:f6e3e0f785cd 151
mbedyp 1:f6e3e0f785cd 152 lcd.locate(0, 1); //Ecrire sur la 1er ligne
mbedyp 1:f6e3e0f785cd 153 lcd.printf("%d m: %.2fg\n", boucleExecute, massMoy); // Afficher le nombre de points
mbedyp 1:f6e3e0f785cd 154
mbedyp 1:f6e3e0f785cd 155 //LED VERT
mbedyp 1:f6e3e0f785cd 156 ledB1 = 0;
mbedyp 1:f6e3e0f785cd 157 ledB2 = 1;
mbedyp 1:f6e3e0f785cd 158
mbedyp 1:f6e3e0f785cd 159 //LED ROUGE
mbedyp 1:f6e3e0f785cd 160 ledB1 = 1;
mbedyp 1:f6e3e0f785cd 161 ledB2 = 0;
mbedyp 1:f6e3e0f785cd 162
mbedyp 1:f6e3e0f785cd 163 massMoy = 0;
mbedyp 1:f6e3e0f785cd 164
mbedyp 1:f6e3e0f785cd 165 if (!Center) {
mbedyp 1:f6e3e0f785cd 166 //LED ROUGE
mbedyp 1:f6e3e0f785cd 167 ledB1 = 0;
mbedyp 1:f6e3e0f785cd 168 ledB2 = 1;
mbedyp 1:f6e3e0f785cd 169 moyenneClick = 1; //Mettre moyenneClick a 1
mbedyp 1:f6e3e0f785cd 170 wait(1); // Attendre 1 sec
mbedyp 1:f6e3e0f785cd 171 }
mbedyp 1:f6e3e0f785cd 172
mbedyp 1:f6e3e0f785cd 173 }
mbedyp 1:f6e3e0f785cd 174
mbedyp 1:f6e3e0f785cd 175 weight1 = weight1 / boucleExecute;
mbedyp 1:f6e3e0f785cd 176 weight2 = weight2 / boucleExecute;
mbedyp 1:f6e3e0f785cd 177
mbedyp 1:f6e3e0f785cd 178 wait(0.5); // Attendre 0.5 sec
mbedyp 1:f6e3e0f785cd 179 } else if (!Down) {
mbedyp 1:f6e3e0f785cd 180 i = 1;
mbedyp 1:f6e3e0f785cd 181 //CODE: LED_BOUTON_A
mbedyp 1:f6e3e0f785cd 182 ledB1 = 1;
mbedyp 1:f6e3e0f785cd 183 ledB2 = 0;
mbedyp 1:f6e3e0f785cd 184
mbedyp 1:f6e3e0f785cd 185 wait(0.5); // Attendre 0.5 sec
mbedyp 1:f6e3e0f785cd 186 } else if (!Up) {
mbedyp 1:f6e3e0f785cd 187 i = 3;
mbedyp 1:f6e3e0f785cd 188 //CODE: LED_BOUTON_A
mbedyp 1:f6e3e0f785cd 189 ledB1 = 1;
mbedyp 1:f6e3e0f785cd 190 ledB2 = 0;
mbedyp 1:f6e3e0f785cd 191
mbedyp 1:f6e3e0f785cd 192 wait(0.5); // Attendre 0.5 sec
mbedyp 1:f6e3e0f785cd 193 }
mbedyp 1:f6e3e0f785cd 194 }
mbedyp 1:f6e3e0f785cd 195 break;
mbedyp 1:f6e3e0f785cd 196
mbedyp 1:f6e3e0f785cd 197 case 1: {
mbedyp 1:f6e3e0f785cd 198 //LED_BOUTON_B
mbedyp 1:f6e3e0f785cd 199 ledB1 = 0;
mbedyp 1:f6e3e0f785cd 200 ledB2 = 1;
mbedyp 1:f6e3e0f785cd 201
mbedyp 1:f6e3e0f785cd 202 lcd.cls(); //CLEAR LCD
mbedyp 1:f6e3e0f785cd 203 lcd.locate(0, 0); //Ecrire sur la 1er ligne
mbedyp 1:f6e3e0f785cd 204 lcd.printf("m = %.2fg\n", m);
mcragun 0:5f789b9ae213 205
mbedyp 1:f6e3e0f785cd 206 lg = 45 * (weight1 / m);
mbedyp 1:f6e3e0f785cd 207 lcd.locate(0, 1); //Ecrire sur la 2ème ligne
mbedyp 1:f6e3e0f785cd 208 lcd.printf("lg = %.2fcm\n", lg);
mbedyp 1:f6e3e0f785cd 209
mbedyp 1:f6e3e0f785cd 210 if (!Down) {
mbedyp 1:f6e3e0f785cd 211 i = 2;
mbedyp 1:f6e3e0f785cd 212 //CODE: LED_BOUTON_A
mbedyp 1:f6e3e0f785cd 213 ledB1 = 1;
mbedyp 1:f6e3e0f785cd 214 ledB2 = 0;
mbedyp 1:f6e3e0f785cd 215 wait(0.5); // Attendre 0.5 sec
mbedyp 1:f6e3e0f785cd 216 } else if (!Up) {
mbedyp 1:f6e3e0f785cd 217 i = 0;
mbedyp 1:f6e3e0f785cd 218 //CODE: LED_BOUTON_A
mbedyp 1:f6e3e0f785cd 219 ledB1 = 1;
mbedyp 1:f6e3e0f785cd 220 ledB2 = 0;
mbedyp 1:f6e3e0f785cd 221
mbedyp 1:f6e3e0f785cd 222 wait(0.5); // Attendre 0.5 sec
mbedyp 1:f6e3e0f785cd 223 }
mbedyp 1:f6e3e0f785cd 224
mbedyp 1:f6e3e0f785cd 225 }
mbedyp 1:f6e3e0f785cd 226 break;
mbedyp 1:f6e3e0f785cd 227
mbedyp 1:f6e3e0f785cd 228 case 2: {
mbedyp 1:f6e3e0f785cd 229 //LED_BOUTON_B
mbedyp 1:f6e3e0f785cd 230 ledB1 = 0;
mbedyp 1:f6e3e0f785cd 231 ledB2 = 1;
mbedyp 1:f6e3e0f785cd 232
mbedyp 1:f6e3e0f785cd 233 lcd.cls(); //CLEAR LCD
mbedyp 1:f6e3e0f785cd 234 lcd.locate(0, 0); //Ecrire sur la 1er ligne
mbedyp 1:f6e3e0f785cd 235 lcd.printf("MOI:\n");
mbedyp 1:f6e3e0f785cd 236 lcd.locate(0, 1); //Ecrire sur la 2ème ligne
mbedyp 1:f6e3e0f785cd 237 lcd.printf("%.2f kg.cm2\n", MOI / 1000);
mbedyp 1:f6e3e0f785cd 238
mbedyp 1:f6e3e0f785cd 239 if (!Down) {
mbedyp 1:f6e3e0f785cd 240 i = 3;
mbedyp 1:f6e3e0f785cd 241 //CODE: LED_BOUTON_A
mbedyp 1:f6e3e0f785cd 242 ledB1 = 1;
mbedyp 1:f6e3e0f785cd 243 ledB2 = 0;
mbedyp 1:f6e3e0f785cd 244
mbedyp 1:f6e3e0f785cd 245 wait(0.5); // Attendre 0.5 sec
mbedyp 1:f6e3e0f785cd 246 } else if (!Up) {
mbedyp 1:f6e3e0f785cd 247 i = 1;
mbedyp 1:f6e3e0f785cd 248 //CODE: LED_BOUTON_A
mbedyp 1:f6e3e0f785cd 249 ledB1 = 1;
mbedyp 1:f6e3e0f785cd 250 ledB2 = 0;
mbedyp 1:f6e3e0f785cd 251
mbedyp 1:f6e3e0f785cd 252 wait(0.5); // Attendre 0.5 sec
mbedyp 1:f6e3e0f785cd 253 }
mbedyp 1:f6e3e0f785cd 254 }
mbedyp 1:f6e3e0f785cd 255 break;
mbedyp 1:f6e3e0f785cd 256
mbedyp 1:f6e3e0f785cd 257 case 3: {
mbedyp 1:f6e3e0f785cd 258 //LED_BOUTON_B
mbedyp 1:f6e3e0f785cd 259 ledB1 = 0;
mbedyp 1:f6e3e0f785cd 260 ledB2 = 1;
mbedyp 1:f6e3e0f785cd 261
mbedyp 1:f6e3e0f785cd 262 lcd.cls(); //CLEAR LCD
mbedyp 1:f6e3e0f785cd 263 lcd.locate(0, 0); //Ecrire sur la 1er ligne
mbedyp 1:f6e3e0f785cd 264
mbedyp 1:f6e3e0f785cd 265 lcd.printf("SW = %.2f\n", SW);
mbedyp 1:f6e3e0f785cd 266
mbedyp 1:f6e3e0f785cd 267 lcd.locate(0, 1); //Ecrire sur la 2ème ligne
mbedyp 1:f6e3e0f785cd 268
mbedyp 1:f6e3e0f785cd 269 // Résultat de SW (SWINGWEIGHT / inertie) place le club dans une catégorie
mbedyp 1:f6e3e0f785cd 270 if (SW < 5250) {
mbedyp 1:f6e3e0f785cd 271 lcd.printf("SWINGWEIGHT NULL\n", SW);
mbedyp 1:f6e3e0f785cd 272 } else if (SW > 5250 && SW < 5300) {
mbedyp 1:f6e3e0f785cd 273 lcd.printf("SWINGWEIGHT = B4\n");
mbedyp 1:f6e3e0f785cd 274 } else if (SW > 5300 && SW < 5350) {
mbedyp 1:f6e3e0f785cd 275 lcd.printf("SWINGWEIGHT = B5\n");
mbedyp 1:f6e3e0f785cd 276 } else if (SW > 5350 && SW < 5400) {
mbedyp 1:f6e3e0f785cd 277 lcd.printf("SWINGWEIGHT = B6\n");
mbedyp 1:f6e3e0f785cd 278 } else if (SW > 5400 && SW < 5450) {
mbedyp 1:f6e3e0f785cd 279 lcd.printf("SWINGWEIGHT = B7\n");
mbedyp 1:f6e3e0f785cd 280 } else if (SW > 5450 && SW < 5500) {
mbedyp 1:f6e3e0f785cd 281 lcd.printf("SWINGWEIGHT = B8\n");
mbedyp 1:f6e3e0f785cd 282 } else if (SW > 5500 && SW < 5550) {
mbedyp 1:f6e3e0f785cd 283 lcd.printf("SWINGWEIGHT = B9\n");
mbedyp 1:f6e3e0f785cd 284 } else if (SW > 5550 && SW < 5600) {
mbedyp 1:f6e3e0f785cd 285 lcd.printf("SWINGWEIGHT = C0\n");
mbedyp 1:f6e3e0f785cd 286 } else if (SW > 5600 && SW < 5650) {
mbedyp 1:f6e3e0f785cd 287 lcd.printf("SWINGWEIGHT = C1\n");
mbedyp 1:f6e3e0f785cd 288 } else if (SW > 5650 && SW < 5700) {
mbedyp 1:f6e3e0f785cd 289 lcd.printf("SWINGWEIGHT = C2\n");
mbedyp 1:f6e3e0f785cd 290 } else if (SW > 5700 && SW < 5750) {
mbedyp 1:f6e3e0f785cd 291 lcd.printf("SWINGWEIGHT = C3\n");
mbedyp 1:f6e3e0f785cd 292 } else if (SW > 5750 && SW < 5800) {
mbedyp 1:f6e3e0f785cd 293 lcd.printf("SWINGWEIGHT = C4\n");
mbedyp 1:f6e3e0f785cd 294 } else if (SW > 5800 && SW < 5850) {
mbedyp 1:f6e3e0f785cd 295 lcd.printf("SWINGWEIGHT = C5\n");
mbedyp 1:f6e3e0f785cd 296 } else if (SW > 5850 && SW < 5900) {
mbedyp 1:f6e3e0f785cd 297 lcd.printf("SWINGWEIGHT = C6\n");
mbedyp 1:f6e3e0f785cd 298 } else if (SW > 5900 && SW < 5950) {
mbedyp 1:f6e3e0f785cd 299 lcd.printf("SWINGWEIGHT = C7\n");
mbedyp 1:f6e3e0f785cd 300 } else if (SW > 5950 && SW < 6000) {
mbedyp 1:f6e3e0f785cd 301 lcd.printf("SWINGWEIGHT = C8\n");
mbedyp 1:f6e3e0f785cd 302 } else if (SW > 6000 && SW < 6050) {
mbedyp 1:f6e3e0f785cd 303 lcd.printf("SWINGWEIGHT = C9\n");
mbedyp 1:f6e3e0f785cd 304 } else if (SW > 6050 && SW < 6100) {
mbedyp 1:f6e3e0f785cd 305 lcd.printf("SWINGWEIGHT = D0\n");
mbedyp 1:f6e3e0f785cd 306 } else if (SW > 6100 && SW < 6150) {
mbedyp 1:f6e3e0f785cd 307 lcd.printf("SWINGWEIGHT = D1\n");
mbedyp 1:f6e3e0f785cd 308 } else if (SW > 6150 && SW < 6200) {
mbedyp 1:f6e3e0f785cd 309 lcd.printf("SWINGWEIGHT = D2\n");
mbedyp 1:f6e3e0f785cd 310 } else if (SW > 6200 && SW < 6250) {
mbedyp 1:f6e3e0f785cd 311 lcd.printf("SWINGWEIGHT = D3\n");
mbedyp 1:f6e3e0f785cd 312 } else if (SW > 6250 && SW < 6300) {
mbedyp 1:f6e3e0f785cd 313 lcd.printf("SWINGWEIGHT = D4\n");
mbedyp 1:f6e3e0f785cd 314 } else if (SW > 6300 && SW < 6350) {
mbedyp 1:f6e3e0f785cd 315 lcd.printf("SWINGWEIGHT = D5\n");
mbedyp 1:f6e3e0f785cd 316 } else if (SW > 6350 && SW < 6400) {
mbedyp 1:f6e3e0f785cd 317 lcd.printf("SWINGWEIGHT = D6\n");
mbedyp 1:f6e3e0f785cd 318 } else if (SW > 6400 && SW < 6450) {
mbedyp 1:f6e3e0f785cd 319 lcd.printf("SWINGWEIGHT = D7\n");
mbedyp 1:f6e3e0f785cd 320 } else if (SW > 6450 && SW < 6500) {
mbedyp 1:f6e3e0f785cd 321 lcd.printf("SWINGWEIGHT = D8\n");
mbedyp 1:f6e3e0f785cd 322 } else if (SW > 6500) {
mbedyp 1:f6e3e0f785cd 323 lcd.printf("SWINGWEIGHT = D9\n");
mbedyp 1:f6e3e0f785cd 324 }
mbedyp 1:f6e3e0f785cd 325
mbedyp 1:f6e3e0f785cd 326 if (!Down) {
mbedyp 1:f6e3e0f785cd 327 i = 4;
mbedyp 1:f6e3e0f785cd 328 //CODE: LED_BOUTON_A
mbedyp 1:f6e3e0f785cd 329 ledB1 = 1;
mbedyp 1:f6e3e0f785cd 330 ledB2 = 0;
mbedyp 1:f6e3e0f785cd 331
mbedyp 1:f6e3e0f785cd 332 wait(0.5); // Attendre 0.5 sec
mbedyp 1:f6e3e0f785cd 333 } else if (!Up) {
mbedyp 1:f6e3e0f785cd 334 i = 2;
mbedyp 1:f6e3e0f785cd 335 //CODE: LED_BOUTON_A
mbedyp 1:f6e3e0f785cd 336 ledB1 = 1;
mbedyp 1:f6e3e0f785cd 337 ledB2 = 0;
mbedyp 1:f6e3e0f785cd 338
mbedyp 1:f6e3e0f785cd 339 wait(0.5); // Attendre 0.5 sec
mbedyp 1:f6e3e0f785cd 340 }
mbedyp 1:f6e3e0f785cd 341 }
mbedyp 1:f6e3e0f785cd 342 break;
mbedyp 1:f6e3e0f785cd 343
mbedyp 1:f6e3e0f785cd 344 case 4: {
mbedyp 1:f6e3e0f785cd 345 //LED_BOUTON_B
mbedyp 1:f6e3e0f785cd 346 ledB1 = 0;
mbedyp 1:f6e3e0f785cd 347 ledB2 = 1;
mbedyp 1:f6e3e0f785cd 348
mbedyp 1:f6e3e0f785cd 349 lcd.cls(); //CLEAR LCD
mbedyp 1:f6e3e0f785cd 350 lcd.locate(0, 0); //Ecrire sur la 1er ligne
mbedyp 1:f6e3e0f785cd 351
mbedyp 1:f6e3e0f785cd 352 lcd.printf("N points moyenne");
mbedyp 1:f6e3e0f785cd 353
mbedyp 1:f6e3e0f785cd 354 lcd.locate(0, 1); //Ecrire sur la 2eme ligne
mbedyp 1:f6e3e0f785cd 355 lcd.printf("%d\n", boucleExecute);
mbedyp 1:f6e3e0f785cd 356
mbedyp 1:f6e3e0f785cd 357 if (!Down) {
mbedyp 1:f6e3e0f785cd 358 i = 0;
mbedyp 1:f6e3e0f785cd 359 //CODE: LED_BOUTON_A
mbedyp 1:f6e3e0f785cd 360 ledB1 = 1;
mbedyp 1:f6e3e0f785cd 361 ledB2 = 0;
mbedyp 1:f6e3e0f785cd 362
mbedyp 1:f6e3e0f785cd 363 wait(0.5); // Attendre 0.5 sec
mbedyp 1:f6e3e0f785cd 364 } else if (!Up) {
mbedyp 1:f6e3e0f785cd 365 i = 3;
mbedyp 1:f6e3e0f785cd 366 //CODE: LED_BOUTON_A
mbedyp 1:f6e3e0f785cd 367 ledB1 = 1;
mbedyp 1:f6e3e0f785cd 368 ledB2 = 0;
mbedyp 1:f6e3e0f785cd 369
mbedyp 1:f6e3e0f785cd 370 wait(0.5); // Attendre 0.5 sec
mbedyp 1:f6e3e0f785cd 371 }
mbedyp 1:f6e3e0f785cd 372 }
mbedyp 1:f6e3e0f785cd 373 break;
mbedyp 1:f6e3e0f785cd 374 }
mbedyp 1:f6e3e0f785cd 375 /*
mbedyp 1:f6e3e0f785cd 376 CODE INFORMATION:
mbedyp 1:f6e3e0f785cd 377 LED_BOUTON_A: Mettre la LED bicolore en ROUGE pour que l'utilisateur sache que son action a était pris en compte
mbedyp 1:f6e3e0f785cd 378 LED_BOUTON_B: Mettre la LED bicolore en VERT à la fin de l'action utilisateur
mcragun 0:5f789b9ae213 379
mbedyp 1:f6e3e0f785cd 380 */
mcragun 0:5f789b9ae213 381
mbedyp 1:f6e3e0f785cd 382 if (pc.readable()) {
mbedyp 1:f6e3e0f785cd 383 char temp = pc.getc();
mbedyp 1:f6e3e0f785cd 384 if (temp == '1' || temp == 'a')
mbedyp 1:f6e3e0f785cd 385 calibration_factor1 -= 25;
mbedyp 1:f6e3e0f785cd 386 else if (temp == '3' || temp == 'z')
mbedyp 1:f6e3e0f785cd 387 calibration_factor1 += 25;
mbedyp 1:f6e3e0f785cd 388 else if (temp == '4' || temp == 'q')
mbedyp 1:f6e3e0f785cd 389 calibration_factor2 -= 25;
mbedyp 1:f6e3e0f785cd 390 else if (temp == '6' || temp == 's')
mbedyp 1:f6e3e0f785cd 391 calibration_factor2 += 25;
mcragun 0:5f789b9ae213 392 }
mbedyp 1:f6e3e0f785cd 393 gpo = !gpo; // toggle pin
mbedyp 1:f6e3e0f785cd 394 wait(0.2); // Attendre 0.2 sec
mbedyp 1:f6e3e0f785cd 395 }
mcragun 0:5f789b9ae213 396 }