Projet Interfaçage

Dependencies:   BSP_DISCO_F746NG

Committer:
liroy_theilor
Date:
Tue Jun 22 12:38:21 2021 +0000
Revision:
4:bb9c545c6d7f
Parent:
3:9f66aabe7b3b
Programme

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