sp3

Dependencies:   FT800_2 C12832 ADS1231 WifiEsp8266 LTC2309 affichage

Files at this revision

API Documentation at this revision

Comitter:
arkadia
Date:
Thu Jun 10 15:29:17 2021 +0000
Parent:
0:057ff8b9b8c4
Commit message:
sp2

Changed in this revision

ADS1231.lib Show annotated file Show diff for this revision Revisions of this file
C12832.lib Show annotated file Show diff for this revision Revisions of this file
WifiEsp8266.lib Show annotated file Show diff for this revision Revisions of this file
affichage.lib Show annotated file Show diff for this revision Revisions of this file
constante.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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ADS1231.lib	Thu Jun 10 15:29:17 2021 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mcm/code/ADS1231/#16ae36a95be6
--- a/C12832.lib	Tue Jun 08 08:23:07 2021 +0000
+++ b/C12832.lib	Thu Jun 10 15:29:17 2021 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/chris/code/C12832/#7de323fa46fe
+https://mbed.org/users/chris/code/C12832/#7de323fa46fe
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WifiEsp8266.lib	Thu Jun 10 15:29:17 2021 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/schnf30/code/WifiEsp8266/#507030c06a97
--- a/affichage.lib	Tue Jun 08 08:23:07 2021 +0000
+++ b/affichage.lib	Thu Jun 10 15:29:17 2021 +0000
@@ -1,1 +1,1 @@
-https://os.mbed.com/users/nk_ralph/code/affichage/#66a03c7cfb16
+https://os.mbed.com/users/arkadia/code/affichage/#367a17638cfb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/constante.h	Thu Jun 10 15:29:17 2021 +0000
@@ -0,0 +1,5 @@
+ #define _Sclk PC_10  //PA_5
+ #define _Dout PC_12  //PA_7
+ #define _Pwd PC_11
+ #define _Temp PD_2
+ #define _A0 PA_0
--- a/main.cpp	Tue Jun 08 08:23:07 2021 +0000
+++ b/main.cpp	Thu Jun 10 15:29:17 2021 +0000
@@ -1,11 +1,15 @@
 #include "mbed.h"
 #include "affichage.h"
 #include "ltc2309.h"
+#include "wifiesp8266.h"
+#include "constante.h"
+#include "ADS1231.h"
 
-float CZ;
-float CX;
-float Deg;
-float CH0;
+float FZ;
+float FX;
+float AngleIncMes;
+float AngleIncCons;
+float CH0; // PRESSION
 float CH1;
 float CH2;
 float CH3;
@@ -13,12 +17,31 @@
 float CH5;
 float CH6;
 float CH7;
+AnalogIn potmesureangle(PC_2); // potentiometre dans l'aile
+DigitalOut MoteurIN1(PC_8); // rotation anti horaire (-20°) fil vert PB0
+DigitalOut MoteurIN2(PC_9); // rotation horaire (+20°) fil blanc PC1
+signed int comptage;
+DigitalIn VoieB(PA_1);
+InterruptIn  VoieA(PB_0);
+char BoutonChange;
+DigitalOut AdsA0(_A0);
+DigitalOut AdsPwd(_Pwd);
+DigitalOut AdsTemp(_Temp);
+ADS1231  Ads1232  ( _Sclk, _Dout );
 
+ADS1231::ADS1231_status_t      aux;
+ADS1231::Vector_count_t        myData;
+ADS1231::Vector_mass_t         myCalculatedMass;
+ADS1231::Vector_voltage_t      myCalculatedVoltage;
 
 /***********************************************************************************************************************/
 /* Main function */
 bool NewAffichage = true;
 bool Acquisition = false;
+RawSerial PC(USBTX, USBRX);
+WifiEsp8266 Wifi(PA_11,PA_12); // WifiEsp8266(PinName Txd, PinName Rxd);
+//float MesureAngle;   // mesure du potentiometre dans l'aile
+//float ConsigneAngle;  //= 0.47; // valeur entre 0,44 et 0,56  // consigne en pourcentage ou degré
 
 Ticker EventAcq;
 
@@ -26,19 +49,53 @@
 {
     Acquisition = true;
 }
