a

Dependencies:   mbed TextLCD

Files at this revision

API Documentation at this revision

Comitter:
alexmar97
Date:
Thu Dec 12 13:07:15 2019 +0000
Parent:
0:ebc3999f6ef4
Commit message:
.

Changed in this revision

TextLCD.lib 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/TextLCD.lib	Thu Dec 12 13:07:15 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/simon/code/TextLCD/#308d188a2d3a
--- a/main.cpp	Fri Nov 29 12:52:32 2019 +0000
+++ b/main.cpp	Thu Dec 12 13:07:15 2019 +0000
@@ -1,9 +1,11 @@
 #include "mbed.h"
 #define bufferLength 500
+#define muestras 100
 #include "math.h"
 #include "TextLCD.h"
  
-#define muestras 100
+
+
 TextLCD lcd(D8, D9, D2, D3, D4, D5, TextLCD::LCD16x2); // rs, e, d4-d7
 Serial pc(USBTX, USBRX); // tx, rx
 struct eResultados {
@@ -21,35 +23,41 @@
    float energiaConsumida;
    float factorDePotencia;
 };
+
+estructuraMedidas medidas;
+
 //struct Vectores{
   //  float  vTensionA[muestras];
   //float  vTensionB[muestras];
   //  float  vIntensidadA[muestras];
   //  float  vIntensidadB[muestras];
-}vectores;
+//}
+//vectores;
 AnalogIn    adc_in(A0);
 AnalogIn    int_in(A1);
-AnalogOut   dac_out(A2);
-AnalogOut   int_out(A3);
+AnalogIn    cont_in(A3);
+//AnalogOut   dac_out(A2);
+//AnalogOut   int_out(A3);
 InterruptIn boton(USER_BUTTON);
 
 Ticker tMuestrea;
 Ticker tVisualiza;
 void visualiza();
-void procesado(int length,  uint16_t *entrada, uint16_t *entrada2);
-void calcularRMS(uint16_t *buffer, int longitud,eResultados *resul);
+void procesado(int length,  int16_t *entrada, int16_t *entrada2);
+ void calcularDatos(int16_t *datosV, int16_t *datosI, int longitud, estructuraMedidas *medidas);
+void calcularRMS(int16_t *buffer, int longitud,eResultados *resul);
 int flag=0;
 int contador=0;
 int bufferActivo=0;
 
 struct buffers {
-    uint16_t 1A[muestras];
-    uint16_t 1B[muestras];
-    uint16_t 2A[muestras];
-    uint16_t 2B[muestras];
+    int16_t vA[muestras];
+    int16_t vB[muestras];
+    int16_t iA[muestras];
+    int16_t iB[muestras];
 };
 
-bool bufferActivo=0;
+
 void muestrea();
 
 buffers bufferEntrada;
@@ -67,36 +75,39 @@
         if (flag) {
             flag=0;
             if(bufferActivo==1) {
-                procesado(muestras,(uint16_t *)&bufferEntrada.1A,(uint16_t *)&bufferEntrada.2A);
+                procesado(muestras,(int16_t *)&bufferEntrada.vA,(int16_t *)&bufferEntrada.iA);
             } else {
-                procesado(muestras,(uint16_t *)&bufferEntrada.1B,(uint16_t *)&bufferEntrada.2B);
+                procesado(muestras,(int16_t *)&bufferEntrada.vB,(int16_t *)&bufferEntrada.iB);
             }
             
 
         }
-
+    
 
         wait_us(1);
     }
+    
 }
 
 void muestrea()
 {
     uint16_t dato=adc_in.read_u16();
         uint16_t dato2=int_in.read_u16();
+        uint16_t cont=cont_in.read_u16();
+        
     if (bufferActivo==0) {
 
-        bufferEntrada.1A[contador]=dato;
+        bufferEntrada.vA[contador]=dato-cont;
 
-        bufferEntrada.2A[contador]=dato2;
+        bufferEntrada.iA[contador]=dato2-cont;
 
     }
 
     else {
 
-        bufferEntrada.1B[contador]=dato;
+        bufferEntrada.vB[contador]=dato-cont;
 
-        bufferEntrada.2B[contador]=dato2;
+        bufferEntrada.iB[contador]=dato2-cont;
 
     }
 
@@ -108,18 +119,18 @@
     }
 
 }
-void procesado(int length, uint16_t *entrada, uint16_t *entrada2)
-//{
+void procesado(int length, int16_t *entrada, int16_t *entrada2)
+{
   //  for (int i=0; i<length; i++) {
     //    salida[i]=entrada[i];
     //}
 
 //    calcularRMS(entrada,length,&resultados);
-     void calcularDatos(int16_t *entrada, int16_t *entrada2, int longitud, estructuraMedidas *medidas);
+      calcularDatos(entrada, entrada2,  100, &medidas);
 
 
 }
-void calcularRMS(uint16_t *buffer, int longitud,eResultados *resul)
+void calcularRMS(int16_t *buffer, int longitud,eResultados *resul)
 {
     float cons=0.00005035400390625;
     float cons1=1.007080078125e-4;
@@ -152,9 +163,18 @@
 }
 
 void visualiza(){
-    printf ("El valor maxima es %f\n",resultados.Vmax);
-    printf ("El valor minimo es %f\n",resultados.Vmin);
-    printf ("El valor RMS es %f\n\n",resultados.Vrms);
+    
+    printf ("El valor RMS es %f\n",medidas.vrms);
+    printf ("El valor irms es %f\n",medidas.irms);
+    printf ("El valor energia consumida es %f\n",medidas.energiaConsumida);
+    printf ("El valor factor de potencia es %f\n",medidas.factorDePotencia);
+    printf ("El valor potencia Aparente es %f\n",medidas.potenciaAparente);
+    printf ("El valor potencia Activa es %f\n",medidas.potenciaActiva);
+    printf ("El valor potencia Reactiva es %f\n\n",medidas.potenciaReactiva);
+    
+       
+        
+ 
     
     }
     void calcularDatos(int16_t *datosV, int16_t *datosI, int longitud, estructuraMedidas *medidas)
@@ -195,5 +215,5 @@
         (*medidas).potenciaReactiva = datoQ;
         (*medidas).vrms = datoV;
         (*medidas).irms = datoI;
-        (*medidas).factorDePotencia = datoP/datoS;
+ 
 }