a
Revision 1:b1d6185f85c8, committed 2019-12-12
- 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;
+
}