projet neotim mpp / Mbed 2 deprecated projet_v4

Dependencies:   mbed

Committer:
jdeschamps
Date:
Tue Jun 16 07:24:14 2020 +0000
Revision:
5:3e44d8755e88
Parent:
4:1d58769720c6
oui

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dg81 0:5fb4c7e603cf 1
dg81 0:5fb4c7e603cf 2 #include "mbed.h"
dg81 0:5fb4c7e603cf 3 /*************** Variables globales **************************/
jdeschamps 2:ee896365f8fe 4 volatile int flag_timer_etat=0; //ce timer séquence l'alimaentation des phases du moteur, sa fréquence est réglable avec le potentiomètre + trame vitesse
jdeschamps 2:ee896365f8fe 5 volatile int flag_timer_reglage_vitesse=0; //ce timer lit le réglage de la vitesse tous les 0.1 s
jdeschamps 2:ee896365f8fe 6 volatile int flag_fc_haut=0; //interruption sur SW2
jdeschamps 2:ee896365f8fe 7 volatile int flag_contact=0; //interruption sur SW3
jdeschamps 4:1d58769720c6 8 volatile int flag_retour=0;
jdeschamps 5:3e44d8755e88 9 volatile int flag_monte=0;
jdeschamps 5:3e44d8755e88 10 volatile int flag_descend=0;
jdeschamps 5:3e44d8755e88 11 volatile int flag_stop=0;
jdeschamps 5:3e44d8755e88 12 volatile int flag_position=0;
dg81 0:5fb4c7e603cf 13 /*************** Interfaces utilisés *************************/
jdeschamps 1:bb5b935c0aa9 14 Serial pc(USBTX, USBRX,9600); // liaison USB
dg81 0:5fb4c7e603cf 15 Ticker timer_etat; // Interruptions temporelles (timout)
dg81 0:5fb4c7e603cf 16 Ticker timer_reglage_vitesse;
jdeschamps 5:3e44d8755e88 17 DigitalOut DIRA(PTD3); // sorties logiques
jdeschamps 5:3e44d8755e88 18 DigitalOut BRKA(PTC4);
jdeschamps 5:3e44d8755e88 19 DigitalOut DIRB(PTD1);
jdeschamps 5:3e44d8755e88 20 DigitalOut BRKB(PTC12);
jdeschamps 1:bb5b935c0aa9 21 DigitalOut ENA(PTA1);
jdeschamps 1:bb5b935c0aa9 22 DigitalOut ENB(PTD2);
jdeschamps 1:bb5b935c0aa9 23 AnalogIn ain0(A0); //(lecture potentiometre vitesse) // entrées analogiques
jdeschamps 2:ee896365f8fe 24 AnalogIn ain1(A1); // (lecture potentiometre lecture position)
jdeschamps 5:3e44d8755e88 25 InterruptIn fc_haut(SW2); // SW2 est associé à une interruption kbi s'appelant fc_haut
jdeschamps 5:3e44d8755e88 26 InterruptIn contact(SW3); // SW3 est associé à une interruption kbi s'appelant contact
jdeschamps 5:3e44d8755e88 27 InterruptIn monte (D4); // D4 est associé à une interruption kbi s'appelant monte
jdeschamps 5:3e44d8755e88 28 InterruptIn descend (D8); // D3 est associé à une interruption kbi s'appelant descend
jdeschamps 5:3e44d8755e88 29 InterruptIn retour (D7); // D7 est associé à une interruption kbi s'appelant retour
jdeschamps 5:3e44d8755e88 30 InterruptIn stop (D6); // D6 est associé à une interruption kbi s'appelant stop
jdeschamps 5:3e44d8755e88 31 //InterruptIn position;
dg81 0:5fb4c7e603cf 32 /*************** Programmes d'interruption *******************/
jdeschamps 2:ee896365f8fe 33 void IT_timer_etat() { // sequencement phases moteur dont la fréquence est réglable potentiomètre/trame
dg81 0:5fb4c7e603cf 34 flag_timer_etat=1;
dg81 0:5fb4c7e603cf 35 }
jdeschamps 2:ee896365f8fe 36 void IT_timer_reglage_vitesse() { // reglage de la vitesse tous les 100 ms
dg81 0:5fb4c7e603cf 37 flag_timer_reglage_vitesse=1;
dg81 0:5fb4c7e603cf 38 }
dg81 0:5fb4c7e603cf 39 void IT_fc_haut(){ // position haute atteinte (raz)
dg81 0:5fb4c7e603cf 40 flag_fc_haut=1;
dg81 0:5fb4c7e603cf 41 }
dg81 0:5fb4c7e603cf 42 void IT_contact(){ // contact avec echantillon (OK)
dg81 0:5fb4c7e603cf 43 flag_contact=1;
dg81 0:5fb4c7e603cf 44 }
jdeschamps 4:1d58769720c6 45 void IT_retour(){
jdeschamps 4:1d58769720c6 46 flag_retour=1;
jdeschamps 4:1d58769720c6 47 }
jdeschamps 5:3e44d8755e88 48
jdeschamps 5:3e44d8755e88 49 void IT_monte(){
jdeschamps 5:3e44d8755e88 50 flag_monte=1;
jdeschamps 5:3e44d8755e88 51 }
jdeschamps 5:3e44d8755e88 52
jdeschamps 5:3e44d8755e88 53 void IT_descend(){
jdeschamps 5:3e44d8755e88 54 flag_descend=1;
jdeschamps 5:3e44d8755e88 55 }
jdeschamps 5:3e44d8755e88 56
jdeschamps 5:3e44d8755e88 57 void IT_stop(){
jdeschamps 5:3e44d8755e88 58 flag_stop=1;
jdeschamps 5:3e44d8755e88 59 }
dg81 0:5fb4c7e603cf 60 /*************** Programme Principal *************************/
dg81 0:5fb4c7e603cf 61 int main() {
dg81 0:5fb4c7e603cf 62 // declaration des variables
dg81 0:5fb4c7e603cf 63 signed char etat=0; // etat varie de 0 à 7 pour représenter les 8 posiions du mpp
dg81 0:5fb4c7e603cf 64 signed char sens=0; // -1 : recule / 0 : stop / 1 : avance
dg81 0:5fb4c7e603cf 65 float Vpot,Vpos,periode,position_mesuree,frequence; // Vpot potentiomètre reglage vitesse
dg81 0:5fb4c7e603cf 66 // Vpos capteur de position monté sur vérin
dg81 0:5fb4c7e603cf 67 // position_mesurée : position estimée avec Vpos
dg81 0:5fb4c7e603cf 68 // periode : periode de l'IT etat (pilotage moteur)
dg81 0:5fb4c7e603cf 69 // frequence : frequence de l'IT etat (pilotage moteur)
jdeschamps 2:ee896365f8fe 70 char command[30]; // buffer de réception du message
dg81 3:b95fe07153f1 71 int Nb_pas =0; // comptage du nombre de 1/2 pas
jdeschamps 5:3e44d8755e88 72 // int consigne_position =0;
jdeschamps 5:3e44d8755e88 73 // int position_demandee=10;
dg81 3:b95fe07153f1 74 // dans le cas du firgelli :
jdeschamps 5:3e44d8755e88 75 // float a=127.47; // coefficient etalonnage capteur de position
jdeschamps 5:3e44d8755e88 76 // float b=-6.23; // coefficient etalonnage capteur de position
dg81 0:5fb4c7e603cf 77 // Initialisations
jdeschamps 5:3e44d8755e88 78 printf("Demarrage1...\n");
jdeschamps 5:3e44d8755e88 79 DIRA=0; // moteur non alimenté
jdeschamps 5:3e44d8755e88 80 BRKA=0;
jdeschamps 5:3e44d8755e88 81 DIRB=0;
jdeschamps 5:3e44d8755e88 82 BRKB=0;
jdeschamps 2:ee896365f8fe 83 timer_etat.attach(&IT_timer_etat, 0.01); // mise à jour de la commande moteur toutes les 10ms (100Hz)
dg81 0:5fb4c7e603cf 84 timer_reglage_vitesse.attach(&IT_timer_reglage_vitesse, 0.1); // mise à jour de la vitesse moteur par potentiomètre toutes les 0,1s
dg81 3:b95fe07153f1 85 fc_haut.fall(&IT_fc_haut); // declaration des programmes kbi (SW2)
dg81 3:b95fe07153f1 86 contact.fall(&IT_contact); // declaration des programmes kbi (SW3)
jdeschamps 5:3e44d8755e88 87 monte.fall(&IT_monte); // declaration des programmes kbi (D4)
jdeschamps 5:3e44d8755e88 88 descend.fall(&IT_descend); // declaration des programmes kbi (D8)
jdeschamps 5:3e44d8755e88 89 retour.fall(&IT_retour); // declaration des programmes kbi (D7)
jdeschamps 5:3e44d8755e88 90 stop.fall(&IT_stop); // declaration des programmes kbi (D6)
jdeschamps 5:3e44d8755e88 91 printf("Demarrage...\n");
dg81 0:5fb4c7e603cf 92 // boucle programme principal
dg81 0:5fb4c7e603cf 93 while(1) {
dg81 0:5fb4c7e603cf 94 // on traite la liaison serie
dg81 0:5fb4c7e603cf 95 if (pc.readable()){ // test liaison serie
dg81 0:5fb4c7e603cf 96 pc.scanf("%s",command); // ecrit dans "command" la chaine reçue
jdeschamps 5:3e44d8755e88 97 /* if(strcmp(command,"position")==0){
jdeschamps 5:3e44d8755e88 98 position_demandee=Nb_pas*0.0000125;
jdeschamps 5:3e44d8755e88 99 sens=1;
jdeschamps 5:3e44d8755e88 100 ENA=1;
jdeschamps 5:3e44d8755e88 101 ENB=1;*/
dg81 0:5fb4c7e603cf 102 if(strcmp(command,"stop")==0) {
dg81 0:5fb4c7e603cf 103 sens=0; // si j'ai reçu "stop" désactivation du L298 et sens = 0
dg81 0:5fb4c7e603cf 104 ENA=0;
dg81 0:5fb4c7e603cf 105 ENB=0;
jdeschamps 5:3e44d8755e88 106 }// fin stop
dg81 0:5fb4c7e603cf 107 else if (strcmp(command,"avant")==0){
dg81 0:5fb4c7e603cf 108 sens=1; // si j'ai reçu "avant" activation du L298 et sens = 1
dg81 0:5fb4c7e603cf 109 ENA=1;
dg81 0:5fb4c7e603cf 110 ENB=1;
dg81 0:5fb4c7e603cf 111 }
dg81 0:5fb4c7e603cf 112 else if (strcmp(command,"arriere")==0){
dg81 0:5fb4c7e603cf 113 sens=-1; // si j'ai reçu "arriere" activation du L298 et sens = -1
dg81 0:5fb4c7e603cf 114 ENA=1;
dg81 0:5fb4c7e603cf 115 ENB=1;
dg81 0:5fb4c7e603cf 116 }
dg81 0:5fb4c7e603cf 117 else if (strcmp(command,"fc_haut")==0){
dg81 0:5fb4c7e603cf 118 sens=0; // si j'ai reçu "fc_haut" désactivation du L298 et position = 0
dg81 0:5fb4c7e603cf 119 ENA=0; // (réinitialisation du nombre de pas)
dg81 0:5fb4c7e603cf 120 ENB=0;
dg81 3:b95fe07153f1 121 Nb_pas=0;
dg81 0:5fb4c7e603cf 122 }
jdeschamps 4:1d58769720c6 123 else if (strcmp(command,"retour")==0){
jdeschamps 4:1d58769720c6 124 sens=-1;
jdeschamps 4:1d58769720c6 125 ENA=1;
jdeschamps 4:1d58769720c6 126 ENB=1;
jdeschamps 4:1d58769720c6 127 }
dg81 0:5fb4c7e603cf 128 else if (strcmp(command,"contact")==0){
dg81 0:5fb4c7e603cf 129 sens=0; // si j'ai reçu "contact" désactivation du L298 et position = 0
dg81 0:5fb4c7e603cf 130 ENA=0;
dg81 0:5fb4c7e603cf 131 ENB=0;
dg81 3:b95fe07153f1 132 /***********************************************************************************************************/
dg81 3:b95fe07153f1 133 /******************** Traitement contact si firgelli *******************************************************/
dg81 3:b95fe07153f1 134 /***********************************************************************************************************/
dg81 3:b95fe07153f1 135 /*// en mode test sur système avec capteur de position
dg81 3:b95fe07153f1 136 Vpos=ain1.read(); // lecture du capteur de position (firgelli)
dg81 3:b95fe07153f1 137 position_mesuree=a*Vpos+b; // calcule la position (firgelli)
dg81 0:5fb4c7e603cf 138 printf("Npas : %d , Vpos : %f , Position mesuree : %f \n", position,Vpos,position_mesuree);
dg81 0:5fb4c7e603cf 139 // sur le vrai système
dg81 0:5fb4c7e603cf 140 //position_mesuree=position*0.0125;
dg81 3:b95fe07153f1 141 //printf("nb pas = %d\n", position_mesuree); */
dg81 3:b95fe07153f1 142 /***********************************************************************************************************/
dg81 3:b95fe07153f1 143 /******************** Traitement contact si moteur pas à pas ************************************************/
dg81 3:b95fe07153f1 144 /***********************************************************************************************************/
dg81 3:b95fe07153f1 145 // en mode test sur système avec capteur de position
dg81 3:b95fe07153f1 146 position_mesuree=Nb_pas*0.0125;
dg81 3:b95fe07153f1 147 printf("Npas : %d , Vpos : %f , Position mesuree : %f \n", Nb_pas,Vpos,position_mesuree);
dg81 0:5fb4c7e603cf 148 }
jdeschamps 5:3e44d8755e88 149 /* else if(strcmp(command,"vitesse")==0) { // trame vitesse : "vitesse<CR>XXXX<CR>" où XXXX représente la frequence de pilotage du moteur
dg81 0:5fb4c7e603cf 150 pc.scanf("%s",command); // lecture de XXXX la frequence de pilotage
dg81 0:5fb4c7e603cf 151 frequence=atoi(command); // change la chaine de caractères en entier
dg81 0:5fb4c7e603cf 152 periode=1/float(frequence);
jdeschamps 5:3e44d8755e88 153 printf("frequence : %f, periode : %f \n", frequence,periode);
dg81 0:5fb4c7e603cf 154 timer_etat.attach(&IT_timer_etat, periode); //on fixe la periode de pilotage du moteur
dg81 0:5fb4c7e603cf 155 }
dg81 0:5fb4c7e603cf 156 else if(strcmp(command,"position")==0) {
dg81 0:5fb4c7e603cf 157 pc.scanf("%s",command);
jdeschamps 2:ee896365f8fe 158 consigne_position=atoi(command);
jdeschamps 2:ee896365f8fe 159
dg81 0:5fb4c7e603cf 160 }
jdeschamps 4:1d58769720c6 161 else if (Nb_pas<=0){
jdeschamps 4:1d58769720c6 162 sens=0;
jdeschamps 4:1d58769720c6 163 ENA=0;
jdeschamps 4:1d58769720c6 164 ENB=0;
jdeschamps 4:1d58769720c6 165 }
jdeschamps 4:1d58769720c6 166 else if (position_mesuree<=0){
jdeschamps 4:1d58769720c6 167 sens=0;
jdeschamps 4:1d58769720c6 168 ENA=0;
jdeschamps 4:1d58769720c6 169 ENB=0;
jdeschamps 4:1d58769720c6 170 }
jdeschamps 5:3e44d8755e88 171 } */
jdeschamps 5:3e44d8755e88 172 // on traite la commande du moteur
jdeschamps 5:3e44d8755e88 173 } // fin if readable
dg81 0:5fb4c7e603cf 174 if (flag_timer_etat==1)
dg81 0:5fb4c7e603cf 175 {
jdeschamps 5:3e44d8755e88 176 //printf("etat=%d\n",etat);
dg81 0:5fb4c7e603cf 177 if (sens ==1) {
dg81 0:5fb4c7e603cf 178 etat++;
dg81 3:b95fe07153f1 179 Nb_pas++;
dg81 0:5fb4c7e603cf 180 if (etat>7) etat=0;
dg81 0:5fb4c7e603cf 181 }
dg81 0:5fb4c7e603cf 182 else if (sens==-1){
dg81 0:5fb4c7e603cf 183 etat--;
dg81 3:b95fe07153f1 184 Nb_pas--;
jdeschamps 5:3e44d8755e88 185 if (Nb_pas<=0){ //quand Nb_pas arrive à 0, le moteur s'arrête
jdeschamps 5:3e44d8755e88 186 sens=0;
jdeschamps 5:3e44d8755e88 187 ENA=0;
jdeschamps 5:3e44d8755e88 188 ENB=0;
jdeschamps 5:3e44d8755e88 189 }
dg81 0:5fb4c7e603cf 190 if (etat<0) etat=7;
jdeschamps 5:3e44d8755e88 191 } // fin sens = -1
dg81 0:5fb4c7e603cf 192 switch (etat) {
dg81 0:5fb4c7e603cf 193 case 0 :
jdeschamps 5:3e44d8755e88 194 DIRA=1;
jdeschamps 5:3e44d8755e88 195 BRKA=0;
jdeschamps 5:3e44d8755e88 196 DIRB=0;
jdeschamps 5:3e44d8755e88 197 BRKB=1;
dg81 0:5fb4c7e603cf 198 break;
dg81 0:5fb4c7e603cf 199 case 1 :
jdeschamps 5:3e44d8755e88 200 DIRA=1;
jdeschamps 5:3e44d8755e88 201 BRKA=0;
jdeschamps 5:3e44d8755e88 202 DIRB=1;
jdeschamps 5:3e44d8755e88 203 BRKB=0;
dg81 0:5fb4c7e603cf 204 break;
dg81 0:5fb4c7e603cf 205 case 2 :
jdeschamps 5:3e44d8755e88 206 DIRA=0;
jdeschamps 5:3e44d8755e88 207 BRKA=1;
jdeschamps 5:3e44d8755e88 208 DIRB=1;
jdeschamps 5:3e44d8755e88 209 BRKB=0;
dg81 0:5fb4c7e603cf 210 break;
dg81 0:5fb4c7e603cf 211 case 3 :
jdeschamps 5:3e44d8755e88 212 DIRA=0;
jdeschamps 5:3e44d8755e88 213 BRKA=0;
jdeschamps 5:3e44d8755e88 214 DIRB=1;
jdeschamps 5:3e44d8755e88 215 BRKB=0;
dg81 0:5fb4c7e603cf 216 break;
dg81 0:5fb4c7e603cf 217 case 4 :
jdeschamps 5:3e44d8755e88 218 DIRA=0;
jdeschamps 5:3e44d8755e88 219 BRKA=0;
jdeschamps 5:3e44d8755e88 220 DIRB=0;
jdeschamps 5:3e44d8755e88 221 BRKB=1;
dg81 0:5fb4c7e603cf 222 break;
dg81 0:5fb4c7e603cf 223 case 5 :
jdeschamps 5:3e44d8755e88 224 DIRA=0;
jdeschamps 5:3e44d8755e88 225 BRKA=0;
jdeschamps 5:3e44d8755e88 226 DIRB=0;
jdeschamps 5:3e44d8755e88 227 BRKB=0;
dg81 0:5fb4c7e603cf 228 break;
dg81 0:5fb4c7e603cf 229 case 6 :
jdeschamps 5:3e44d8755e88 230 DIRA=0;
jdeschamps 5:3e44d8755e88 231 BRKA=1;
jdeschamps 5:3e44d8755e88 232 DIRB=0;
jdeschamps 5:3e44d8755e88 233 BRKB=0;
dg81 0:5fb4c7e603cf 234 break;
dg81 0:5fb4c7e603cf 235 case 7 :
jdeschamps 5:3e44d8755e88 236 DIRA=1;
jdeschamps 5:3e44d8755e88 237 BRKA=0;
jdeschamps 5:3e44d8755e88 238 DIRB=0;
jdeschamps 5:3e44d8755e88 239 BRKB=0;
dg81 0:5fb4c7e603cf 240 break;
dg81 0:5fb4c7e603cf 241 default :
dg81 0:5fb4c7e603cf 242 etat=0;
jdeschamps 5:3e44d8755e88 243 } // fin switch
dg81 0:5fb4c7e603cf 244 // printf ("etat = %d\n",etat);
dg81 0:5fb4c7e603cf 245 flag_timer_etat=0;
jdeschamps 5:3e44d8755e88 246 } // fin if timer
dg81 0:5fb4c7e603cf 247 if (flag_fc_haut==1){ // si j'ai un appui sur BP fc_haut : désactivation du L298 et position = 0
dg81 3:b95fe07153f1 248 Nb_pas=0;
dg81 0:5fb4c7e603cf 249 sens=0;
dg81 0:5fb4c7e603cf 250 ENA=0;
dg81 0:5fb4c7e603cf 251 ENB=0;
dg81 0:5fb4c7e603cf 252 flag_fc_haut=0;
dg81 0:5fb4c7e603cf 253 }
jdeschamps 4:1d58769720c6 254 if (flag_retour==1){
jdeschamps 4:1d58769720c6 255 sens=-1;
jdeschamps 4:1d58769720c6 256 ENA=1;
jdeschamps 4:1d58769720c6 257 ENB=1;
jdeschamps 5:3e44d8755e88 258 printf("retour a zero \n");
jdeschamps 4:1d58769720c6 259 flag_retour=0;
jdeschamps 4:1d58769720c6 260 }
jdeschamps 5:3e44d8755e88 261 if (flag_monte==1){
jdeschamps 5:3e44d8755e88 262 wait(0.05);
jdeschamps 5:3e44d8755e88 263 sens=1;
jdeschamps 5:3e44d8755e88 264 ENA=1;
jdeschamps 5:3e44d8755e88 265 ENB=1;
jdeschamps 5:3e44d8755e88 266 printf("appui sur monte \n");
jdeschamps 5:3e44d8755e88 267 flag_monte=0;
jdeschamps 5:3e44d8755e88 268 }
jdeschamps 5:3e44d8755e88 269 if (flag_descend==1){
jdeschamps 5:3e44d8755e88 270 wait(0.05);
jdeschamps 5:3e44d8755e88 271 sens=-1;
jdeschamps 5:3e44d8755e88 272 ENA=1;
jdeschamps 5:3e44d8755e88 273 ENB=1;
jdeschamps 5:3e44d8755e88 274 printf("appui sur descend \n");
jdeschamps 5:3e44d8755e88 275 flag_descend=0;
jdeschamps 5:3e44d8755e88 276 }
jdeschamps 5:3e44d8755e88 277 if (flag_stop==1){
jdeschamps 5:3e44d8755e88 278 sens=0;
jdeschamps 5:3e44d8755e88 279 ENA=0;
jdeschamps 5:3e44d8755e88 280 ENB=0;
jdeschamps 5:3e44d8755e88 281 flag_stop=0;
jdeschamps 5:3e44d8755e88 282 }
dg81 0:5fb4c7e603cf 283 if (flag_contact==1){ // si j'ai un appui sur BP contact : désactivation du L298 et envoi de la position
dg81 3:b95fe07153f1 284 sens=0; // si j'ai reçu "contact" désactivation du L298 et position = 0
dg81 0:5fb4c7e603cf 285 ENA=0;
dg81 0:5fb4c7e603cf 286 ENB=0;
dg81 3:b95fe07153f1 287 /***********************************************************************************************************/
dg81 3:b95fe07153f1 288 /******************** Traitement contact si firgelli *******************************************************/
dg81 3:b95fe07153f1 289 /***********************************************************************************************************/
dg81 3:b95fe07153f1 290 /*// en mode test sur système avec capteur de position
dg81 3:b95fe07153f1 291 Vpos=ain1.read(); // lecture du capteur de position (firgelli)
dg81 3:b95fe07153f1 292 position_mesuree=a*Vpos+b; // calcule la position (firgelli)
dg81 3:b95fe07153f1 293 printf("Npas : %d , Vpos : %f , Position mesuree : %f \n", position,Vpos,position_mesuree);
dg81 3:b95fe07153f1 294 // sur le vrai système
dg81 3:b95fe07153f1 295 //position_mesuree=position*0.0125;
dg81 3:b95fe07153f1 296 //printf("nb pas = %d\n", position_mesuree); */
dg81 3:b95fe07153f1 297 /***********************************************************************************************************/
dg81 3:b95fe07153f1 298 /******************** Traitement contact si moteur pas à pas ************************************************/
dg81 3:b95fe07153f1 299 /***********************************************************************************************************/
dg81 3:b95fe07153f1 300 // en mode test sur système avec capteur de position
jdeschamps 5:3e44d8755e88 301 position_mesuree=Nb_pas*0.0000125;
jdeschamps 4:1d58769720c6 302 printf("Npas : %d , Vpos : %f , Position mesuree : %f mm \n", Nb_pas,Vpos,position_mesuree);
jdeschamps 4:1d58769720c6 303 flag_contact=0;
dg81 0:5fb4c7e603cf 304 }
dg81 0:5fb4c7e603cf 305 if (flag_timer_reglage_vitesse==1){
dg81 0:5fb4c7e603cf 306 Vpot=ain0.read(); // Vpot varie de 0 à 100% (0 à 1) en fonction du réglage vitesse
jdeschamps 5:3e44d8755e88 307 frequence= 1500*(Vpot+1); // frequence varie de 700 Hz à 1400Hz)
dg81 0:5fb4c7e603cf 308 periode=1/float(frequence);
dg81 0:5fb4c7e603cf 309 timer_etat.attach(&IT_timer_etat, periode); // maj vitesse moteur par potentiomètre
jdeschamps 5:3e44d8755e88 310 //printf("frequence : %f, periode : %f \n", frequence,periode);
dg81 0:5fb4c7e603cf 311 flag_timer_reglage_vitesse=0;
dg81 0:5fb4c7e603cf 312 }
dg81 0:5fb4c7e603cf 313 }
jdeschamps 4:1d58769720c6 314 }
jdeschamps 5:3e44d8755e88 315