Primer cambio codigo 20/01/2020
Revision 1:873f8f9b7f69, committed 2020-01-30
- Comitter:
- javicas95
- Date:
- Thu Jan 30 14:12:47 2020 +0000
- Parent:
- 0:0a17318c9c22
- Commit message:
- final final
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 Jan 30 14:12:47 2020 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/simon/code/TextLCD/#308d188a2d3a
--- a/main.cpp Mon Jan 20 14:46:34 2020 +0000
+++ b/main.cpp Thu Jan 30 14:12:47 2020 +0000
@@ -7,17 +7,18 @@
Ticker tVisualizar;
#include "TextLCD.h"
-//PARA LA PLACA LCD
+
InterruptIn button(PC_13);
-//Inicializas el interruptor
+
TextLCD lcd(D8, D9, D2, D3, D4, D5, TextLCD::LCD16x2); // rs, e, d4-d7
-Serial pc(USBTX, USBRX);
-// tx, rx esto es para que vaya más rápido, para que procese más rápido
-Serial bluetooth(PC_0, PC_1); //ESTA SE QUITA
-// tx, rx esto es para inicializar los pines para conectar el bluetooth
-AnalogIn adc_in(A0); //datos de tensión
-AnalogIn adc_in_in(A2); //datos de intensidad
-AnalogIn adc_in_dos(A1); //datos de continua (la salida del LM 358)
+Serial pc(USBTX, USBRX); // tx, rx
+
+Serial bluetooth(PC_0, PC_1);
+
+AnalogIn adc_in(A0);
+AnalogIn adc_in_in(A2);
+AnalogIn adc_in_dos(A1);
+
void muestrear();
void visualizar();
int flag=0;
@@ -42,31 +43,28 @@
float fact_potencia;
};
estr_medidas medidas;
-void proces(int16_t *datosV, int16_t *datosI, int longi, estr_medidas *medidas)
+void procesado(int16_t *datosV, int16_t *datosI, int longi, estr_medidas *medidas)
{
int64_t b=0.0;
int64_t c=0;
int64_t d=0;
for(int j=0;j<longi;j++)
{
- b = b + datosV[j]*datosV[j]; //calcula el sumatorio de v^2
- c = c + datosI[j]*datosI[j]; //calcula el sumatorio de i^2
- d = d + datosV[j]*datosI[j]; //calcula el sumatorio de v*i
+ b = b + datosV[j]*datosV[j];
+ c = c + datosI[j]*datosI[j];
+ d = d + datosV[j]*datosI[j];
}
- //el puntero *medidas apunta la dirección de los distitntos vectores de la estructura
- //guardamos los resultados en la dirección de memoria que apunta *medidas para cada uno de los resultados
- medidas->vrms=0.011812328729925*sqrt(((float)b)/longi);
- medidas->irms=0.000842270393376366*sqrt(((float)c)/longi);
- medidas->pot_activa=(9.949174801697868320688107085e-6*d)/longi;
+
+
+ medidas->vrms=0.01275509675*sqrt(((float)b)/longi);
+ medidas->irms=0.0004536585089*sqrt(((float)c)/longi);
+ medidas->pot_activa=(5.786458173e-6*d)/longi;
medidas->pot_aparente=medidas->vrms*medidas->irms;
medidas->pot_reactiva=sqrt((medidas->pot_aparente*medidas->pot_aparente)-(medidas->pot_activa*medidas->pot_activa));
medidas->fact_potencia=((float)medidas->pot_activa)/medidas->pot_aparente;
medidas->en_consumida+=0.001*medidas->pot_activa*longi;
-// Se lleva la cuenta,mediante un contador, del número de veces que se ha
-//pulsado el pulsador para saber qué dato se deberá visualizar. Una vez que el
-//contador llegue al número máximo de datos, éste vuelve a cero y comienza de
-//nuevo la cuenta.
+
}
void flip() {
contador_boton++;
@@ -78,13 +76,13 @@
int main()
{
pc.baud(115200);
- bluetooth.baud(9600); //ESTA SE QUITA
+ bluetooth.baud(9600);
tMuestrear.attach_us(&muestrear, 200);
tVisualizar.attach(&visualizar, 1);
- button.rise(&flip); // attach the address of the flip function to the rising edge
+ button.rise(&flip);
while(1) {
if(flag==1) {
- // pc.printf("1");
+
flag=0;
if(buffer_activo) {
@@ -98,7 +96,7 @@
}
- //wait_us(1);
+
}
}
void muestrear()
@@ -106,7 +104,7 @@
int16_t datov=(int16_t)(adc_in.read_u16()^0x8000);
int16_t datoi=(int16_t)(adc_in_in.read_u16()^0x8000);
int16_t continua=(int16_t)(adc_in_dos.read_u16()^0x8000);
- if (bufferActivo==0) {
+ if (buffer_activo==0) {
buffers.vA[contador]=datov-continua;
buffers.iA[contador]=datoi-continua;
@@ -125,7 +123,7 @@
}
void visualizar(){
- //printf("**** Datos calculados en %d us ****\n",timer.read_us());
+
pc.printf("**** El valor Vrms es %f ****\n",medidas.vrms);
pc.printf("**** El valor Irms es %f ****\n",medidas.irms);
pc.printf("**** La potencia activa es %f ****\n",medidas.pot_activa);
@@ -152,6 +150,7 @@
lcd.cls();
lcd.printf("Pot activa\n%3.2f W\n", medidas.pot_activa);
break;
+
case 4:
lcd.cls();
@@ -163,22 +162,23 @@
lcd.cls();
lcd.printf("Pot aparente\n%3.2f VA\n", medidas.pot_aparente);
break;
+
case 6:
lcd.cls();
- lcd.printf("E. consumida\n%3.2f kW\n", medidas.en_consumida);
+ lcd.printf("En consumida\n%3.2f kW\n", medidas.en_consumida);
break;
+
case 7:
lcd.cls();
- lcd.printf("Factor potencia\n%3.2f\n", medidas.fact_potencia);
+ lcd.printf("Fact potencia\n%3.2f\n", medidas.fact_potencia);
break;
default:
lcd.cls();
- lcd.printf("Pulsa el boton");
+ lcd.printf("Pulsar boton");
}
bluetooth.printf("%3.2f|%3.2f|%3.2f|%3.2f|%3.2f|%3.2f|%3.2f|\n",medidas.vrms,
- medidas.irms,medidas.potenciaActiva,medidas.potenciaReactiva,
- medidas.potenciaAparente,medidas.energiaConsumida,medidas.factorDePotencia);
+ medidas.irms,medidas.pot_activa,medidas.pot_reactiva,
+ medidas.pot_aparente,medidas.en_consumida,medidas.fact_potencia);
}
-// TODO ESTO SE QUITA
\ No newline at end of file