Projet Interfaçage

Dependencies:   BSP_DISCO_F746NG

Committer:
liroy_theilor
Date:
Wed Jun 23 14:06:26 2021 +0000
Revision:
6:c8fa01cd3dba
Parent:
5:8ffa1e1d4895
Projet

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bcostm 0:9933f7db9a9b 1 #include "mbed.h"
Jerome Coutant 3:9f66aabe7b3b 2 #include "stm32746g_discovery_lcd.h"
Jerome Coutant 3:9f66aabe7b3b 3 #include "stm32746g_discovery_ts.h"
bcostm 0:9933f7db9a9b 4
liroy_theilor 5:8ffa1e1d4895 5
liroy_theilor 5:8ffa1e1d4895 6 #include "mbed.h"// propre à mbed
liroy_theilor 5:8ffa1e1d4895 7 #include "stm32746g_discovery_lcd.h"// bibliothèque pour les fonctions de l’écran lcd
liroy_theilor 5:8ffa1e1d4895 8 #include "stm32746g_discovery_ts.h"// bibliothèque pour les fonctions de l’écran tactile
liroy_theilor 5:8ffa1e1d4895 9
liroy_theilor 4:bb9c545c6d7f 10 char affiche[30];
liroy_theilor 4:bb9c545c6d7f 11 int lecture;
liroy_theilor 4:bb9c545c6d7f 12 int compteur=0;
liroy_theilor 4:bb9c545c6d7f 13 bool obstak=false;
liroy_theilor 4:bb9c545c6d7f 14 int colis=0;
liroy_theilor 4:bb9c545c6d7f 15
liroy_theilor 4:bb9c545c6d7f 16 void capteurTOR ();
liroy_theilor 4:bb9c545c6d7f 17
liroy_theilor 4:bb9c545c6d7f 18
liroy_theilor 4:bb9c545c6d7f 19 PwmOut servo(D1); // Servomoteur
liroy_theilor 4:bb9c545c6d7f 20 DigitalIn capteur(A0); // Capteur de lettre
liroy_theilor 4:bb9c545c6d7f 21
liroy_theilor 4:bb9c545c6d7f 22
bcostm 0:9933f7db9a9b 23 int main()
bcostm 0:9933f7db9a9b 24 {
bcostm 0:9933f7db9a9b 25 TS_StateTypeDef TS_State;
bcostm 0:9933f7db9a9b 26 uint16_t x, y;
liroy_theilor 4:bb9c545c6d7f 27 uint8_t text[30];
liroy_theilor 4:bb9c545c6d7f 28 int i;
liroy_theilor 4:bb9c545c6d7f 29 char PSWD[4];
bcostm 0:9933f7db9a9b 30 uint8_t status;
bcostm 0:9933f7db9a9b 31 uint8_t idx;
bcostm 0:9933f7db9a9b 32 uint8_t cleared = 0;
bcostm 0:9933f7db9a9b 33 uint8_t prev_nb_touches = 0;
bcostm 0:9933f7db9a9b 34
Jerome Coutant 3:9f66aabe7b3b 35 BSP_LCD_Init();
Jerome Coutant 3:9f66aabe7b3b 36 BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS);
Jerome Coutant 3:9f66aabe7b3b 37 BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER);
bcostm 0:9933f7db9a9b 38
Jerome Coutant 3:9f66aabe7b3b 39 BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN DEMO", CENTER_MODE);
Jerome Coutant 3:9f66aabe7b3b 40 HAL_Delay(1000);
Jerome Coutant 3:9f66aabe7b3b 41
Jerome Coutant 3:9f66aabe7b3b 42 status = BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize());
liroy_theilor 4:bb9c545c6d7f 43 if (status != TS_OK)
liroy_theilor 4:bb9c545c6d7f 44 {
Jerome Coutant 3:9f66aabe7b3b 45 BSP_LCD_Clear(LCD_COLOR_RED);
Jerome Coutant 3:9f66aabe7b3b 46 BSP_LCD_SetBackColor(LCD_COLOR_RED);
Jerome Coutant 3:9f66aabe7b3b 47 BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
Jerome Coutant 3:9f66aabe7b3b 48 BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT FAIL", CENTER_MODE);
liroy_theilor 4:bb9c545c6d7f 49 }
liroy_theilor 4:bb9c545c6d7f 50 else
liroy_theilor 4:bb9c545c6d7f 51 {
Jerome Coutant 3:9f66aabe7b3b 52 BSP_LCD_Clear(LCD_COLOR_GREEN);
Jerome Coutant 3:9f66aabe7b3b 53 BSP_LCD_SetBackColor(LCD_COLOR_GREEN);
Jerome Coutant 3:9f66aabe7b3b 54 BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
Jerome Coutant 3:9f66aabe7b3b 55 BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT OK", CENTER_MODE);
bcostm 0:9933f7db9a9b 56 }
bcostm 0:9933f7db9a9b 57
Jerome Coutant 3:9f66aabe7b3b 58 HAL_Delay(1000);
Jerome Coutant 3:9f66aabe7b3b 59 BSP_LCD_SetFont(&Font12);
liroy_theilor 4:bb9c545c6d7f 60
liroy_theilor 4:bb9c545c6d7f 61
liroy_theilor 4:bb9c545c6d7f 62 //COULEUR DU FOND D'écran
liroy_theilor 4:bb9c545c6d7f 63 BSP_LCD_SetBackColor(LCD_COLOR_DARKCYAN);
liroy_theilor 4:bb9c545c6d7f 64 // COULEUR ECRITURE
Jerome Coutant 3:9f66aabe7b3b 65 BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
liroy_theilor 4:bb9c545c6d7f 66 BSP_LCD_Clear(LCD_COLOR_DARKCYAN );
liroy_theilor 4:bb9c545c6d7f 67
liroy_theilor 6:c8fa01cd3dba 68 //************INTERFACE************
liroy_theilor 6:c8fa01cd3dba 69
liroy_theilor 4:bb9c545c6d7f 70 sprintf((char*)text, "BOITES AUX LETTRES ");
liroy_theilor 4:bb9c545c6d7f 71 BSP_LCD_DisplayStringAt(20, LINE(1), (uint8_t *)&text, CENTER_MODE);
liroy_theilor 4:bb9c545c6d7f 72
liroy_theilor 4:bb9c545c6d7f 73 sprintf((char*)text, "THEILOR LIROY ");
liroy_theilor 4:bb9c545c6d7f 74 BSP_LCD_DisplayStringAt(0, LINE(1), (uint8_t *)&text, RIGHT_MODE);
liroy_theilor 4:bb9c545c6d7f 75
liroy_theilor 4:bb9c545c6d7f 76
liroy_theilor 4:bb9c545c6d7f 77
liroy_theilor 4:bb9c545c6d7f 78
liroy_theilor 4:bb9c545c6d7f 79
liroy_theilor 4:bb9c545c6d7f 80 BSP_LCD_SetFont(&Font16);
liroy_theilor 4:bb9c545c6d7f 81 sprintf((char*)text, "1");
liroy_theilor 4:bb9c545c6d7f 82 BSP_LCD_DisplayStringAt(211, LINE(8), (uint8_t *)&text, LEFT_MODE);
liroy_theilor 4:bb9c545c6d7f 83
liroy_theilor 4:bb9c545c6d7f 84 BSP_LCD_SetFont(&Font16);
liroy_theilor 4:bb9c545c6d7f 85 sprintf((char*)text, "2");
liroy_theilor 4:bb9c545c6d7f 86 BSP_LCD_DisplayStringAt(25, LINE(8), (uint8_t *)&text, CENTER_MODE);
liroy_theilor 4:bb9c545c6d7f 87
liroy_theilor 4:bb9c545c6d7f 88 BSP_LCD_SetFont(&Font16);
liroy_theilor 4:bb9c545c6d7f 89 sprintf((char*)text, "3");
liroy_theilor 4:bb9c545c6d7f 90 BSP_LCD_DisplayStringAt(70, LINE(8), (uint8_t *)&text, CENTER_MODE);
liroy_theilor 4:bb9c545c6d7f 91
liroy_theilor 4:bb9c545c6d7f 92
liroy_theilor 4:bb9c545c6d7f 93 BSP_LCD_SetFont(&Font16);
liroy_theilor 4:bb9c545c6d7f 94 sprintf((char*)text, "4");
liroy_theilor 4:bb9c545c6d7f 95 BSP_LCD_DisplayStringAt(211, LINE(11), (uint8_t *)&text, LEFT_MODE);
liroy_theilor 4:bb9c545c6d7f 96
liroy_theilor 4:bb9c545c6d7f 97 BSP_LCD_SetFont(&Font16);
liroy_theilor 4:bb9c545c6d7f 98 sprintf((char*)text, "5");
liroy_theilor 4:bb9c545c6d7f 99 BSP_LCD_DisplayStringAt(25, LINE(11), (uint8_t *)&text, CENTER_MODE);
liroy_theilor 4:bb9c545c6d7f 100
liroy_theilor 4:bb9c545c6d7f 101 BSP_LCD_SetFont(&Font16);
liroy_theilor 4:bb9c545c6d7f 102 sprintf((char*)text, "6");
liroy_theilor 4:bb9c545c6d7f 103 BSP_LCD_DisplayStringAt(70, LINE(11), (uint8_t *)&text, CENTER_MODE);
liroy_theilor 4:bb9c545c6d7f 104
liroy_theilor 4:bb9c545c6d7f 105 BSP_LCD_SetFont(&Font16);
liroy_theilor 4:bb9c545c6d7f 106 sprintf((char*)text, "7");
liroy_theilor 4:bb9c545c6d7f 107 BSP_LCD_DisplayStringAt(211, LINE(14), (uint8_t *)&text, LEFT_MODE);
liroy_theilor 4:bb9c545c6d7f 108
liroy_theilor 4:bb9c545c6d7f 109 BSP_LCD_SetFont(&Font16);
liroy_theilor 4:bb9c545c6d7f 110 sprintf((char*)text, "8");
liroy_theilor 4:bb9c545c6d7f 111 BSP_LCD_DisplayStringAt(25, LINE(14), (uint8_t *)&text, CENTER_MODE);
liroy_theilor 4:bb9c545c6d7f 112
liroy_theilor 4:bb9c545c6d7f 113 BSP_LCD_SetFont(&Font16);
liroy_theilor 4:bb9c545c6d7f 114 sprintf((char*)text, "9");
liroy_theilor 4:bb9c545c6d7f 115 BSP_LCD_DisplayStringAt(70, LINE(14), (uint8_t *)&text, CENTER_MODE);
liroy_theilor 4:bb9c545c6d7f 116
liroy_theilor 4:bb9c545c6d7f 117 BSP_LCD_SetFont(&Font16);
liroy_theilor 4:bb9c545c6d7f 118 sprintf((char*)text, "0");
liroy_theilor 4:bb9c545c6d7f 119 BSP_LCD_DisplayStringAt(18, LINE(16), (uint8_t *)&text, CENTER_MODE);
liroy_theilor 4:bb9c545c6d7f 120
liroy_theilor 4:bb9c545c6d7f 121 BSP_LCD_SetTextColor(LCD_COLOR_ORANGE);
liroy_theilor 4:bb9c545c6d7f 122 //Position du cadre
liroy_theilor 4:bb9c545c6d7f 123 BSP_LCD_DrawRect(200, 60, 100 ,40);
liroy_theilor 4:bb9c545c6d7f 124
liroy_theilor 4:bb9c545c6d7f 125 // CLAVIER
liroy_theilor 4:bb9c545c6d7f 126
liroy_theilor 4:bb9c545c6d7f 127 // BSP_LCD_DrawRect(150, 150, 230,120);
liroy_theilor 4:bb9c545c6d7f 128
liroy_theilor 4:bb9c545c6d7f 129 //LIGNE 1
liroy_theilor 4:bb9c545c6d7f 130 BSP_LCD_DrawCircle(215, 140,20);
liroy_theilor 4:bb9c545c6d7f 131 BSP_LCD_DrawCircle(260, 140,20);
liroy_theilor 4:bb9c545c6d7f 132 BSP_LCD_DrawCircle(305, 140,20);
liroy_theilor 4:bb9c545c6d7f 133
liroy_theilor 4:bb9c545c6d7f 134 // LIGNE 2
liroy_theilor 4:bb9c545c6d7f 135
liroy_theilor 4:bb9c545c6d7f 136 BSP_LCD_DrawCircle(215, 182,20);
liroy_theilor 4:bb9c545c6d7f 137 BSP_LCD_DrawCircle(260,182,20);
liroy_theilor 4:bb9c545c6d7f 138 BSP_LCD_DrawCircle(305, 182,20);
liroy_theilor 4:bb9c545c6d7f 139
liroy_theilor 4:bb9c545c6d7f 140 // LIGNE 3
liroy_theilor 4:bb9c545c6d7f 141 BSP_LCD_DrawCircle(215, 224,20);
liroy_theilor 4:bb9c545c6d7f 142 BSP_LCD_DrawCircle(260, 224,20);
liroy_theilor 4:bb9c545c6d7f 143 BSP_LCD_DrawCircle(305, 224,20);
liroy_theilor 4:bb9c545c6d7f 144 BSP_LCD_DrawRect(220, 249, 60,30);
liroy_theilor 6:c8fa01cd3dba 145
liroy_theilor 6:c8fa01cd3dba 146
liroy_theilor 6:c8fa01cd3dba 147 //************INTERFACE************
liroy_theilor 4:bb9c545c6d7f 148
liroy_theilor 4:bb9c545c6d7f 149 servo.pulsewidth_us (2000);
bcostm 0:9933f7db9a9b 150
bcostm 0:9933f7db9a9b 151 while(1) {
liroy_theilor 4:bb9c545c6d7f 152 BSP_LCD_SetFont(&Font12);
liroy_theilor 4:bb9c545c6d7f 153
liroy_theilor 4:bb9c545c6d7f 154
liroy_theilor 4:bb9c545c6d7f 155 capteurTOR();
liroy_theilor 4:bb9c545c6d7f 156
liroy_theilor 4:bb9c545c6d7f 157
liroy_theilor 4:bb9c545c6d7f 158
bcostm 0:9933f7db9a9b 159
Jerome Coutant 3:9f66aabe7b3b 160 BSP_TS_GetState(&TS_State);
bcostm 0:9933f7db9a9b 161 if (TS_State.touchDetected) {
bcostm 0:9933f7db9a9b 162 // Clear lines corresponding to old touches coordinates
bcostm 0:9933f7db9a9b 163 if (TS_State.touchDetected < prev_nb_touches) {
bcostm 0:9933f7db9a9b 164 for (idx = (TS_State.touchDetected + 1); idx <= 5; idx++) {
Jerome Coutant 3:9f66aabe7b3b 165 BSP_LCD_ClearStringLine(idx);
bcostm 0:9933f7db9a9b 166 }
bcostm 0:9933f7db9a9b 167 }
bcostm 0:9933f7db9a9b 168 prev_nb_touches = TS_State.touchDetected;
bcostm 0:9933f7db9a9b 169
bcostm 0:9933f7db9a9b 170 cleared = 0;
bcostm 0:9933f7db9a9b 171
bcostm 0:9933f7db9a9b 172 for (idx = 0; idx < TS_State.touchDetected; idx++) {
bcostm 0:9933f7db9a9b 173 x = TS_State.touchX[idx];
bcostm 0:9933f7db9a9b 174 y = TS_State.touchY[idx];
liroy_theilor 6:c8fa01cd3dba 175
liroy_theilor 6:c8fa01cd3dba 176
liroy_theilor 4:bb9c545c6d7f 177
liroy_theilor 4:bb9c545c6d7f 178
bcostm 0:9933f7db9a9b 179 }
bcostm 0:9933f7db9a9b 180
liroy_theilor 4:bb9c545c6d7f 181
bcostm 0:9933f7db9a9b 182 } else {
bcostm 0:9933f7db9a9b 183 if (!cleared) {
liroy_theilor 6:c8fa01cd3dba 184
liroy_theilor 4:bb9c545c6d7f 185 cleared = 1;
liroy_theilor 4:bb9c545c6d7f 186
liroy_theilor 4:bb9c545c6d7f 187
liroy_theilor 4:bb9c545c6d7f 188
liroy_theilor 4:bb9c545c6d7f 189
liroy_theilor 4:bb9c545c6d7f 190
liroy_theilor 4:bb9c545c6d7f 191
liroy_theilor 4:bb9c545c6d7f 192
liroy_theilor 4:bb9c545c6d7f 193 // TOUCHES 1
liroy_theilor 4:bb9c545c6d7f 194 if ((x>= 195&& x<= 235) && (y>= 120 && y<= 160))
liroy_theilor 4:bb9c545c6d7f 195 {
liroy_theilor 4:bb9c545c6d7f 196 sprintf((char*)text, "Touches: 1");
liroy_theilor 4:bb9c545c6d7f 197 BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
liroy_theilor 4:bb9c545c6d7f 198 PSWD[i]='1';
liroy_theilor 4:bb9c545c6d7f 199 i++;
liroy_theilor 4:bb9c545c6d7f 200
liroy_theilor 4:bb9c545c6d7f 201 }
liroy_theilor 4:bb9c545c6d7f 202
liroy_theilor 4:bb9c545c6d7f 203 // TOUCHES 2
liroy_theilor 4:bb9c545c6d7f 204 if ((x>= 240&& x<= 280) && (y>= 120 && y<= 160))
liroy_theilor 4:bb9c545c6d7f 205 {
liroy_theilor 4:bb9c545c6d7f 206 sprintf((char*)text, "Touches: 2");
liroy_theilor 4:bb9c545c6d7f 207 BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
liroy_theilor 4:bb9c545c6d7f 208
liroy_theilor 4:bb9c545c6d7f 209 PSWD[i]='2';
liroy_theilor 4:bb9c545c6d7f 210 i++;
liroy_theilor 4:bb9c545c6d7f 211 }
liroy_theilor 4:bb9c545c6d7f 212 // TOUCHES 3
liroy_theilor 4:bb9c545c6d7f 213 if ((x>= 285&& x<= 325) && (y>= 120 && y<= 160))
liroy_theilor 4:bb9c545c6d7f 214 {
liroy_theilor 4:bb9c545c6d7f 215 sprintf((char*)text, "Touches: 3");
liroy_theilor 4:bb9c545c6d7f 216 BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
liroy_theilor 6:c8fa01cd3dba 217 PSWD[i]='3';
liroy_theilor 4:bb9c545c6d7f 218 i++;
liroy_theilor 4:bb9c545c6d7f 219 }
liroy_theilor 4:bb9c545c6d7f 220
liroy_theilor 4:bb9c545c6d7f 221 // TOUCHES 4
liroy_theilor 4:bb9c545c6d7f 222 if ((x>= 195&& x<= 235) && (y>= 162 && y<= 202))
liroy_theilor 4:bb9c545c6d7f 223 {
liroy_theilor 4:bb9c545c6d7f 224 sprintf((char*)text, "Touches: 4");
liroy_theilor 4:bb9c545c6d7f 225 BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
liroy_theilor 4:bb9c545c6d7f 226 PSWD[i]='4';
liroy_theilor 4:bb9c545c6d7f 227 i++;
liroy_theilor 4:bb9c545c6d7f 228
liroy_theilor 4:bb9c545c6d7f 229 }
liroy_theilor 4:bb9c545c6d7f 230 // TOUCHES 5
liroy_theilor 4:bb9c545c6d7f 231 if ((x>= 240&& x<= 280) && (y>= 162 && y<= 202))
liroy_theilor 4:bb9c545c6d7f 232 {
liroy_theilor 4:bb9c545c6d7f 233 sprintf((char*)text, "Touches: 5");
liroy_theilor 4:bb9c545c6d7f 234 BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
liroy_theilor 4:bb9c545c6d7f 235
liroy_theilor 4:bb9c545c6d7f 236 PSWD[i]='5';
liroy_theilor 4:bb9c545c6d7f 237 i++;
liroy_theilor 4:bb9c545c6d7f 238 }
liroy_theilor 4:bb9c545c6d7f 239 // TOUCHES 6
liroy_theilor 4:bb9c545c6d7f 240 if ((x>= 289&& x<= 318) && (y>= 162&& y<= 202))
liroy_theilor 4:bb9c545c6d7f 241 {
liroy_theilor 4:bb9c545c6d7f 242 sprintf((char*)text, "Touches: 6");
liroy_theilor 4:bb9c545c6d7f 243 BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
liroy_theilor 4:bb9c545c6d7f 244 PSWD[i]='6';
liroy_theilor 4:bb9c545c6d7f 245 i++;
liroy_theilor 4:bb9c545c6d7f 246
liroy_theilor 4:bb9c545c6d7f 247 }
liroy_theilor 4:bb9c545c6d7f 248
liroy_theilor 4:bb9c545c6d7f 249 // TOUCHES 7
liroy_theilor 4:bb9c545c6d7f 250 if ((x>= 195&& x<= 235) && (y>= 204 && y<= 244))
liroy_theilor 4:bb9c545c6d7f 251 {
liroy_theilor 4:bb9c545c6d7f 252 sprintf((char*)text, "Touches: 7");
liroy_theilor 4:bb9c545c6d7f 253 BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
liroy_theilor 4:bb9c545c6d7f 254 PSWD[i]='7';
liroy_theilor 4:bb9c545c6d7f 255 i++;
liroy_theilor 4:bb9c545c6d7f 256 colis++;
liroy_theilor 4:bb9c545c6d7f 257
liroy_theilor 4:bb9c545c6d7f 258
liroy_theilor 4:bb9c545c6d7f 259 }
liroy_theilor 4:bb9c545c6d7f 260 // TOUCHES 8
liroy_theilor 4:bb9c545c6d7f 261 if ((x>= 240&& x<= 280) && (y>= 204 && y<= 244))
liroy_theilor 4:bb9c545c6d7f 262 {
liroy_theilor 4:bb9c545c6d7f 263 sprintf((char*)text, "Touches: 8");
liroy_theilor 4:bb9c545c6d7f 264 BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
liroy_theilor 4:bb9c545c6d7f 265
liroy_theilor 4:bb9c545c6d7f 266 PSWD[i]='8';
liroy_theilor 4:bb9c545c6d7f 267 i++;
liroy_theilor 4:bb9c545c6d7f 268 }
liroy_theilor 4:bb9c545c6d7f 269 // TOUCHES 9
liroy_theilor 4:bb9c545c6d7f 270 if ((x>= 285&& x<= 325) && (y>= 204&& y<= 244))
liroy_theilor 4:bb9c545c6d7f 271 {
liroy_theilor 4:bb9c545c6d7f 272 sprintf((char*)text, "Touches: 9");
liroy_theilor 4:bb9c545c6d7f 273 BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
liroy_theilor 4:bb9c545c6d7f 274 PSWD[i]='9';
liroy_theilor 4:bb9c545c6d7f 275 i++;
liroy_theilor 4:bb9c545c6d7f 276
liroy_theilor 4:bb9c545c6d7f 277 }
liroy_theilor 4:bb9c545c6d7f 278 if ((x>= 220&& x<= 280) && (y>= 250&& y<= 270))
liroy_theilor 4:bb9c545c6d7f 279 {
bcostm 0:9933f7db9a9b 280 sprintf((char*)text, "Touches: 0");
Jerome Coutant 3:9f66aabe7b3b 281 BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
liroy_theilor 4:bb9c545c6d7f 282
liroy_theilor 4:bb9c545c6d7f 283 PSWD[i]='0';
liroy_theilor 4:bb9c545c6d7f 284 i++;
liroy_theilor 4:bb9c545c6d7f 285 }
liroy_theilor 4:bb9c545c6d7f 286
liroy_theilor 4:bb9c545c6d7f 287
liroy_theilor 4:bb9c545c6d7f 288
liroy_theilor 4:bb9c545c6d7f 289
liroy_theilor 4:bb9c545c6d7f 290
liroy_theilor 4:bb9c545c6d7f 291
liroy_theilor 4:bb9c545c6d7f 292 // CODE LETTRE
liroy_theilor 4:bb9c545c6d7f 293
liroy_theilor 4:bb9c545c6d7f 294 if ((PSWD[0]=='2')&& (PSWD[1]=='6')&& (PSWD[2]=='0')&& (PSWD[3]=='5'))
liroy_theilor 4:bb9c545c6d7f 295 {
liroy_theilor 4:bb9c545c6d7f 296 sprintf((char*)text, "CODE BON");
liroy_theilor 4:bb9c545c6d7f 297 BSP_LCD_DisplayStringAt(15, LINE(6), (uint8_t *)&text, CENTER_MODE);
liroy_theilor 4:bb9c545c6d7f 298
liroy_theilor 4:bb9c545c6d7f 299 HAL_Delay(1000);
liroy_theilor 4:bb9c545c6d7f 300
liroy_theilor 4:bb9c545c6d7f 301 servo.pulsewidth_us (1000);
liroy_theilor 6:c8fa01cd3dba 302 HAL_Delay(1000);
liroy_theilor 4:bb9c545c6d7f 303 i=0;
liroy_theilor 4:bb9c545c6d7f 304
liroy_theilor 4:bb9c545c6d7f 305 }
liroy_theilor 4:bb9c545c6d7f 306
liroy_theilor 4:bb9c545c6d7f 307
liroy_theilor 4:bb9c545c6d7f 308 //code colis
liroy_theilor 4:bb9c545c6d7f 309
liroy_theilor 4:bb9c545c6d7f 310 else if ((PSWD[0]=='4')&& (PSWD[1]=='3')&& (PSWD[2]=='2')&& (PSWD[3]=='1'))
liroy_theilor 4:bb9c545c6d7f 311 {
liroy_theilor 4:bb9c545c6d7f 312 colis++;
liroy_theilor 4:bb9c545c6d7f 313 sprintf((char*)text, "CODE BON");
liroy_theilor 4:bb9c545c6d7f 314 BSP_LCD_DisplayStringAt(15, LINE(6), (uint8_t *)&text, CENTER_MODE);
liroy_theilor 4:bb9c545c6d7f 315
liroy_theilor 4:bb9c545c6d7f 316
liroy_theilor 4:bb9c545c6d7f 317
liroy_theilor 4:bb9c545c6d7f 318 HAL_Delay(1000);
liroy_theilor 4:bb9c545c6d7f 319
liroy_theilor 4:bb9c545c6d7f 320 servo.pulsewidth_us (1000);
liroy_theilor 6:c8fa01cd3dba 321 HAL_Delay(1000);
liroy_theilor 4:bb9c545c6d7f 322 i=0;
liroy_theilor 6:c8fa01cd3dba 323 }
liroy_theilor 6:c8fa01cd3dba 324
liroy_theilor 4:bb9c545c6d7f 325
liroy_theilor 4:bb9c545c6d7f 326
liroy_theilor 4:bb9c545c6d7f 327 else if (i>=3)
liroy_theilor 4:bb9c545c6d7f 328 {
liroy_theilor 4:bb9c545c6d7f 329
liroy_theilor 4:bb9c545c6d7f 330
liroy_theilor 4:bb9c545c6d7f 331 BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
liroy_theilor 4:bb9c545c6d7f 332
liroy_theilor 4:bb9c545c6d7f 333
liroy_theilor 4:bb9c545c6d7f 334 }
liroy_theilor 4:bb9c545c6d7f 335 sprintf((char*)text, "Nombre de colis: %d", colis);
liroy_theilor 4:bb9c545c6d7f 336 BSP_LCD_DisplayStringAt(0, LINE(10 ), (uint8_t *)&text, LEFT_MODE);
liroy_theilor 4:bb9c545c6d7f 337
liroy_theilor 4:bb9c545c6d7f 338 compteur=0;
liroy_theilor 4:bb9c545c6d7f 339
liroy_theilor 4:bb9c545c6d7f 340
liroy_theilor 4:bb9c545c6d7f 341 if ((PSWD[0]=='1')&& (PSWD[1]=='2')&& (PSWD[2]=='3')&& (PSWD[3]=='4'))
liroy_theilor 4:bb9c545c6d7f 342 {
liroy_theilor 4:bb9c545c6d7f 343 sprintf((char*)text, "FERMETURE");
liroy_theilor 4:bb9c545c6d7f 344 BSP_LCD_DisplayStringAt(15, LINE(6), (uint8_t *)&text, CENTER_MODE);
liroy_theilor 4:bb9c545c6d7f 345 HAL_Delay(1000);
liroy_theilor 4:bb9c545c6d7f 346
liroy_theilor 6:c8fa01cd3dba 347 servo.pulsewidth_us (2000);
liroy_theilor 4:bb9c545c6d7f 348 HAL_Delay(1000);
liroy_theilor 4:bb9c545c6d7f 349 i=0;
liroy_theilor 4:bb9c545c6d7f 350 }
liroy_theilor 4:bb9c545c6d7f 351
liroy_theilor 4:bb9c545c6d7f 352
liroy_theilor 4:bb9c545c6d7f 353
liroy_theilor 4:bb9c545c6d7f 354
liroy_theilor 4:bb9c545c6d7f 355 }
liroy_theilor 4:bb9c545c6d7f 356
liroy_theilor 4:bb9c545c6d7f 357
liroy_theilor 4:bb9c545c6d7f 358
bcostm 0:9933f7db9a9b 359 }
bcostm 0:9933f7db9a9b 360 }
bcostm 0:9933f7db9a9b 361 }
liroy_theilor 4:bb9c545c6d7f 362
liroy_theilor 4:bb9c545c6d7f 363 void capteurTOR (void)
liroy_theilor 4:bb9c545c6d7f 364 {
liroy_theilor 4:bb9c545c6d7f 365 lecture =capteur.read();
liroy_theilor 4:bb9c545c6d7f 366
liroy_theilor 4:bb9c545c6d7f 367
liroy_theilor 4:bb9c545c6d7f 368 switch(lecture)
liroy_theilor 4:bb9c545c6d7f 369 {
liroy_theilor 6:c8fa01cd3dba 370 case 0: // detection des lettres
liroy_theilor 4:bb9c545c6d7f 371 obstak=true;
liroy_theilor 4:bb9c545c6d7f 372 break;
liroy_theilor 4:bb9c545c6d7f 373
liroy_theilor 4:bb9c545c6d7f 374 case 1:
liroy_theilor 4:bb9c545c6d7f 375 if (obstak==true)
liroy_theilor 4:bb9c545c6d7f 376 {
liroy_theilor 4:bb9c545c6d7f 377 obstak=false;
liroy_theilor 4:bb9c545c6d7f 378 compteur++;
liroy_theilor 4:bb9c545c6d7f 379 }
liroy_theilor 4:bb9c545c6d7f 380 break;
liroy_theilor 4:bb9c545c6d7f 381 }
liroy_theilor 4:bb9c545c6d7f 382 sprintf((char*)affiche, "Nombre de lettre : %d",compteur);
liroy_theilor 4:bb9c545c6d7f 383 BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)&affiche, LEFT_MODE);
liroy_theilor 4:bb9c545c6d7f 384 }