+void FrontMontantA(void)
+{
+    if (VoieB.read()==1) AngleIncCons = AngleIncCons + 1;
+    else AngleIncCons = AngleIncCons - 1;
+    BoutonChange++;
+}
+void FrontDescendantA(void)
+{
+    if(VoieB.read()==0) AngleIncCons = AngleIncCons + 1;
+    else AngleIncCons = AngleIncCons - 1;
+    BoutonChange++;
 
+}
 int main()
 {
-    CZ = 1258;
     luminosite(128);
     LTC2309Init();
     LTC2309Autozero();
-    //TFT.Calibrate();                                                                // calibre l'écran au démarrage
-    //TFT.Track(244, 45, 161, 17, 2);
+    char WifiPhrase[maxdata];
+    MoteurIN1.write(0);
+    MoteurIN2.write(0);
+    PC.baud(921600);
+    PC.printf("Hello je suis SP2-10\r\n");
     EventAcq.attach(&FEventAcq, 0.5); //
+    AngleIncCons = 0;
+    comptage = 0;
+    BoutonChange = false;
+    VoieA.rise(&FrontMontantA);
+// mesure de poids
+    AdsA0.write(1);    // chanel 1 selectionne
+    AdsTemp.write(0);  // entree temp selectionne
+    AdsPwd.write(1);   // ADC On
+    aux = Ads1232.ADS1231_PowerDown    ();
+    aux = Ads1232.ADS1231_Reset        ();
+    EcranMessage("Soufflerie arretee avec aile en place");
+    PC.printf("ne rien placer\r\n");
+    wait(5);
+    aux = Ads1232.ADS1231_ReadData_WithoutMass ( &myData, 10 );
+    EcranMessage("Ajoutez 2 kg pour tarage");    
+    PC.printf("placer qqch\r\n");
+    wait(5);
+    EcranMessage("Patientez");    
+    aux = Ads1232.ADS1231_ReadData_WithCalibratedMass ( &myData, 10 );
+    wait(3);
         while(1) {
+// acquisition des capteurs et envoi wifi.
         if (Acquisition==true) {     // Si une valeur change
-            CX=CX+1;
             CH0 = LTC2309read(CH0c);        //  Acquisition de la  valeur de champ de pression en Pascal pour la voie 0
             CH1 = LTC2309read(CH1c);        //  Acquisition de la  valeur de champ de pression en Pascal pour la voie 1
             CH2 = LTC2309read(CH2c);        //  Acquisition de la  valeur de champ de pression en Pascal pour la voie 2
@@ -49,14 +106,60 @@
             CH7 = LTC2309read(CH7c);        //  Acquisition de la  valeur de champ de pression en Pascal pour la voie 7
             NewAffichage = true;
             Acquisition = false;
+            Wifi.printf("$z,%0.0f,%0.0f,%0.0f,%0.0f,%0.0f,%0.0f,%0.0f,%0.0f,%0.0f,%0.0f,%0.0f\r\n",CH0,CH1,CH2,CH3,CH4,CH5,CH6,CH7,FX,FZ,AngleIncMes);
+            PC.printf("$z,%0.0f,%0.0f,%0.0f,%0.0f,%0.0f,%0.0f,%0.0f,%0.0f,%0.0f,%0.0f,%0.0f\r\n",CH0,CH1,CH2,CH3,CH4,CH5,CH6,CH7,FX,FZ,AngleIncMes);
+            AdsA0.write(1);    // chanel 1 selectionne
+            AdsTemp.write(0);  // entree temp selectionne
+            AdsPwd.write(1);   // ADC On
+
+            aux                 =    Ads1232.ADS1231_ReadRawData       ( &myData, 4);
+            myCalculatedMass  =    Ads1232.ADS1231_CalculateMass     ( &myData, 2.0, ADS1231::ADS1231_SCALE_kg );
+            myCalculatedVoltage =    Ads1232.ADS1231_CalculateVoltage  ( &myData, 5.0 );
+            FZ = myCalculatedMass.myMass;
+            PC.printf("Raw Data: %ld  Mass %0.5f  kg Voltage: %0.5f  mV\r\n", (uint32_t)myData.myRawValue,  myCalculatedMass.myMass,  1000*myCalculatedVoltage.myVoltage);
         }
-             
 
-        if (NewAffichage==true) {       //  Si NewAffichage est égale à True, on raffraichit l'écran 
+        if (NewAffichage==true) {       //  Si NewAffichage est égale à True, on raffraichit l'écran
             NewAffichage = false;
             EcranPrincipale();
         }
-           
+// gestion moteur dangle
+        float AngleIncMesnew = 166.0-(potmesureangle.read()*333.0);  // mesure d'angle en degré
+        if (AngleIncMesnew != AngleIncMes) {
+            AngleIncMes = AngleIncMesnew;
+            NewAffichage = true;
+        }
+        if (BoutonChange) {
+            PC.printf("Valeur angle %i\r\n",AngleIncCons);
+            BoutonChange = 0;
+        }
+        //sleep();
+// bouger moteur
+        if ((AngleIncCons-AngleIncMes)>1) {
+            MoteurIN1.write(0);
+            MoteurIN2.write(1);
+        } else if ((AngleIncCons-AngleIncMes)<-1) {
+            MoteurIN1.write(1);
+            MoteurIN2.write(0);
+        } else {
+            MoteurIN1.write(0);
+            MoteurIN2.write(0);
+        }
+
+//acquisition des donnees wifi
+        if (Wifi.dataready()) {
+            strcpy(WifiPhrase,Wifi.read());
+            Wifi.printf("$l%s\r\n",WifiPhrase);
+            switch (WifiPhrase[1]) {
+                case 'm':
+                    if (AngleIncCons<20) AngleIncCons=AngleIncCons+1;
+                    Wifi.printf("$l%.0f\r\n",AngleIncCons);
+                    break;
+                case 'n' :
+                    if (AngleIncCons>-20) AngleIncCons=AngleIncCons-1;
+                    Wifi.printf("$l%.0f\r\n",AngleIncCons);
+                    break;
+            }
+        }
     }
-
 }
\ No newline at end of file