Sara Ojeda
/
LCDhsens
Para las pruebas de calibración
prueba_hsens.cpp@0:59016313da41, 2019-07-02 (annotated)
- Committer:
- sajedal
- Date:
- Tue Jul 02 13:02:44 2019 +0000
- Revision:
- 0:59016313da41
LCDhsens
Who changed what in which revision?
User | Revision | Line number | New 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 | } |