¡Qué majo es Ander Ibabe!

Dependencies:   TextLCD mbed

Revision:
4:515ede6e2e14
Parent:
3:250e95e6485b
Child:
5:f364983627e5
--- a/main.cpp	Fri Jan 12 07:16:16 2018 +0000
+++ b/main.cpp	Fri Jan 12 15:31:01 2018 +0000
@@ -1,5 +1,11 @@
 #include "mbed.h"
 #include "TextLCD.h"
+#define periodo 0.0002 //1/5000
+#define tamvector 100
+#define dato_v  6.2357e+03
+#define dato_i  9.7128 //((3,3*2000/(2^16*Rburn))^2)*(1/100)
+#define dato_p 202.6327
+#define dato_e 20e-3/3600
 
 Serial bluetooth (D10,D2);
 Serial pc(SERIAL_TX,SERIAL_RX);
@@ -37,11 +43,11 @@
 void temporizador ()
 {
     if(nbuffer) {
-        muestrasA[contador]=(tension.read()-Vcont)*219.626*3.3;
-        muestrasC[contador]=(intensidad.read()-Icont)*9.525*3.3;
+        muestrasA[contador]=(tension.read()-Vcont);
+        muestrasC[contador]=(intensidad.read()-Icont);
     } else {
-        muestrasB[contador]=(tension.read()-Vcont)*219.626*3.3;
-        muestrasD[contador]=(intensidad.read()-Icont)*9.725*3.3;
+        muestrasB[contador]=(tension.read()-Vcont);
+        muestrasD[contador]=(intensidad.read()-Icont);
     }
     contador++;
     if(contador==100) {
@@ -54,7 +60,7 @@
 void boton()
 {
     mostrardato++;
-    if (mostrardato>8)
+    if (mostrardato>7)
         mostrardato=0;
 }
 
@@ -63,39 +69,44 @@
     lcd.cls();
     switch(mostrardato) {
         case 0:
-            lcd.printf("Vrms:\n3.3 V",Vrms);
-            pc.printf("Vrms:\n3.3 V",Vrms);
+            lcd.printf("Vrms:\n %f V",Vrms);
+            pc.printf("Vrms:\n %f V",Vrms);
             break;
         case 1:
-            lcd.printf("Irms:\n3.3 I",Irms);
-            pc.printf("Irms:\n3.3 I",Irms);
+            lcd.printf("Irms:\n %f A",Irms);
+            pc.printf("Irms:\n %f A",Irms);
             break;
         case 2:
-            lcd.printf("F.pot:\n3.3 ",FactorPotencia);
-            pc.printf("F.pot:\n3.3 ",FactorPotencia);
+            lcd.printf("F.pot:\n %f ",FactorPotencia);
+            pc.printf("F.pot:\n %f ",FactorPotencia);
             break;
         case 3:
-            lcd.printf("P.Apa:\n3.3 VA",PotenciaAparente);
-            pc.printf("P.Apa:\n3.3 VA",PotenciaAparente);
+            
+            lcd.printf("P.Act:\n %f W",PotenciaActiva);
+            pc.printf("P.Act:\n %f W",PotenciaActiva);
             break;
         case 4:
-            lcd.printf("P.React:\n3.3 VAr",PotenciaReactiva);
-            pc.printf("P.React:\n3.3 VAr",PotenciaReactiva);
+            lcd.printf("P.React:\n %f VAr",PotenciaReactiva);
+            pc.printf("P.React:\n %f VAr",PotenciaReactiva);
             break;
         case 5:
-            lcd.printf("P.Act:\n3.3 W",PotenciaActiva);
-            pc.printf("P.Act:\n3.3 W",PotenciaActiva);
+            lcd.printf("P.Apa:\n %f VA",PotenciaAparente);
+            pc.printf("P.Apa:\n %f VA",PotenciaAparente);
             break;
         case 6:
-            lcd.printf("E.Act:\n3.3 kWh",EnergiaActiva);
-            pc.printf("E.Act:\n3.3 kWh",EnergiaActiva);
+            lcd.printf("E.Act:\n %f Wh",EnergiaActiva);
+            pc.printf("E.Act:\n %f Wh",EnergiaActiva);
             break;
         case 7:
-            lcd.printf("E.React:\n3.3 kWh",EnergiaReactiva);
-            pc.printf("E.React:\n3.3 kWh",EnergiaReactiva);
+            lcd.printf("E.React:\n %f Wh",EnergiaReactiva);
+            pc.printf("E.React:\n %f Wh",EnergiaReactiva);
+            break;
+        case 8:
+            lcd.printf("Precio:\n %f €",precio);
+            pc.printf("Precio:\n %f €",precio);
             break;
     }
-    bluetooth.printf("%3.3| %3.3| %3.3| %3.3\n",Vrms,Irms,PotenciaActiva,precio);
+    bluetooth.printf("%Vrms| %Irms | %PotenciaActiva| %precio\n",Vrms,Irms,PotenciaActiva,precio);
 }
 
 int main ()
@@ -136,15 +147,15 @@
                 sumaIntensidad=sumaIntensidad+datoIntensidad*datoIntensidad;
                 sumapotenciaactiva=sumapotenciaactiva+dato*datoIntensidad;
             }
-            Vrms=(sqrt(suma/100.0)*1.01449275362);
-            Irms=(sqrt(sumaIntensidad/100.0)*0.9869);
-            PotenciaActiva=(sumapotenciaactiva/100.0)/10.00139;
-            EnergiaActiva=EnergiaActiva+(PotenciaActiva/180000000.0);
+            Vrms=(sqrt(suma*dato_v));
+            Irms=(sqrt(sumaIntensidad*dato_i));
+            PotenciaActiva=dato_p*sumapotenciaactiva;
             PotenciaAparente=Vrms*Irms;
-            PotenciaReactiva=(sqrt((PotenciaActiva-PotenciaAparente)-(PotenciaActiva*PotenciaActiva)));
-            EnergiaActiva=EnergiaReactiva+(PotenciaReactiva/180000000.0);
-            FactorPotencia=(PotenciaActiva/PotenciaAparente);
-            precio=EnergiaActiva*0.121;
+            PotenciaReactiva=(sqrt((PotenciaAparente*PotenciaAparente)-(PotenciaActiva*PotenciaActiva)));
+            EnergiaActiva=EnergiaActiva+PotenciaActiva*dato_e;
+            EnergiaReactiva=EnergiaReactiva+PotenciaReactiva*dato_e;
+            FactorPotencia=PotenciaActiva/PotenciaAparente;
+            precio=EnergiaActiva*dato_p;
         }
     }
-}
\ No newline at end of file
+}    
\ No newline at end of file