projet BTS1

Dependencies:   mbed HX711 TextLCD

Committer:
abdoudasilveira
Date:
Tue May 31 12:18:30 2022 +0000
Revision:
2:f99a06ab3acc
Parent:
1:f6e3e0f785cd
projet BTS

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
abdoudasilveira 2:f99a06ab3acc 5 #define BLINKING_RATE 0.5
abdoudasilveira 2:f99a06ab3acc 6 #define temps_on 0.5
abdoudasilveira 2:f99a06ab3acc 7
mbedyp 1:f6e3e0f785cd 8 // LCD and Joystick Setting
mbedyp 1:f6e3e0f785cd 9 TextLCD lcd(p8, p10, p11, p5, p6, p7); // rs, e, d4-d7
abdoudasilveira 2:f99a06ab3acc 10 //rs e d4 d5 d6 d7
abdoudasilveira 2:f99a06ab3acc 11
mbedyp 1:f6e3e0f785cd 12 DigitalOut RW(p9);
mcragun 0:5f789b9ae213 13
mbedyp 1:f6e3e0f785cd 14 //LED MBED
mbedyp 1:f6e3e0f785cd 15 DigitalOut led1(LED1);
mbedyp 1:f6e3e0f785cd 16 DigitalOut led2(LED2);
mbedyp 1:f6e3e0f785cd 17 DigitalOut led3(LED3);
mbedyp 1:f6e3e0f785cd 18 DigitalOut led4(LED4);
mbedyp 1:f6e3e0f785cd 19
mbedyp 1:f6e3e0f785cd 20 //LED BICOLORE
abdoudasilveira 2:f99a06ab3acc 21 //DigitalOut ledB1(p29); // SI 1 LED ROUGE
abdoudasilveira 2:f99a06ab3acc 22 //DigitalOut ledB2(p30); // SI 1 LED VERT
abdoudasilveira 2:f99a06ab3acc 23 DigitalOut myledR(p30); // LED Rouge
abdoudasilveira 2:f99a06ab3acc 24 DigitalOut myledV(p29); // LED Vert
mbedyp 1:f6e3e0f785cd 25
mbedyp 1:f6e3e0f785cd 26 //HX711
mbedyp 1:f6e3e0f785cd 27 HX711 scale1(p22, p21); //22 , 21
mbedyp 1:f6e3e0f785cd 28 HX711 scale2(p24, p23); //24 , 23
mbedyp 1:f6e3e0f785cd 29
mbedyp 1:f6e3e0f785cd 30 // BOUTON
mbedyp 1:f6e3e0f785cd 31 DigitalIn Up(p12);
mbedyp 1:f6e3e0f785cd 32 DigitalIn Down(p13);
mbedyp 1:f6e3e0f785cd 33 DigitalIn Left(p14);
mbedyp 1:f6e3e0f785cd 34 DigitalIn Right(p15);
mbedyp 1:f6e3e0f785cd 35 DigitalIn Center(p16);
mcragun 0:5f789b9ae213 36
abdoudasilveira 2:f99a06ab3acc 37 int MOI = 0; // en kg*cm2
abdoudasilveira 2:f99a06ab3acc 38 int f0 = 256 ; // en g
abdoudasilveira 2:f99a06ab3acc 39 int f1 = 657 ; // en g
abdoudasilveira 2:f99a06ab3acc 40 int m = 0 ; // en g
abdoudasilveira 2:f99a06ab3acc 41 int l1 = 45 ; // en cm
abdoudasilveira 2:f99a06ab3acc 42 int lg = 0 ; // en cm
abdoudasilveira 2:f99a06ab3acc 43 int menu = 0;
abdoudasilveira 2:f99a06ab3acc 44 int tempo_saisie = 130 ;
abdoudasilveira 2:f99a06ab3acc 45
abdoudasilveira 2:f99a06ab3acc 46
mbedyp 1:f6e3e0f785cd 47 float calibration_factor1 = 2325; //2325 // -7050 worked for my 440lb max scale setup
mbedyp 1:f6e3e0f785cd 48 float calibration_factor2 = 2178; //2178
mbedyp 1:f6e3e0f785cd 49 int averageSamples = 5; //NOMBRE DE MESURE
mbedyp 1:f6e3e0f785cd 50 float weight1 = 0; // F1
mbedyp 1:f6e3e0f785cd 51 float weight2 = 0; // F0
mbedyp 1:f6e3e0f785cd 52
mbedyp 1:f6e3e0f785cd 53
mbedyp 1:f6e3e0f785cd 54 int main(void) {
abdoudasilveira 2:f99a06ab3acc 55
abdoudasilveira 2:f99a06ab3acc 56
abdoudasilveira 2:f99a06ab3acc 57 RW = 0;
abdoudasilveira 2:f99a06ab3acc 58 menu = 0 ;
mbedyp 1:f6e3e0f785cd 59
abdoudasilveira 2:f99a06ab3acc 60 scale1.setScale(0);
abdoudasilveira 2:f99a06ab3acc 61 scale1.tare(); //Reset the scale to 0
mbedyp 1:f6e3e0f785cd 62
abdoudasilveira 2:f99a06ab3acc 63 scale2.setScale(0);
abdoudasilveira 2:f99a06ab3acc 64 scale2.tare(); //Reset the scale to 0
abdoudasilveira 2:f99a06ab3acc 65
abdoudasilveira 2:f99a06ab3acc 66 scale1.setScale(calibration_factor1); //Adjust to this calibration factor / Ajuster à ce facteur d'étalonnage
abdoudasilveira 2:f99a06ab3acc 67 scale2.setScale(calibration_factor2); //Adjust to this calibration factor / Ajuster à ce facteur d'étalonnage
abdoudasilveira 2:f99a06ab3acc 68
abdoudasilveira 2:f99a06ab3acc 69
abdoudasilveira 2:f99a06ab3acc 70 lcd.locate(0,0);
abdoudasilveira 2:f99a06ab3acc 71 lcd.printf(" mesure MOI ");
abdoudasilveira 2:f99a06ab3acc 72 lcd.locate(0,1);
abdoudasilveira 2:f99a06ab3acc 73 lcd.printf(" club de golf ");
abdoudasilveira 2:f99a06ab3acc 74 wait_ms(2000);
abdoudasilveira 2:f99a06ab3acc 75 lcd.cls();
abdoudasilveira 2:f99a06ab3acc 76
abdoudasilveira 2:f99a06ab3acc 77
abdoudasilveira 2:f99a06ab3acc 78 while(1)
abdoudasilveira 2:f99a06ab3acc 79 {
mbedyp 1:f6e3e0f785cd 80 weight1 = scale1.getGram();
mbedyp 1:f6e3e0f785cd 81 weight2 = scale2.getGram();
abdoudasilveira 2:f99a06ab3acc 82
abdoudasilveira 2:f99a06ab3acc 83 f0 = (int) weight1 ;
abdoudasilveira 2:f99a06ab3acc 84 f1 = (int) weight2 ;
abdoudasilveira 2:f99a06ab3acc 85
abdoudasilveira 2:f99a06ab3acc 86
abdoudasilveira 2:f99a06ab3acc 87 m = f1 - f0 ;
abdoudasilveira 2:f99a06ab3acc 88 lg = (l1*f1)/(f1-f0);
abdoudasilveira 2:f99a06ab3acc 89 MOI = m*lg*lg/1000 ;
abdoudasilveira 2:f99a06ab3acc 90
abdoudasilveira 2:f99a06ab3acc 91 switch(menu)
abdoudasilveira 2:f99a06ab3acc 92 {
abdoudasilveira 2:f99a06ab3acc 93
abdoudasilveira 2:f99a06ab3acc 94 case(0):
abdoudasilveira 2:f99a06ab3acc 95
abdoudasilveira 2:f99a06ab3acc 96 lcd.locate(1,0);
abdoudasilveira 2:f99a06ab3acc 97 lcd.printf("*Mesures Forces");
abdoudasilveira 2:f99a06ab3acc 98 lcd.locate(1,1);
abdoudasilveira 2:f99a06ab3acc 99 lcd.printf(" Calcul MOI ");
abdoudasilveira 2:f99a06ab3acc 100 wait_ms(tempo_saisie);
abdoudasilveira 2:f99a06ab3acc 101
abdoudasilveira 2:f99a06ab3acc 102 if (!Center ){
abdoudasilveira 2:f99a06ab3acc 103 lcd.cls();
abdoudasilveira 2:f99a06ab3acc 104 menu = 3 ;
abdoudasilveira 2:f99a06ab3acc 105 }
abdoudasilveira 2:f99a06ab3acc 106
abdoudasilveira 2:f99a06ab3acc 107 if (!Down){
abdoudasilveira 2:f99a06ab3acc 108 lcd.cls();
abdoudasilveira 2:f99a06ab3acc 109 menu = 1 ;}
abdoudasilveira 2:f99a06ab3acc 110
abdoudasilveira 2:f99a06ab3acc 111 if (!Right ){
abdoudasilveira 2:f99a06ab3acc 112 lcd.cls();
abdoudasilveira 2:f99a06ab3acc 113 menu = 7 ;
abdoudasilveira 2:f99a06ab3acc 114 }
abdoudasilveira 2:f99a06ab3acc 115
abdoudasilveira 2:f99a06ab3acc 116 myledV = 0;
abdoudasilveira 2:f99a06ab3acc 117 myledR = 0;
abdoudasilveira 2:f99a06ab3acc 118
abdoudasilveira 2:f99a06ab3acc 119
abdoudasilveira 2:f99a06ab3acc 120 break; //fin case 0
abdoudasilveira 2:f99a06ab3acc 121
abdoudasilveira 2:f99a06ab3acc 122
abdoudasilveira 2:f99a06ab3acc 123 case(1):
abdoudasilveira 2:f99a06ab3acc 124
abdoudasilveira 2:f99a06ab3acc 125
abdoudasilveira 2:f99a06ab3acc 126
abdoudasilveira 2:f99a06ab3acc 127 lcd.locate(1,0);
abdoudasilveira 2:f99a06ab3acc 128 lcd.printf(" Mesures Forces");
abdoudasilveira 2:f99a06ab3acc 129 lcd.locate(1,1);
abdoudasilveira 2:f99a06ab3acc 130 lcd.printf("*Calcul MOI ");
abdoudasilveira 2:f99a06ab3acc 131 wait_ms(tempo_saisie);
abdoudasilveira 2:f99a06ab3acc 132
abdoudasilveira 2:f99a06ab3acc 133 if (!Center ){
abdoudasilveira 2:f99a06ab3acc 134 lcd.cls();
abdoudasilveira 2:f99a06ab3acc 135 menu = 4 ;
abdoudasilveira 2:f99a06ab3acc 136 }
abdoudasilveira 2:f99a06ab3acc 137
abdoudasilveira 2:f99a06ab3acc 138 if (!Down){
abdoudasilveira 2:f99a06ab3acc 139 lcd.cls();
abdoudasilveira 2:f99a06ab3acc 140 menu = 2 ;}
abdoudasilveira 2:f99a06ab3acc 141
abdoudasilveira 2:f99a06ab3acc 142 if (!Up){
abdoudasilveira 2:f99a06ab3acc 143 lcd.cls();
abdoudasilveira 2:f99a06ab3acc 144 menu = 0 ;}
abdoudasilveira 2:f99a06ab3acc 145
abdoudasilveira 2:f99a06ab3acc 146 if (!Right ){
abdoudasilveira 2:f99a06ab3acc 147 lcd.cls();
abdoudasilveira 2:f99a06ab3acc 148 menu = 7 ;
abdoudasilveira 2:f99a06ab3acc 149 }
abdoudasilveira 2:f99a06ab3acc 150 myledV = 0;
abdoudasilveira 2:f99a06ab3acc 151 myledR = 0;
abdoudasilveira 2:f99a06ab3acc 152
abdoudasilveira 2:f99a06ab3acc 153
abdoudasilveira 2:f99a06ab3acc 154 break; //fin case 1
abdoudasilveira 2:f99a06ab3acc 155
abdoudasilveira 2:f99a06ab3acc 156
abdoudasilveira 2:f99a06ab3acc 157 case (2):
abdoudasilveira 2:f99a06ab3acc 158
abdoudasilveira 2:f99a06ab3acc 159 lcd.locate(1,0);
abdoudasilveira 2:f99a06ab3acc 160 lcd.printf(" Calcul MOI ");
abdoudasilveira 2:f99a06ab3acc 161 lcd.locate(1,1);
abdoudasilveira 2:f99a06ab3acc 162 lcd.printf("*Masse/longueur");
abdoudasilveira 2:f99a06ab3acc 163 wait_ms(tempo_saisie);
abdoudasilveira 2:f99a06ab3acc 164
abdoudasilveira 2:f99a06ab3acc 165 if (!Center ){
abdoudasilveira 2:f99a06ab3acc 166 lcd.cls();
abdoudasilveira 2:f99a06ab3acc 167 menu = 5 ;
abdoudasilveira 2:f99a06ab3acc 168 }
abdoudasilveira 2:f99a06ab3acc 169
abdoudasilveira 2:f99a06ab3acc 170 if (!Up){
abdoudasilveira 2:f99a06ab3acc 171 lcd.cls();
abdoudasilveira 2:f99a06ab3acc 172 menu = 1 ;}
abdoudasilveira 2:f99a06ab3acc 173
abdoudasilveira 2:f99a06ab3acc 174 if (!Right ){
abdoudasilveira 2:f99a06ab3acc 175 lcd.cls();
abdoudasilveira 2:f99a06ab3acc 176 menu = 7 ;
abdoudasilveira 2:f99a06ab3acc 177 }
abdoudasilveira 2:f99a06ab3acc 178
abdoudasilveira 2:f99a06ab3acc 179
abdoudasilveira 2:f99a06ab3acc 180 myledV = 0;
abdoudasilveira 2:f99a06ab3acc 181 myledR = 0;
abdoudasilveira 2:f99a06ab3acc 182
abdoudasilveira 2:f99a06ab3acc 183 break; //fin case 2
abdoudasilveira 2:f99a06ab3acc 184
abdoudasilveira 2:f99a06ab3acc 185 case (3):
abdoudasilveira 2:f99a06ab3acc 186
abdoudasilveira 2:f99a06ab3acc 187 lcd.locate(1,0);
abdoudasilveira 2:f99a06ab3acc 188 lcd.printf("F0 = %d g", f0);
abdoudasilveira 2:f99a06ab3acc 189 lcd.locate(1,1);
abdoudasilveira 2:f99a06ab3acc 190 lcd.printf("F1 = %d g", f1);
abdoudasilveira 2:f99a06ab3acc 191 wait_ms(tempo_saisie);
abdoudasilveira 2:f99a06ab3acc 192
abdoudasilveira 2:f99a06ab3acc 193 if (!Left ){
abdoudasilveira 2:f99a06ab3acc 194 lcd.cls();
abdoudasilveira 2:f99a06ab3acc 195 menu = 0 ;
abdoudasilveira 2:f99a06ab3acc 196 }
abdoudasilveira 2:f99a06ab3acc 197
abdoudasilveira 2:f99a06ab3acc 198 myledV = 1;
abdoudasilveira 2:f99a06ab3acc 199 wait(0.2);
abdoudasilveira 2:f99a06ab3acc 200 myledV = 0;
abdoudasilveira 2:f99a06ab3acc 201 wait(0.2);
abdoudasilveira 2:f99a06ab3acc 202 myledR = 0;
abdoudasilveira 2:f99a06ab3acc 203
mbedyp 1:f6e3e0f785cd 204
abdoudasilveira 2:f99a06ab3acc 205 break; //fin case 3
abdoudasilveira 2:f99a06ab3acc 206
abdoudasilveira 2:f99a06ab3acc 207 case (4):
abdoudasilveira 2:f99a06ab3acc 208
abdoudasilveira 2:f99a06ab3acc 209 lcd.locate(0,0);
abdoudasilveira 2:f99a06ab3acc 210 lcd.printf("MOI= %d kg*cm2", MOI);
abdoudasilveira 2:f99a06ab3acc 211 wait_ms(tempo_saisie);
abdoudasilveira 2:f99a06ab3acc 212
abdoudasilveira 2:f99a06ab3acc 213 if (!Left ){
abdoudasilveira 2:f99a06ab3acc 214 lcd.cls();
abdoudasilveira 2:f99a06ab3acc 215 menu = 1 ;
abdoudasilveira 2:f99a06ab3acc 216 }
abdoudasilveira 2:f99a06ab3acc 217
abdoudasilveira 2:f99a06ab3acc 218 myledR = 1;
abdoudasilveira 2:f99a06ab3acc 219 wait(0.2);
abdoudasilveira 2:f99a06ab3acc 220 myledR = 0;
abdoudasilveira 2:f99a06ab3acc 221 wait(0.2);
abdoudasilveira 2:f99a06ab3acc 222 myledV = 0;
abdoudasilveira 2:f99a06ab3acc 223
abdoudasilveira 2:f99a06ab3acc 224
abdoudasilveira 2:f99a06ab3acc 225 break; //fin case 4
abdoudasilveira 2:f99a06ab3acc 226
abdoudasilveira 2:f99a06ab3acc 227 case (5):
abdoudasilveira 2:f99a06ab3acc 228
abdoudasilveira 2:f99a06ab3acc 229 lcd.locate(1,0);
abdoudasilveira 2:f99a06ab3acc 230 lcd.printf(" Masse = %d g" , m);
abdoudasilveira 2:f99a06ab3acc 231 wait_ms(tempo_saisie);
abdoudasilveira 2:f99a06ab3acc 232
abdoudasilveira 2:f99a06ab3acc 233 if (!Left ){
abdoudasilveira 2:f99a06ab3acc 234 lcd.cls();
abdoudasilveira 2:f99a06ab3acc 235 menu = 2 ;
abdoudasilveira 2:f99a06ab3acc 236 }
abdoudasilveira 2:f99a06ab3acc 237
abdoudasilveira 2:f99a06ab3acc 238 if (!Right ){
abdoudasilveira 2:f99a06ab3acc 239 lcd.cls();
abdoudasilveira 2:f99a06ab3acc 240 menu = 6 ;
abdoudasilveira 2:f99a06ab3acc 241 }
abdoudasilveira 2:f99a06ab3acc 242
abdoudasilveira 2:f99a06ab3acc 243
abdoudasilveira 2:f99a06ab3acc 244 myledV = 1;
abdoudasilveira 2:f99a06ab3acc 245 myledR = 0;
abdoudasilveira 2:f99a06ab3acc 246
abdoudasilveira 2:f99a06ab3acc 247
abdoudasilveira 2:f99a06ab3acc 248 break; //fin case 5
abdoudasilveira 2:f99a06ab3acc 249
mcragun 0:5f789b9ae213 250
abdoudasilveira 2:f99a06ab3acc 251 case (6):
abdoudasilveira 2:f99a06ab3acc 252
abdoudasilveira 2:f99a06ab3acc 253 lcd.locate(1,0);
abdoudasilveira 2:f99a06ab3acc 254 lcd.printf(" l1 = %d cm" , l1);
abdoudasilveira 2:f99a06ab3acc 255 lcd.locate(1,1);
abdoudasilveira 2:f99a06ab3acc 256 lcd.printf(" lg = %d cm" , lg);
abdoudasilveira 2:f99a06ab3acc 257 wait_ms(tempo_saisie);
abdoudasilveira 2:f99a06ab3acc 258
abdoudasilveira 2:f99a06ab3acc 259 if (!Left ){
abdoudasilveira 2:f99a06ab3acc 260 lcd.cls();
abdoudasilveira 2:f99a06ab3acc 261 menu = 2 ;
abdoudasilveira 2:f99a06ab3acc 262 }
abdoudasilveira 2:f99a06ab3acc 263
abdoudasilveira 2:f99a06ab3acc 264 myledR = 1;
abdoudasilveira 2:f99a06ab3acc 265 myledV = 0;
abdoudasilveira 2:f99a06ab3acc 266
abdoudasilveira 2:f99a06ab3acc 267
abdoudasilveira 2:f99a06ab3acc 268 break; //fin case 6
abdoudasilveira 2:f99a06ab3acc 269
abdoudasilveira 2:f99a06ab3acc 270
abdoudasilveira 2:f99a06ab3acc 271 case (7):
abdoudasilveira 2:f99a06ab3acc 272
abdoudasilveira 2:f99a06ab3acc 273
abdoudasilveira 2:f99a06ab3acc 274 lcd.locate(1,0);
abdoudasilveira 2:f99a06ab3acc 275 lcd.printf(" HTML ");
abdoudasilveira 2:f99a06ab3acc 276 wait_ms(tempo_saisie);
abdoudasilveira 2:f99a06ab3acc 277
abdoudasilveira 2:f99a06ab3acc 278 if (!Left ){
abdoudasilveira 2:f99a06ab3acc 279 lcd.cls();
abdoudasilveira 2:f99a06ab3acc 280 menu = 0 ;
abdoudasilveira 2:f99a06ab3acc 281 }
abdoudasilveira 2:f99a06ab3acc 282
abdoudasilveira 2:f99a06ab3acc 283 myledR = 1;
abdoudasilveira 2:f99a06ab3acc 284 wait(0.2);
abdoudasilveira 2:f99a06ab3acc 285 myledV = 0;
abdoudasilveira 2:f99a06ab3acc 286 wait(0.2);
abdoudasilveira 2:f99a06ab3acc 287
abdoudasilveira 2:f99a06ab3acc 288 myledR = 0;
abdoudasilveira 2:f99a06ab3acc 289 wait(0.2);
abdoudasilveira 2:f99a06ab3acc 290 myledV = 1;
abdoudasilveira 2:f99a06ab3acc 291 wait(0.2);
abdoudasilveira 2:f99a06ab3acc 292
abdoudasilveira 2:f99a06ab3acc 293 break; //fin case 7
abdoudasilveira 2:f99a06ab3acc 294
abdoudasilveira 2:f99a06ab3acc 295 } } }