CNA ltc1655 et adg715

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
denishautot
Date:
Wed Jun 10 07:20:17 2015 +0000
Commit message:
Projet sts2 lycee victor hugo Besesancon

Changed in this revision

branche_capt.h Show annotated file Show diff for this revision Revisions of this file
cherche_equilibre.h Show annotated file Show diff for this revision Revisions of this file
cherche_tension.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/branche_capt.h	Wed Jun 10 07:20:17 2015 +0000
@@ -0,0 +1,7 @@
+    int branche_capteur (char num_capteur) 
+    { 
+    char data[1];
+    data[0]=0x03;
+    const int addr = 0x90;
+    i2c.write( addr, data,1);
+    } 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cherche_equilibre.h	Wed Jun 10 07:20:17 2015 +0000
@@ -0,0 +1,45 @@
+unsigned int  cherche_equilibre (unsigned int valnum)
+{
+    int i;
+    unsigned int val;
+    float result;
+    val=0;
+    for (i=0; i<=4; i=i++) {
+        valnum =15100;
+        cna.write(valnum);
+        while (ina.read()>=0.5) {
+            valnum = valnum+1;
+             wait(0.020);
+            cs=0;
+            //  pc.printf("%U \n\r",ina.read());
+            cna.write(valnum);
+            cs=1;
+        }
+        pc.printf("Val_CAN %U \n\r",valnum);
+        val=val+valnum;
+        valnum =15500;
+        cna.write(valnum);
+        while (ina.read()<=0.5) {
+
+            valnum = valnum-1;
+            wait(0.020);
+            cs=0;
+            //  pc.printf("%U \n\r",ina.read());
+            cna.write(valnum);
+            cs=1;
+        }
+        val=val+valnum;
+        pc.printf("Val_CAN %U \n\r",valnum);
+    }
+    
+    pc.printf("Val_CAN %U \n\r",val);
+    result=val/10;
+    val=result;
+    cs=0;
+    cna.write(val);
+    cs=1;
+    pc.printf("Equilibre capteur 1= %f    \n\r",result);
+    return (val);
+
+
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cherche_tension.h	Wed Jun 10 07:20:17 2015 +0000
@@ -0,0 +1,23 @@
+unsigned int  cherche_tension (unsigned int valnum) 
+    {   cna.write(valnum);
+    while (ina.read()>=0.5) {
+                myled = 1;
+                valnum = valnum+5;
+                cs=0;
+                //  pc.printf("%U \n\r",ina.read());
+                cna.write(valnum);
+                cs=1;
+            }
+            while (ina.read()<=0.5) {
+                myled = 1;
+                valnum = valnum-5;
+                cs=0;
+                //  pc.printf("%U \n\r",ina.read());
+                cna.write(valnum);
+                cs=1;
+            } 
+    pc.printf("%U \n\r",ina.read());
+    return (valnum);
+    
+    
+    }
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Jun 10 07:20:17 2015 +0000
@@ -0,0 +1,132 @@
+#include "mbed.h"
+DigitalOut myled(LED1);
+I2C i2c(p9, p10);
+AnalogIn ina(p15);
+SPI cna(p5, p6, p7); // mosi, miso, sclk
+DigitalOut cs(p25);
+Serial pc(USBTX, USBRX);
+Ticker timer;  // timer 1 seconde pour mesure
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+short num_capt;     // numéro de cateur en cours de mesure
+unsigned int val_capt1,val_capt2,val_capt3,val_capt4,val_capt5,val_capt6,val_capt7,val_capt8; // valeurs des differents capteurs
+unsigned int val_ref_capt1,val_ref_capt2,val_ref_capt3,val_ref_capt4,val_ref_capt5,val_ref_capt6,val_ref_capt7,val_ref_capt8; // valeurs des differents capteurs lorsque le ponr est à l'équilibre
+
+#include "cherche_tension.h"
+#include "cherche_equilibre.h"
+#include "branche_capt.h"
+
+bool mesure;
+
+void attime()
+{
+    mesure=true;
+}
+
+
+
+int main()
+{
+    mesure=false;               // boolean de mesure, passera à true toutes les secondes (timer)
+    branche_capteur(1);
+    cna.format(16,0);           // passe la spi en mode 16 bits
+    cs=1;
+    unsigned long int valcna;
+    unsigned int  valnum;
+    valcna=0;
+    wait(0.5);
+    cs=0;
+    cna.write(valcna);
+    cs=1;
+    // pc.printf("Mesure de l'equilibre des jauges... \n\r");
+    // val_ref_capt1=cherche_equilibre(1);
+    wait(0.1);
+    // val_ref_capt1=cherche_equilibre(1);
+    // pc.printf("Equilibre capteur 1= %U \n\r",val_ref_capt1);
+    //val_ref_capt2=cherche_equilibre(2);
+    //pc.printf("Equilibre capteur 2= %U \n\r",val_ref_capt2);
+    // faire pour les 9 capteurs
+    unsigned int  val;
+    valnum =10500;
+    cna.write(valnum);
+    wait(1);
+//   timer.attach(&attime, 15);   // création d'un timer une secon pour activer la poursuite et mesure
+  //  while(1) {
+        //  valcna==cherche_equilibre(1);
+
+        // pc.printf("Resultat numerique capteur1: %U\r\n",valcna);    // valeur lue cna sur capteur
+
+        // valnum =0000;
+        // cna.write(valnum);
+        
+        
+        
+        cherche_equilibre(10500);
+        
+      /*
+        valnum =12000;
+        cna.write(valnum);
+        wait_us(1000);
+        while (ina.read()>=0.5) {
+            //myled = 1;
+            valnum ++;
+            cs=0;
+            //  pc.printf("%U \n\r",ina.read());
+            cna.write(valnum);
+            wait_ms(10);
+            cs=1;
+        }
+        val=ina.read_u16()-27070;
+        */
+DigitalOut a(p5);
+DigitalOut b(p7);
+        a=0;
+        b=0;
+        pc.printf("Equilibre capteur 1= %U %U    \n\r",valnum,val);
+            wait(1);
+        //       pc.printf("Deformation: %d\r\n",val_ref_capt1-valcna);
+        //       wait(5);
+
+        //        valcna=cherche_tension(2);
+        //        pc.printf("Resultat numerique capteur2: %d\r\n",val_ref_capt2-valcna);
+        //   led2=!led2;
+        
+
+       float result;
+       
+           while(true)
+           {
+                val=0;           
+               val=val+ina.read_u16();
+               wait(0.1);
+               val=val+ina.read_u16();
+               wait(0.1);
+               val=val+ina.read_u16();
+               wait(0.1);
+               val=val+ina.read_u16();
+               wait(0.1);
+               val=val+ina.read_u16();
+               wait(0.1);
+               val=val+ina.read_u16();
+               wait(0.1);
+               val=val+ina.read_u16();
+               wait(0.1);
+               val=val+ina.read_u16();
+               wait(0.1);
+               val=val+ina.read_u16();
+               wait(0.1);
+               val=val+ina.read_u16();
+               wait(0.1);
+               result=val/10;
+               val=result;
+               
+               pc.printf("Val_CAN %U \n\r",val);
+               }
+  //  }
+//             pc.printf("Val_CAN %f \n\r",val);
+}
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Wed Jun 10 07:20:17 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/433970e64889
\ No newline at end of file