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 17:33:23 2020 +0000
Revision:
2:4751592f55a1
Parent:
1:8fd3e0ba95d6
Child:
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 2:4751592f55a1 2 //#include "nivel.h"
rxavi 2:4751592f55a1 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 1:8fd3e0ba95d6 16 AnalogIn ain1(PC_1);
rxavi 2:4751592f55a1 17 AnalogIn ain2(PC_2);
rxavi 1:8fd3e0ba95d6 18
rxavi 1:8fd3e0ba95d6 19 //Salidas analogicas
rxavi 1:8fd3e0ba95d6 20
rxavi 1:8fd3e0ba95d6 21 //Variables auxiliares
rxavi 1:8fd3e0ba95d6 22
rxavi 1:8fd3e0ba95d6 23 //Comunicacion
rxavi 2:4751592f55a1 24 Serial device (PA_2,PA_3,115200);
rxavi 0:eded043680a3 25
rxavi 2:4751592f55a1 26 //LCD
rxavi 2:4751592f55a1 27 TextLCD lcd(PB_7, PB_8, PB_15, PB_14, PB_13, PB_12);
rxavi 0:eded043680a3 28 int main() {
rxavi 2:4751592f55a1 29
rxavi 0:eded043680a3 30 while(1) {
rxavi 1:8fd3e0ba95d6 31 device.printf("Nivel en porcentaje: %0.1f%%\n", ain1.read()*100.0f);
rxavi 1:8fd3e0ba95d6 32
rxavi 1:8fd3e0ba95d6 33 if(ain1 < 0.1f) { //Condicionamiento para detectar nivel bajo bajo
rxavi 1:8fd3e0ba95d6 34 led_rojo = 1; //Enciende indicador de nivel bajo bajo
rxavi 1:8fd3e0ba95d6 35 device.printf("Alarma de nivel bajo bajo\r ");
rxavi 1:8fd3e0ba95d6 36 }
rxavi 1:8fd3e0ba95d6 37 else{
rxavi 1:8fd3e0ba95d6 38 led_rojo = 0; //Apaga indicador de nivel bajo bajo
rxavi 1:8fd3e0ba95d6 39 }
rxavi 1:8fd3e0ba95d6 40
rxavi 1:8fd3e0ba95d6 41 if(ain1 > 0.1f and ain1 < 0.3f) { //Condicionamiento para detectar nivel bajo
rxavi 1:8fd3e0ba95d6 42 led_naranja = 1; //Enciende indicador de nivel bajo
rxavi 1:8fd3e0ba95d6 43 }
rxavi 1:8fd3e0ba95d6 44 else{
rxavi 1:8fd3e0ba95d6 45 led_naranja = 0; //Apaga indicador de nivel bajo
rxavi 1:8fd3e0ba95d6 46 }
rxavi 1:8fd3e0ba95d6 47
rxavi 1:8fd3e0ba95d6 48 if(ain1 > 0.3f and ain1 < 0.9f) { //Condicionamiento para detectar nivel normal
rxavi 1:8fd3e0ba95d6 49 led_verde = 1; //Enciende indicador de nivel normal
rxavi 1:8fd3e0ba95d6 50 }
rxavi 1:8fd3e0ba95d6 51 else{
rxavi 1:8fd3e0ba95d6 52 led_verde = 0; //Apaga indicador de nivel normal
rxavi 1:8fd3e0ba95d6 53 }
rxavi 1:8fd3e0ba95d6 54
rxavi 1:8fd3e0ba95d6 55 if(ain1 > 0.9f) { //Condicionamiento para detectar nivel alto
rxavi 1:8fd3e0ba95d6 56 led_azul = 1; //Enciende indicador de nivel alto
rxavi 1:8fd3e0ba95d6 57 device.printf("Alarma de nivel alto\r ");
rxavi 1:8fd3e0ba95d6 58 }
rxavi 1:8fd3e0ba95d6 59 else{
rxavi 1:8fd3e0ba95d6 60 led_azul = 0; //Apaga indicador de nivel alto
rxavi 1:8fd3e0ba95d6 61 }
rxavi 1:8fd3e0ba95d6 62
rxavi 1:8fd3e0ba95d6 63 if(Pulsador == 1) { //Prueba de pulsador
rxavi 1:8fd3e0ba95d6 64 device.printf("Pulsador presionado\n ");
rxavi 1:8fd3e0ba95d6 65 }
rxavi 1:8fd3e0ba95d6 66
rxavi 1:8fd3e0ba95d6 67 wait(0.5f);
rxavi 1:8fd3e0ba95d6 68 }
rxavi 1:8fd3e0ba95d6 69 }
rxavi 1:8fd3e0ba95d6 70