ESTE ES UN PROGRAMA PARA EL CONTROL DE NIVEL Y TEMPERATURA CON INDICACIÓN DE NIVELES Y GENERACIÓN DE ALARMAS

Dependencies:   mbed TextLCD

En esta tutoría se esta realizando un proyecto para la medición de temperatura y nivel con sensores industriales por lo que con la ayuda de un potenciometro se realizo la simulación de un sensor de variando su valor desde el mínimo al máximo y verificar el funcionamiento de la entrada analógica, en la cual se pudo observar que el potenciometro antes de hacer todo su recorrido ya alcanzaba el 100% del valor de la entrada analógica por lo que se realizo mediciones y se contrasto la alimentación de potenciometro es 3.3 voltios y efectivamente al llegar la regulación del potenciometro a 3 voltios ya se quedaba desbordado el valor por lo que se le consulto al tutor el cual indico que se revise la parte de los valores de referencia del Micro por lo que se reviso y el Micro estaba con una referencia de 3 voltios por lo que ya no alcanzaba a leer mayor a ese valor y se realizaron los cambios como se indica en la imagen para referenciar las entradas analógicas se quita el jumper 1 que viene por default con una referencia de 3 voltios, como se observa en la imagen en el circulo rojo teniendo el jumper fuera se realiza un puente ya sea a 3.3 voltios o a 5 voltios como referencia según las necesidades de cada uno, en este caso se lo llevo a 5 voltios para trabajar con entradas analógicas referencias a 5 voltios.

Committer:
rxavi
Date:
Sat Feb 15 18:44:00 2020 +0000
Revision:
4:3a4d4e798cc5
Parent:
3:af099369037c
new

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rxavi 1:8fd3e0ba95d6 1 #include "mbed.h" // llamado a la libreria mbed
rxavi 3:af099369037c 2 #include "nivel.h"
rxavi 3:af099369037c 3 #include "temperatura.h"
rxavi 2:4751592f55a1 4 #include "TextLCD.h"
rxavi 1:8fd3e0ba95d6 5
rxavi 1:8fd3e0ba95d6 6 //Entradas digitales
rxavi 1:8fd3e0ba95d6 7 DigitalIn Pulsador(PA_0);
rxavi 0:eded043680a3 8
rxavi 1:8fd3e0ba95d6 9 //Salidas digitales
rxavi 1:8fd3e0ba95d6 10 DigitalOut led_naranja(PD_13);
rxavi 1:8fd3e0ba95d6 11 DigitalOut led_verde(PD_12);
rxavi 1:8fd3e0ba95d6 12 DigitalOut led_rojo(PD_14);
rxavi 1:8fd3e0ba95d6 13 DigitalOut led_azul(PD_15);
rxavi 1:8fd3e0ba95d6 14
rxavi 1:8fd3e0ba95d6 15 //Entradas analogicas
rxavi 3:af099369037c 16 AnalogIn ain1(PC_1);
rxavi 3:af099369037c 17 AnalogIn ain2(PC_2);
rxavi 3:af099369037c 18
rxavi 3:af099369037c 19 //Interrupciones
rxavi 3:af099369037c 20 Ticker flipper1;
rxavi 3:af099369037c 21 Ticker flipper2;
rxavi 1:8fd3e0ba95d6 22
rxavi 1:8fd3e0ba95d6 23 //Variables auxiliares
rxavi 3:af099369037c 24 bool seleccion_visualizador=0;
rxavi 3:af099369037c 25 int i=0;
rxavi 3:af099369037c 26 float sensor1=0.0;
rxavi 3:af099369037c 27 float sensor2=0.0;
rxavi 1:8fd3e0ba95d6 28
rxavi 3:af099369037c 29 //Comunicacion
rxavi 2:4751592f55a1 30 Serial device (PA_2,PA_3,115200);
rxavi 0:eded043680a3 31
rxavi 2:4751592f55a1 32 //LCD
rxavi 2:4751592f55a1 33 TextLCD lcd(PB_7, PB_8, PB_15, PB_14, PB_13, PB_12);
rxavi 3:af099369037c 34
rxavi 3:af099369037c 35 void flip1() // flip 1 function
rxavi 3:af099369037c 36 {
rxavi 4:3a4d4e798cc5 37 sensor1 = ain1*100;
rxavi 4:3a4d4e798cc5 38 device.printf("Nivel: %0.1f%%\n", sensor1);
rxavi 3:af099369037c 39 }
rxavi 3:af099369037c 40
rxavi 3:af099369037c 41 void flip2() // flip 2 function
rxavi 3:af099369037c 42 {
rxavi 4:3a4d4e798cc5 43 sensor2 = ain2*100;
rxavi 3:af099369037c 44 device.printf("Temp: %0.1f grados Celsius%\n", sensor2);
rxavi 3:af099369037c 45 }
rxavi 3:af099369037c 46
rxavi 3:af099369037c 47 int main()
rxavi 3:af099369037c 48 {
rxavi 3:af099369037c 49 flipper1.attach(&flip1, 1.0); // cada segundo
rxavi 3:af099369037c 50 flipper2.attach(&flip2, 1.0); // cada segundo
rxavi 3:af099369037c 51
rxavi 0:eded043680a3 52 while(1) {
rxavi 3:af099369037c 53 seleccion_visualizador=Pulsador.read();
rxavi 3:af099369037c 54
rxavi 4:3a4d4e798cc5 55 // device.printf("Nivel en porcentaje: %0.1f%%\n", sensor1()*1);
rxavi 3:af099369037c 56 nivel();
rxavi 3:af099369037c 57 temperatura();
rxavi 1:8fd3e0ba95d6 58
rxavi 3:af099369037c 59 if(Pulsador == 1) { //Prueba de pulsador
rxavi 3:af099369037c 60 i++;
rxavi 3:af099369037c 61 if (i>1) i=0;
rxavi 3:af099369037c 62 }
rxavi 3:af099369037c 63 if (i==0) {
rxavi 3:af099369037c 64 lcd.locate(0,0);
rxavi 4:3a4d4e798cc5 65 lcd.printf(" Nivel: %2.2f%\n",sensor1);
rxavi 4:3a4d4e798cc5 66 lcd.printf(" Temp.: %2.2f%\n",sensor2);
rxavi 3:af099369037c 67 }
rxavi 3:af099369037c 68 if (i==1) {
rxavi 3:af099369037c 69 lcd.locate(0,0);
rxavi 4:3a4d4e798cc5 70 lcd.printf(" Temp.: %2.2f%\n",sensor2);
rxavi 4:3a4d4e798cc5 71 lcd.printf(" Nivel: %2.2f%\n",sensor1);
rxavi 3:af099369037c 72 }
rxavi 3:af099369037c 73 wait(1);
rxavi 3:af099369037c 74 }
rxavi 3:af099369037c 75 }