squelette de demarrage projet ERS3 IUT NICE GEII

Dependencies:   mbed bloc_io mbed-rtos html EthernetInterface

Files at this revision

API Documentation at this revision

Comitter:
ragas
Date:
Tue Dec 17 09:04:10 2019 +0000
Parent:
4:08e917c15d87
Commit message:
jhdf

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 08e917c15d87 -r e3b59050984c main.cpp
--- a/main.cpp	Tue Dec 03 08:47:42 2019 +0000
+++ b/main.cpp	Tue Dec 17 09:04:10 2019 +0000
@@ -1,4 +1,6 @@
 //#include "EthernetInterface.h"
+#define tps 0.1
+#define tpss 0.05
 #include <stdlib.h>
 #include <string.h>
 #include "mbed.h"
@@ -16,6 +18,7 @@
 // valid pmw mbed pin
 Serial pc(USBTX, USBRX); // tx, rx
 // Top_Hall Pin
+float pi=3.14159265359;
 int valref=0 ;//rajout
 int val=0;
 float min ;
@@ -76,6 +79,11 @@
 Ticker ragas;
 float ray=0.20;
 float Bride;
+Timer charo;
+float d=0;
+float dac;
+int kpar;
+int ktot;
 //************************************************************
 
 
@@ -159,20 +167,21 @@
 
     FILE* pfile = fopen ("/local/ragas.txt","r");
     if(pfile!=NULL) {
-        fscanf(pfile,"min=%f max=%f bride=%f", &min,&max,&Bride);
-        pc.printf("\n min=%f max=%f bride=%f", min,max,Bride);
+        fscanf(pfile,"min=%f max=%f bride=%f Kpar=%d Ktot=%d", &min,&max,&Bride,&kpar,&ktot);
+        pc.printf("\n min=%f max=%f bride=%f Kpar=% Ktot=%d", min,max,Bride,kpar,ktot);
     } else {
         pc.printf("erreur");
     }
     fclose(pfile); // close file
-    guidon.attach(&task1,0.05);
+    guidon.attach(&task1,tpss);
 
 
 
 
     //***************************************************************************************
     tphall.rise(&cpt);
-    ragas.attach(&vit,0.1);
+    tphall.mode(PullUp);
+    ragas.attach(&vit,tps);
     //****************************************************************************************
 
 
@@ -208,6 +217,8 @@
         pc.printf(" v:vitesse\r\n");
         pc.printf(" m:mode \r\n");
         pc.printf(" w:valeur bride \r\n");
+        pc.printf(" x:reset \r\n ");
+        pc.printf(" k:kilometre \r\n");
         pc.printf(" q:quitter \r\n");
 
         /************* multithreading : main thread need to sleep in order to allow web response */
@@ -242,7 +253,7 @@
                 getchar();
                 max=poignee.read();
                 printf("max%f\n\r",max);
-                
+
                 break;
             case 'm':
                 do {
@@ -251,19 +262,21 @@
                 } while(mode<0 || mode >1);
                 break ;
             case 'q':
-            FILE* pfile = fopen ("/local/ragas.txt","w");
+                FILE* pfile = fopen ("/local/ragas.txt","w");
                 if(pfile!=NULL)
-                    fprintf(pfile,"min=%f max=%f bride=%f", min,max,Bride);
+                    fprintf(pfile,"min=%f max=%f bride=%f kpar=%d ktot=%d", min,max,Bride,kpar,ktot);
                 fclose(pfile); // close file
                 valid.write(0);
                 MyPLD.write(0);
                 guidon.detach();
+                ragas.detach();
+                dac=0;
                 break;
 
             case 'v':
                 printf ("vitesse :%g m/s \n",vitesse);
                 printf ("vitesse :%g km/h \n",vitesse*3.6);
-                printf ("vitesse :%g tr/min \n",(vitesse*60)/(2*3.14159265359*ray));
+                printf ("vitesse :%g tr/min \n",(vitesse*60)/(2*pi*ray));
                 break ;
             case 'w':
                 do {
@@ -271,6 +284,22 @@
                     scanf("%g",&Bride);
                 } while(Bride<0 || Bride >38.9);
                 break ;
+                
+                case 'k':
+                
+                d=(((2*pi*ray)/(6*8))*ktot);
+                
+                printf("distance= %g m\r\n",d);
+                
+                dac=(((2*pi*ray)/(6*8))*kpar);
+               
+                printf("distance= %g m\r\n",dac);
+                break;
+                case 'x' :
+                kpar=0;
+                break;
+                
+                
 
                 /*      case 'q':
 
@@ -346,19 +375,19 @@
         if(frein==0) {                    //frein actif
             val=0;
         } else  {            //frein inactif
-            
-                    if(val<valPoignee) {    //incrémentation
-                        val=val+1;
-                    } else {                //bonne valeur
-                        val=valPoignee;
-                    }
-                  if(Bride<vitesse*3.6){
-                      val=val-1;
-                      }
-                
-                    if(val<0) {
-                        val=0;
-                    }/*
+
+            if(val<valPoignee) {    //incrémentation
+                val=val+1;
+            } else {                //bonne valeur
+                val=valPoignee;
+            }
+            if(Bride<vitesse*3.6) {
+                val=val-1;
+            }
+
+            if(val<0) {
+                val=0;
+            }/*
                     if(val>valPoignee) {    //décrémentation
                         val=val-1;
                     } else {                //bonne valeur
@@ -390,5 +419,21 @@
 {
     lire=cpthall;
     cpthall=0;
-    vitesse=(((2*3.14159265359*ray)/(6*8))*lire)/0.1;
+    vitesse=(((2*pi*ray)/(6*8))*lire)/tps;
+    /*if (vitesse!=0) 
+    {
+
+        charo.start();
+        vitesse=vitesse/3600;
+    } 
+    else 
+    {
+        charo.stop();
+    }
+    
+    d=d+vitesse*charo;
+    dac=dac+vitesse*charo;
+    charo.reset();*/
+   kpar=kpar+lire;
+   ktot=ktot+lire;
 }