Rakul Iyngarathasan
/
ROBOT_2-0
noraml
main.cpp@0:7e4a20d28a90, 2019-01-23 (annotated)
- Committer:
- rakul
- Date:
- Wed Jan 23 18:40:02 2019 +0000
- Revision:
- 0:7e4a20d28a90
yolo;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rakul | 0:7e4a20d28a90 | 1 | #include "IHM.h" // contient mbed.h |
rakul | 0:7e4a20d28a90 | 2 | #include "Nboard.h" |
rakul | 0:7e4a20d28a90 | 3 | #define ENFONCE 0 |
rakul | 0:7e4a20d28a90 | 4 | #define CONSTANTE 0.7 |
rakul | 0:7e4a20d28a90 | 5 | |
rakul | 0:7e4a20d28a90 | 6 | IHM ihm; |
rakul | 0:7e4a20d28a90 | 7 | Timer timer; |
rakul | 0:7e4a20d28a90 | 8 | char rar; |
rakul | 0:7e4a20d28a90 | 9 | float vpot,capt_eg,capt_cg,capt_cd,capt_rac,capt_ed; |
rakul | 0:7e4a20d28a90 | 10 | |
rakul | 0:7e4a20d28a90 | 11 | void test(); |
rakul | 0:7e4a20d28a90 | 12 | void course(); |
rakul | 0:7e4a20d28a90 | 13 | void nouvel_suivi_automate(); |
rakul | 0:7e4a20d28a90 | 14 | void raccourci(); |
rakul | 0:7e4a20d28a90 | 15 | |
rakul | 0:7e4a20d28a90 | 16 | /*-------------------------------------------------------------------------------------------------*/ |
rakul | 0:7e4a20d28a90 | 17 | int main(void) |
rakul | 0:7e4a20d28a90 | 18 | { |
rakul | 0:7e4a20d28a90 | 19 | unsigned char choix=0; |
rakul | 0:7e4a20d28a90 | 20 | |
rakul | 0:7e4a20d28a90 | 21 | ihm.LCD_clear(); |
rakul | 0:7e4a20d28a90 | 22 | timer.reset(); |
rakul | 0:7e4a20d28a90 | 23 | timer.start(); |
rakul | 0:7e4a20d28a90 | 24 | |
rakul | 0:7e4a20d28a90 | 25 | while (timer.read()<3) |
rakul | 0:7e4a20d28a90 | 26 | { |
rakul | 0:7e4a20d28a90 | 27 | if (BP0==ENFONCE) |
rakul | 0:7e4a20d28a90 | 28 | choix=1; |
rakul | 0:7e4a20d28a90 | 29 | } |
rakul | 0:7e4a20d28a90 | 30 | |
rakul | 0:7e4a20d28a90 | 31 | if (choix==1) |
rakul | 0:7e4a20d28a90 | 32 | { |
rakul | 0:7e4a20d28a90 | 33 | test(); |
rakul | 0:7e4a20d28a90 | 34 | } |
rakul | 0:7e4a20d28a90 | 35 | |
rakul | 0:7e4a20d28a90 | 36 | else |
rakul | 0:7e4a20d28a90 | 37 | course(); |
rakul | 0:7e4a20d28a90 | 38 | |
rakul | 0:7e4a20d28a90 | 39 | return 0; |
rakul | 0:7e4a20d28a90 | 40 | } |
rakul | 0:7e4a20d28a90 | 41 | /*----------------------------------------------------------------------------------------------------------*/ |
rakul | 0:7e4a20d28a90 | 42 | void test(void) |
rakul | 0:7e4a20d28a90 | 43 | { |
rakul | 0:7e4a20d28a90 | 44 | |
rakul | 0:7e4a20d28a90 | 45 | ihm.LCD_gotoxy(0,0); |
rakul | 0:7e4a20d28a90 | 46 | ihm.LCD_printf("TEST Robot D3"); |
rakul | 0:7e4a20d28a90 | 47 | wait(1.0); |
rakul | 0:7e4a20d28a90 | 48 | |
rakul | 0:7e4a20d28a90 | 49 | pwmg.period_us(50); |
rakul | 0:7e4a20d28a90 | 50 | pwmd.period_us(50); |
rakul | 0:7e4a20d28a90 | 51 | ihm.LCD_clear(); |
rakul | 0:7e4a20d28a90 | 52 | |
rakul | 0:7e4a20d28a90 | 53 | while (1) |
rakul | 0:7e4a20d28a90 | 54 | { |
rakul | 0:7e4a20d28a90 | 55 | BusSelectMux = Ana1;//centre gauche |
rakul | 0:7e4a20d28a90 | 56 | wait_us(1); |
rakul | 0:7e4a20d28a90 | 57 | capt_cg=AnaIn.read(); |
rakul | 0:7e4a20d28a90 | 58 | |
rakul | 0:7e4a20d28a90 | 59 | BusSelectMux = Ana2;//centre droit |
rakul | 0:7e4a20d28a90 | 60 | wait_us(1); |
rakul | 0:7e4a20d28a90 | 61 | capt_cd=AnaIn.read(); |
rakul | 0:7e4a20d28a90 | 62 | |
rakul | 0:7e4a20d28a90 | 63 | BusSelectMux = Ana0;//gauche |
rakul | 0:7e4a20d28a90 | 64 | wait_us(1); |
rakul | 0:7e4a20d28a90 | 65 | capt_eg=AnaIn.read(); |
rakul | 0:7e4a20d28a90 | 66 | |
rakul | 0:7e4a20d28a90 | 67 | BusSelectMux = Ana5;//droite |
rakul | 0:7e4a20d28a90 | 68 | wait_us(1); |
rakul | 0:7e4a20d28a90 | 69 | capt_ed=AnaIn.read(); |
rakul | 0:7e4a20d28a90 | 70 | |
rakul | 0:7e4a20d28a90 | 71 | BusSelectMux = Ana4;//raccourci |
rakul | 0:7e4a20d28a90 | 72 | wait_us(1); |
rakul | 0:7e4a20d28a90 | 73 | capt_rac=AnaIn.read(); |
rakul | 0:7e4a20d28a90 | 74 | |
rakul | 0:7e4a20d28a90 | 75 | |
rakul | 0:7e4a20d28a90 | 76 | if (capt_rac>CONSTANTE) |
rakul | 0:7e4a20d28a90 | 77 | led4=1; |
rakul | 0:7e4a20d28a90 | 78 | else |
rakul | 0:7e4a20d28a90 | 79 | led4=0; |
rakul | 0:7e4a20d28a90 | 80 | |
rakul | 0:7e4a20d28a90 | 81 | if (capt_eg>CONSTANTE) |
rakul | 0:7e4a20d28a90 | 82 | led3=1; |
rakul | 0:7e4a20d28a90 | 83 | else |
rakul | 0:7e4a20d28a90 | 84 | led3=0; |
rakul | 0:7e4a20d28a90 | 85 | |
rakul | 0:7e4a20d28a90 | 86 | if (capt_cg>CONSTANTE) |
rakul | 0:7e4a20d28a90 | 87 | led2=1; |
rakul | 0:7e4a20d28a90 | 88 | else |
rakul | 0:7e4a20d28a90 | 89 | led2=0; |
rakul | 0:7e4a20d28a90 | 90 | |
rakul | 0:7e4a20d28a90 | 91 | if (capt_cd>CONSTANTE) |
rakul | 0:7e4a20d28a90 | 92 | led1=1; |
rakul | 0:7e4a20d28a90 | 93 | else |
rakul | 0:7e4a20d28a90 | 94 | led1=0; |
rakul | 0:7e4a20d28a90 | 95 | |
rakul | 0:7e4a20d28a90 | 96 | if (capt_ed>CONSTANTE) |
rakul | 0:7e4a20d28a90 | 97 | LED0=1; |
rakul | 0:7e4a20d28a90 | 98 | else |
rakul | 0:7e4a20d28a90 | 99 | LED0=0; |
rakul | 0:7e4a20d28a90 | 100 | |
rakul | 0:7e4a20d28a90 | 101 | |
rakul | 0:7e4a20d28a90 | 102 | ihm.LCD_gotoxy(0,0); |
rakul | 0:7e4a20d28a90 | 103 | ihm.LCD_printf("%3.2f", capt_rac);//raccourci |
rakul | 0:7e4a20d28a90 | 104 | ihm.LCD_gotoxy(1,3); |
rakul | 0:7e4a20d28a90 | 105 | ihm.LCD_printf("%3.2f ", capt_eg);//gauche |
rakul | 0:7e4a20d28a90 | 106 | ihm.LCD_gotoxy(0,6); |
rakul | 0:7e4a20d28a90 | 107 | ihm.LCD_printf("%3.2f", capt_cg);//centre gauche |
rakul | 0:7e4a20d28a90 | 108 | ihm.LCD_gotoxy(1,9); |
rakul | 0:7e4a20d28a90 | 109 | ihm.LCD_printf("%3.2f", capt_cd);//centre droit |
rakul | 0:7e4a20d28a90 | 110 | ihm.LCD_gotoxy(0,12); |
rakul | 0:7e4a20d28a90 | 111 | ihm.LCD_printf("%3.2f", capt_ed);//droite |
rakul | 0:7e4a20d28a90 | 112 | |
rakul | 0:7e4a20d28a90 | 113 | //Test moteurs. |
rakul | 0:7e4a20d28a90 | 114 | if(BP2==0)//gauche |
rakul | 0:7e4a20d28a90 | 115 | { |
rakul | 0:7e4a20d28a90 | 116 | pwmg.write(0); |
rakul | 0:7e4a20d28a90 | 117 | pwmd.write(0.25); |
rakul | 0:7e4a20d28a90 | 118 | wait(2); |
rakul | 0:7e4a20d28a90 | 119 | pwmg.write(0); |
rakul | 0:7e4a20d28a90 | 120 | pwmd.write(0); |
rakul | 0:7e4a20d28a90 | 121 | } |
rakul | 0:7e4a20d28a90 | 122 | if(BP1==0)//droite |
rakul | 0:7e4a20d28a90 | 123 | { |
rakul | 0:7e4a20d28a90 | 124 | pwmg.write(0.25); |
rakul | 0:7e4a20d28a90 | 125 | pwmd.write(0); |
rakul | 0:7e4a20d28a90 | 126 | wait(2); |
rakul | 0:7e4a20d28a90 | 127 | pwmg.write(0); |
rakul | 0:7e4a20d28a90 | 128 | pwmd.write(0); |
rakul | 0:7e4a20d28a90 | 129 | } |
rakul | 0:7e4a20d28a90 | 130 | if(BP0 == 0) |
rakul | 0:7e4a20d28a90 | 131 | { |
rakul | 0:7e4a20d28a90 | 132 | while(BP0==0) |
rakul | 0:7e4a20d28a90 | 133 | { |
rakul | 0:7e4a20d28a90 | 134 | BusSelectMux = Vpot; |
rakul | 0:7e4a20d28a90 | 135 | wait_us(1); |
rakul | 0:7e4a20d28a90 | 136 | vpot=AnaIn.read(); |
rakul | 0:7e4a20d28a90 | 137 | pwmd.write(vpot); |
rakul | 0:7e4a20d28a90 | 138 | pwmg.write(vpot); |
rakul | 0:7e4a20d28a90 | 139 | } |
rakul | 0:7e4a20d28a90 | 140 | pwmg.write(0); |
rakul | 0:7e4a20d28a90 | 141 | pwmd.write(0); |
rakul | 0:7e4a20d28a90 | 142 | } |
rakul | 0:7e4a20d28a90 | 143 | //Test Bouton Poussoir. |
rakul | 0:7e4a20d28a90 | 144 | if (BP==1) |
rakul | 0:7e4a20d28a90 | 145 | led7=1; |
rakul | 0:7e4a20d28a90 | 146 | else |
rakul | 0:7e4a20d28a90 | 147 | led7=0; |
rakul | 0:7e4a20d28a90 | 148 | |
rakul | 0:7e4a20d28a90 | 149 | if (Jack==0) |
rakul | 0:7e4a20d28a90 | 150 | course(); |
rakul | 0:7e4a20d28a90 | 151 | } |
rakul | 0:7e4a20d28a90 | 152 | } |
rakul | 0:7e4a20d28a90 | 153 | /*----------------------------------------------------------------------------------------------------------*/ |
rakul | 0:7e4a20d28a90 | 154 | void course(void) |
rakul | 0:7e4a20d28a90 | 155 | { |
rakul | 0:7e4a20d28a90 | 156 | ihm.LCD_clear(); |
rakul | 0:7e4a20d28a90 | 157 | LEDs=0x80; |
rakul | 0:7e4a20d28a90 | 158 | |
rakul | 0:7e4a20d28a90 | 159 | pwmg.period_us(50); |
rakul | 0:7e4a20d28a90 | 160 | pwmd.period_us(50); |
rakul | 0:7e4a20d28a90 | 161 | |
rakul | 0:7e4a20d28a90 | 162 | ihm.LCD_gotoxy(0,0); |
rakul | 0:7e4a20d28a90 | 163 | ihm.LCD_printf("COURSE D3: Jack?"); |
rakul | 0:7e4a20d28a90 | 164 | |
rakul | 0:7e4a20d28a90 | 165 | //Attente du Jack. |
rakul | 0:7e4a20d28a90 | 166 | |
rakul | 0:7e4a20d28a90 | 167 | while (Jack==1) |
rakul | 0:7e4a20d28a90 | 168 | { |
rakul | 0:7e4a20d28a90 | 169 | BusSelectMux = Vpot; |
rakul | 0:7e4a20d28a90 | 170 | wait_us(1); |
rakul | 0:7e4a20d28a90 | 171 | vpot=AnaIn.read(); |
rakul | 0:7e4a20d28a90 | 172 | |
rakul | 0:7e4a20d28a90 | 173 | ihm.LCD_gotoxy(1,0); |
rakul | 0:7e4a20d28a90 | 174 | ihm.LCD_printf("%3.2f",vpot); //Affichage valeur potentiomètre. |
rakul | 0:7e4a20d28a90 | 175 | |
rakul | 0:7e4a20d28a90 | 176 | //Chenillard d'attente. |
rakul | 0:7e4a20d28a90 | 177 | LEDs=LEDs>>1; |
rakul | 0:7e4a20d28a90 | 178 | wait(0.5-vpot); |
rakul | 0:7e4a20d28a90 | 179 | if(LEDs==0x01) |
rakul | 0:7e4a20d28a90 | 180 | { |
rakul | 0:7e4a20d28a90 | 181 | LEDs=0x80; |
rakul | 0:7e4a20d28a90 | 182 | wait(0.5-vpot); |
rakul | 0:7e4a20d28a90 | 183 | } |
rakul | 0:7e4a20d28a90 | 184 | } |
rakul | 0:7e4a20d28a90 | 185 | |
rakul | 0:7e4a20d28a90 | 186 | //Lancement du timer. |
rakul | 0:7e4a20d28a90 | 187 | timer.reset(); |
rakul | 0:7e4a20d28a90 | 188 | timer.start(); |
rakul | 0:7e4a20d28a90 | 189 | |
rakul | 0:7e4a20d28a90 | 190 | //Départ du robot sur la ligne. |
rakul | 0:7e4a20d28a90 | 191 | |
rakul | 0:7e4a20d28a90 | 192 | while(1) |
rakul | 0:7e4a20d28a90 | 193 | { |
rakul | 0:7e4a20d28a90 | 194 | /*if (0<rar && rar<3) |
rakul | 0:7e4a20d28a90 | 195 | {raccourci();} |
rakul | 0:7e4a20d28a90 | 196 | else*/ |
rakul | 0:7e4a20d28a90 | 197 | nouvel_suivi_automate(); |
rakul | 0:7e4a20d28a90 | 198 | |
rakul | 0:7e4a20d28a90 | 199 | } |
rakul | 0:7e4a20d28a90 | 200 | |
rakul | 0:7e4a20d28a90 | 201 | |
rakul | 0:7e4a20d28a90 | 202 | } |
rakul | 0:7e4a20d28a90 | 203 | /*--------------------------------------------------------------------------------------------------------------------------*/ |
rakul | 0:7e4a20d28a90 | 204 | void nouvel_suivi_automate(void) |
rakul | 0:7e4a20d28a90 | 205 | { |
rakul | 0:7e4a20d28a90 | 206 | typedef enum {ligne, sortieD, attente, sortieG,arret} type_suivi ; |
rakul | 0:7e4a20d28a90 | 207 | static type_suivi suivi = ligne ; |
rakul | 0:7e4a20d28a90 | 208 | |
rakul | 0:7e4a20d28a90 | 209 | BusSelectMux = Ana1;//centre gauche |
rakul | 0:7e4a20d28a90 | 210 | wait_us(1); |
rakul | 0:7e4a20d28a90 | 211 | capt_cg=AnaIn.read(); |
rakul | 0:7e4a20d28a90 | 212 | |
rakul | 0:7e4a20d28a90 | 213 | BusSelectMux = Ana2;//centre droit |
rakul | 0:7e4a20d28a90 | 214 | wait_us(1); |
rakul | 0:7e4a20d28a90 | 215 | capt_cd=AnaIn.read(); |
rakul | 0:7e4a20d28a90 | 216 | |
rakul | 0:7e4a20d28a90 | 217 | BusSelectMux = Ana0;//gauche |
rakul | 0:7e4a20d28a90 | 218 | wait_us(1); |
rakul | 0:7e4a20d28a90 | 219 | capt_eg=AnaIn.read(); |
rakul | 0:7e4a20d28a90 | 220 | |
rakul | 0:7e4a20d28a90 | 221 | BusSelectMux = Ana5;//droite |
rakul | 0:7e4a20d28a90 | 222 | wait_us(1); |
rakul | 0:7e4a20d28a90 | 223 | capt_ed=AnaIn.read(); |
rakul | 0:7e4a20d28a90 | 224 | |
rakul | 0:7e4a20d28a90 | 225 | BusSelectMux = Ana4;//raccourci |
rakul | 0:7e4a20d28a90 | 226 | wait_us(1); |
rakul | 0:7e4a20d28a90 | 227 | capt_rac=AnaIn.read(); |
rakul | 0:7e4a20d28a90 | 228 | |
rakul | 0:7e4a20d28a90 | 229 | |
rakul | 0:7e4a20d28a90 | 230 | switch(suivi) |
rakul | 0:7e4a20d28a90 | 231 | { |
rakul | 0:7e4a20d28a90 | 232 | case ligne: |
rakul | 0:7e4a20d28a90 | 233 | pwmg.write(0.26+vpot); |
rakul | 0:7e4a20d28a90 | 234 | pwmd.write(0.25+vpot); |
rakul | 0:7e4a20d28a90 | 235 | |
rakul | 0:7e4a20d28a90 | 236 | /* if(capt_rac>CONSTANTE && capt_ed<CONSTANTE) |
rakul | 0:7e4a20d28a90 | 237 | { |
rakul | 0:7e4a20d28a90 | 238 | rar=1; |
rakul | 0:7e4a20d28a90 | 239 | }*/ |
rakul | 0:7e4a20d28a90 | 240 | if(capt_cg > CONSTANTE && capt_cd < CONSTANTE) |
rakul | 0:7e4a20d28a90 | 241 | { |
rakul | 0:7e4a20d28a90 | 242 | suivi = sortieD; |
rakul | 0:7e4a20d28a90 | 243 | } |
rakul | 0:7e4a20d28a90 | 244 | else if(capt_cg < CONSTANTE && capt_cd > CONSTANTE) |
rakul | 0:7e4a20d28a90 | 245 | { |
rakul | 0:7e4a20d28a90 | 246 | suivi = sortieG; |
rakul | 0:7e4a20d28a90 | 247 | |
rakul | 0:7e4a20d28a90 | 248 | } |
rakul | 0:7e4a20d28a90 | 249 | |
rakul | 0:7e4a20d28a90 | 250 | |
rakul | 0:7e4a20d28a90 | 251 | break; |
rakul | 0:7e4a20d28a90 | 252 | |
rakul | 0:7e4a20d28a90 | 253 | case sortieD: //correction sortie droite |
rakul | 0:7e4a20d28a90 | 254 | pwmg.write(0.15+vpot); |
rakul | 0:7e4a20d28a90 | 255 | pwmd.write(0.45+vpot); |
rakul | 0:7e4a20d28a90 | 256 | |
rakul | 0:7e4a20d28a90 | 257 | if(capt_cg > CONSTANTE && capt_cd > CONSTANTE) |
rakul | 0:7e4a20d28a90 | 258 | { |
rakul | 0:7e4a20d28a90 | 259 | suivi = ligne; |
rakul | 0:7e4a20d28a90 | 260 | } |
rakul | 0:7e4a20d28a90 | 261 | |
rakul | 0:7e4a20d28a90 | 262 | break; |
rakul | 0:7e4a20d28a90 | 263 | |
rakul | 0:7e4a20d28a90 | 264 | case sortieG: //correction sortie gauche |
rakul | 0:7e4a20d28a90 | 265 | pwmg.write(0.45+vpot); |
rakul | 0:7e4a20d28a90 | 266 | pwmd.write(0.15+vpot); |
rakul | 0:7e4a20d28a90 | 267 | |
rakul | 0:7e4a20d28a90 | 268 | if(capt_cg > CONSTANTE && capt_cd > CONSTANTE) |
rakul | 0:7e4a20d28a90 | 269 | { |
rakul | 0:7e4a20d28a90 | 270 | suivi = ligne; |
rakul | 0:7e4a20d28a90 | 271 | } |
rakul | 0:7e4a20d28a90 | 272 | break; |
rakul | 0:7e4a20d28a90 | 273 | case arret: |
rakul | 0:7e4a20d28a90 | 274 | |
rakul | 0:7e4a20d28a90 | 275 | timer.stop(); |
rakul | 0:7e4a20d28a90 | 276 | ihm.LCD_gotoxy(1,7); |
rakul | 0:7e4a20d28a90 | 277 | ihm.LCD_printf("%.2fsec",timer.read()); |
rakul | 0:7e4a20d28a90 | 278 | |
rakul | 0:7e4a20d28a90 | 279 | pwmg.write(0); |
rakul | 0:7e4a20d28a90 | 280 | pwmd.write(0); |
rakul | 0:7e4a20d28a90 | 281 | |
rakul | 0:7e4a20d28a90 | 282 | if (Jack==1) |
rakul | 0:7e4a20d28a90 | 283 | { |
rakul | 0:7e4a20d28a90 | 284 | wait(0.2); |
rakul | 0:7e4a20d28a90 | 285 | while(Jack==1); |
rakul | 0:7e4a20d28a90 | 286 | course(); |
rakul | 0:7e4a20d28a90 | 287 | } |
rakul | 0:7e4a20d28a90 | 288 | break; |
rakul | 0:7e4a20d28a90 | 289 | |
rakul | 0:7e4a20d28a90 | 290 | } |
rakul | 0:7e4a20d28a90 | 291 | |
rakul | 0:7e4a20d28a90 | 292 | if (BP==1) |
rakul | 0:7e4a20d28a90 | 293 | suivi=arret; |
rakul | 0:7e4a20d28a90 | 294 | } |
rakul | 0:7e4a20d28a90 | 295 | /*---------------------------------------------------------------------------------------*/ |
rakul | 0:7e4a20d28a90 | 296 | |
rakul | 0:7e4a20d28a90 | 297 | void raccourci(void) |
rakul | 0:7e4a20d28a90 | 298 | { |
rakul | 0:7e4a20d28a90 | 299 | typedef enum {ligne, sortieD, attente, sortieG,raccour} type_suivi ; |
rakul | 0:7e4a20d28a90 | 300 | static type_suivi suivi = ligne ; |
rakul | 0:7e4a20d28a90 | 301 | |
rakul | 0:7e4a20d28a90 | 302 | BusSelectMux = Ana1;//centre gauche |
rakul | 0:7e4a20d28a90 | 303 | wait_us(1); |
rakul | 0:7e4a20d28a90 | 304 | capt_cg=AnaIn.read(); |
rakul | 0:7e4a20d28a90 | 305 | |
rakul | 0:7e4a20d28a90 | 306 | BusSelectMux = Ana2;//centre droit |
rakul | 0:7e4a20d28a90 | 307 | wait_us(1); |
rakul | 0:7e4a20d28a90 | 308 | capt_cd=AnaIn.read(); |
rakul | 0:7e4a20d28a90 | 309 | |
rakul | 0:7e4a20d28a90 | 310 | BusSelectMux = Ana0;//gauche |
rakul | 0:7e4a20d28a90 | 311 | wait_us(1); |
rakul | 0:7e4a20d28a90 | 312 | capt_eg=AnaIn.read(); |
rakul | 0:7e4a20d28a90 | 313 | |
rakul | 0:7e4a20d28a90 | 314 | BusSelectMux = Ana5;//droite |
rakul | 0:7e4a20d28a90 | 315 | wait_us(1); |
rakul | 0:7e4a20d28a90 | 316 | capt_ed=AnaIn.read(); |
rakul | 0:7e4a20d28a90 | 317 | |
rakul | 0:7e4a20d28a90 | 318 | BusSelectMux = Ana4;//raccourci |
rakul | 0:7e4a20d28a90 | 319 | wait_us(1); |
rakul | 0:7e4a20d28a90 | 320 | capt_rac=AnaIn.read(); |
rakul | 0:7e4a20d28a90 | 321 | |
rakul | 0:7e4a20d28a90 | 322 | BusSelectMux = Vpot;//potentiometre |
rakul | 0:7e4a20d28a90 | 323 | wait_us(1); |
rakul | 0:7e4a20d28a90 | 324 | vpot=AnaIn.read(); |
rakul | 0:7e4a20d28a90 | 325 | |
rakul | 0:7e4a20d28a90 | 326 | |
rakul | 0:7e4a20d28a90 | 327 | switch(suivi) |
rakul | 0:7e4a20d28a90 | 328 | { |
rakul | 0:7e4a20d28a90 | 329 | case ligne: |
rakul | 0:7e4a20d28a90 | 330 | pwmg.write(0.257); |
rakul | 0:7e4a20d28a90 | 331 | pwmd.write(0.25); |
rakul | 0:7e4a20d28a90 | 332 | |
rakul | 0:7e4a20d28a90 | 333 | |
rakul | 0:7e4a20d28a90 | 334 | if(capt_cg < CONSTANTE && capt_cd > CONSTANTE) |
rakul | 0:7e4a20d28a90 | 335 | { |
rakul | 0:7e4a20d28a90 | 336 | suivi = sortieG; |
rakul | 0:7e4a20d28a90 | 337 | } |
rakul | 0:7e4a20d28a90 | 338 | if(capt_cg > CONSTANTE && capt_cd < CONSTANTE) |
rakul | 0:7e4a20d28a90 | 339 | { |
rakul | 0:7e4a20d28a90 | 340 | suivi = sortieD; |
rakul | 0:7e4a20d28a90 | 341 | } |
rakul | 0:7e4a20d28a90 | 342 | break; |
rakul | 0:7e4a20d28a90 | 343 | |
rakul | 0:7e4a20d28a90 | 344 | case sortieD: //correction sortie droite |
rakul | 0:7e4a20d28a90 | 345 | pwmg.write(0.15); |
rakul | 0:7e4a20d28a90 | 346 | pwmd.write(0.25); |
rakul | 0:7e4a20d28a90 | 347 | |
rakul | 0:7e4a20d28a90 | 348 | if(capt_cg > CONSTANTE && capt_cd >CONSTANTE) |
rakul | 0:7e4a20d28a90 | 349 | { |
rakul | 0:7e4a20d28a90 | 350 | suivi = ligne; |
rakul | 0:7e4a20d28a90 | 351 | } |
rakul | 0:7e4a20d28a90 | 352 | |
rakul | 0:7e4a20d28a90 | 353 | break; |
rakul | 0:7e4a20d28a90 | 354 | |
rakul | 0:7e4a20d28a90 | 355 | case sortieG: //correction sortie gauche |
rakul | 0:7e4a20d28a90 | 356 | pwmg.write(0.25); |
rakul | 0:7e4a20d28a90 | 357 | pwmd.write(0.15); |
rakul | 0:7e4a20d28a90 | 358 | |
rakul | 0:7e4a20d28a90 | 359 | if(capt_cg > CONSTANTE && capt_cd > CONSTANTE) |
rakul | 0:7e4a20d28a90 | 360 | { |
rakul | 0:7e4a20d28a90 | 361 | suivi = ligne; |
rakul | 0:7e4a20d28a90 | 362 | } |
rakul | 0:7e4a20d28a90 | 363 | |
rakul | 0:7e4a20d28a90 | 364 | break; |
rakul | 0:7e4a20d28a90 | 365 | |
rakul | 0:7e4a20d28a90 | 366 | case attente: //correction sortie gauche |
rakul | 0:7e4a20d28a90 | 367 | pwmg.write(0.257); |
rakul | 0:7e4a20d28a90 | 368 | pwmd.write(0.25); |
rakul | 0:7e4a20d28a90 | 369 | |
rakul | 0:7e4a20d28a90 | 370 | |
rakul | 0:7e4a20d28a90 | 371 | if(capt_rac > CONSTANTE ) |
rakul | 0:7e4a20d28a90 | 372 | { |
rakul | 0:7e4a20d28a90 | 373 | suivi = raccour; |
rakul | 0:7e4a20d28a90 | 374 | } |
rakul | 0:7e4a20d28a90 | 375 | |
rakul | 0:7e4a20d28a90 | 376 | break; |
rakul | 0:7e4a20d28a90 | 377 | |
rakul | 0:7e4a20d28a90 | 378 | case raccour: //correction sortie gauche |
rakul | 0:7e4a20d28a90 | 379 | while(capt_ed<CONSTANTE) |
rakul | 0:7e4a20d28a90 | 380 | { |
rakul | 0:7e4a20d28a90 | 381 | pwmg.write(0.01); |
rakul | 0:7e4a20d28a90 | 382 | pwmd.write(0.2); |
rakul | 0:7e4a20d28a90 | 383 | } |
rakul | 0:7e4a20d28a90 | 384 | suivi = ligne; |
rakul | 0:7e4a20d28a90 | 385 | rar++; |
rakul | 0:7e4a20d28a90 | 386 | |
rakul | 0:7e4a20d28a90 | 387 | break; |
rakul | 0:7e4a20d28a90 | 388 | if(capt_rac>0.8) |
rakul | 0:7e4a20d28a90 | 389 | {suivi =attente;} |
rakul | 0:7e4a20d28a90 | 390 | } |
rakul | 0:7e4a20d28a90 | 391 | } |