Para las pruebas de calibración

Dependencies:   mbed C12832

Committer:
sajedal
Date:
Tue Jul 02 13:02:44 2019 +0000
Revision:
0:59016313da41
LCDhsens

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sajedal 0:59016313da41 1 #include "prueba_hsens.h"
sajedal 0:59016313da41 2 #include "Pinout.h"
sajedal 0:59016313da41 3 #include "mbed.h"
sajedal 0:59016313da41 4 #include "C12832.h"
sajedal 0:59016313da41 5 #include <math.h>
sajedal 0:59016313da41 6 #include <stdio.h>
sajedal 0:59016313da41 7 //Para luego escribir printf, me compilaba también sin ponerlo
sajedal 0:59016313da41 8 AnalogIn entrada(Pinout::pines::entr); //Definición de la entrada analógica
sajedal 0:59016313da41 9 DigitalIn ok(Pinout::pines::ok_in); //Definición de la entrada digital
sajedal 0:59016313da41 10 DigitalIn rst(Pinout::pines::rst_in); //Definición de la entrada digital
sajedal 0:59016313da41 11 C12832 lcd(p5, p7, p6, p8, p11); //Librería de la pantalla LCD del módulo de aplicación
sajedal 0:59016313da41 12
sajedal 0:59016313da41 13 prueba_hsens::prueba_hsens(){
sajedal 0:59016313da41 14 this->tension = 0;
sajedal 0:59016313da41 15 this->suma=0;
sajedal 0:59016313da41 16 this->media=0;
sajedal 0:59016313da41 17 this->medida =50;
sajedal 0:59016313da41 18 this->max=0;
sajedal 0:59016313da41 19 this->min=1000;
sajedal 0:59016313da41 20 }
sajedal 0:59016313da41 21
sajedal 0:59016313da41 22 prueba_hsens::~prueba_hsens(){
sajedal 0:59016313da41 23 lcd.cls();
sajedal 0:59016313da41 24 lcd.locate(0,0);
sajedal 0:59016313da41 25 lcd.printf("Se ha destruido una instancia y nunca se deberia destruir\r\n");
sajedal 0:59016313da41 26 }
sajedal 0:59016313da41 27
sajedal 0:59016313da41 28 void prueba_hsens::medir_tension(){
sajedal 0:59016313da41 29
sajedal 0:59016313da41 30 lcd.cls();
sajedal 0:59016313da41 31 lcd.locate(0,0);
sajedal 0:59016313da41 32 lcd.printf("Hello! ");
sajedal 0:59016313da41 33
sajedal 0:59016313da41 34 do{
sajedal 0:59016313da41 35 if (ok==1){
sajedal 0:59016313da41 36 this->suma = 0;
sajedal 0:59016313da41 37 this->media = 0;
sajedal 0:59016313da41 38 this->max = 0;
sajedal 0:59016313da41 39 this->min=1000;
sajedal 0:59016313da41 40 for(uint8_t i =0; i <medida; i++ ){
sajedal 0:59016313da41 41 if(rst==0){
sajedal 0:59016313da41 42 this->tension = entrada;
sajedal 0:59016313da41 43 this->tension = this->tension*3.3;
sajedal 0:59016313da41 44 this->suma = this->suma + this->tension;
sajedal 0:59016313da41 45 //Buco el valor mayor
sajedal 0:59016313da41 46 if (this->tension > max){
sajedal 0:59016313da41 47 max = this->tension;
sajedal 0:59016313da41 48 }
sajedal 0:59016313da41 49 //Busco el valor menor
sajedal 0:59016313da41 50 if (this->tension < min){
sajedal 0:59016313da41 51 min = this->tension;
sajedal 0:59016313da41 52 }
sajedal 0:59016313da41 53 //Muestro la tensión por la pantalla LCD
sajedal 0:59016313da41 54 lcd.cls();
sajedal 0:59016313da41 55 lcd.locate(0,0);
sajedal 0:59016313da41 56 lcd.printf("Medida: ");
sajedal 0:59016313da41 57 lcd.printf ("%i", (i+1));
sajedal 0:59016313da41 58 lcd.printf(". V:");
sajedal 0:59016313da41 59 lcd.printf("%lf", this->tension);
sajedal 0:59016313da41 60 lcd.printf("v ");
sajedal 0:59016313da41 61 wait (0.2);
sajedal 0:59016313da41 62 } else{
sajedal 0:59016313da41 63 inicio=1;
sajedal 0:59016313da41 64 }
sajedal 0:59016313da41 65 }
sajedal 0:59016313da41 66 if (rst==0){
sajedal 0:59016313da41 67 //Calculo de la media de las medidas
sajedal 0:59016313da41 68 this->media = this->suma / medida;
sajedal 0:59016313da41 69 //Se muestra el valor de la media por pantalla
sajedal 0:59016313da41 70 do {
sajedal 0:59016313da41 71 lcd.cls();
sajedal 0:59016313da41 72 lcd.locate(0,0);
sajedal 0:59016313da41 73 lcd.printf("Media V: ");
sajedal 0:59016313da41 74 lcd.printf("%lf", this->media);
sajedal 0:59016313da41 75 lcd.printf("v ");
sajedal 0:59016313da41 76 wait (3);
sajedal 0:59016313da41 77 lcd.cls();
sajedal 0:59016313da41 78 lcd.locate(0,0);
sajedal 0:59016313da41 79 lcd.printf("Max: ");
sajedal 0:59016313da41 80 lcd.printf("%lf", this->max);
sajedal 0:59016313da41 81 lcd.printf("v ");
sajedal 0:59016313da41 82 wait (3);
sajedal 0:59016313da41 83 lcd.cls();
sajedal 0:59016313da41 84 lcd.locate(0,0);
sajedal 0:59016313da41 85 lcd.printf("Min: ");
sajedal 0:59016313da41 86 lcd.printf("%lf", this->min);
sajedal 0:59016313da41 87 lcd.printf("v ");
sajedal 0:59016313da41 88 wait (3);
sajedal 0:59016313da41 89
sajedal 0:59016313da41 90 }while (rst==0);
sajedal 0:59016313da41 91 }else{
sajedal 0:59016313da41 92 inicio = 1;
sajedal 0:59016313da41 93 }
sajedal 0:59016313da41 94 }
sajedal 0:59016313da41 95
sajedal 0:59016313da41 96 }while(inicio == 0);
sajedal 0:59016313da41 97
sajedal 0:59016313da41 98 return;
sajedal 0:59016313da41 99 }