ControlTemperatura / Mbed 2 deprecated ControlTemperatura_2

Dependencies:   mbed

Committer:
jeka
Date:
Thu Apr 09 05:39:56 2015 +0000
Revision:
1:677ecfe29f10
Parent:
0:ac833c85625c
:PO

Who changed what in which revision?

UserRevisionLine numberNew contents of line
davicone 0:ac833c85625c 1
davicone 0:ac833c85625c 2 // --------------------------------------------------------------------------- Inclusiones
davicone 0:ac833c85625c 3 #include "mbed.h"
davicone 0:ac833c85625c 4 #include "string.h"
davicone 0:ac833c85625c 5 using namespace std;
davicone 0:ac833c85625c 6
davicone 0:ac833c85625c 7 #define Si 1
davicone 0:ac833c85625c 8 #define No 0
davicone 0:ac833c85625c 9
davicone 0:ac833c85625c 10
davicone 0:ac833c85625c 11
davicone 0:ac833c85625c 12
davicone 0:ac833c85625c 13 // --------------------------------------------------------------------------- Variables y objetos
davicone 0:ac833c85625c 14 Serial pc(USBTX, USBRX); // Inicializo el puerto serie para comunicarme con la computadora
davicone 0:ac833c85625c 15 // La frecuencia por default es de 9600
davicone 0:ac833c85625c 16
davicone 0:ac833c85625c 17 // Variables
davicone 0:ac833c85625c 18 unsigned int tiempoFinal; // Variable para almacenar el tiempo máximo
davicone 0:ac833c85625c 19 float tempTrabajo; // Temperatura a la cual se debe mantener el sistema
jeka 1:677ecfe29f10 20 float tempSen1; // Temperatura del sensor 1
davicone 0:ac833c85625c 21 float tempSen2; // Temperatura del sensor 2
davicone 0:ac833c85625c 22 float tempSen3; // Temperatura del sensor 3
jeka 1:677ecfe29f10 23 float tempSen4; // Temperatura del sensor 4
jeka 1:677ecfe29f10 24 float volSen1; // Voltaje para conversión sensor 1
jeka 1:677ecfe29f10 25 float volSen2; // Voltaje para conversión sensor 2
jeka 1:677ecfe29f10 26 float volSen3; // Voltaje para conversión sensor 3
jeka 1:677ecfe29f10 27 float volSen4; // Voltaje para conversión sensor 4
jeka 1:677ecfe29f10 28 uint16_t adcTempSen1; // Variable para almacenar valor de voltaje sensor 1
jeka 1:677ecfe29f10 29 uint16_t adcTempSen2; // Variable para almacenar valor de voltaje sensor 2 son variables nuevas
jeka 1:677ecfe29f10 30 uint16_t adcTempSen3; // Variable para almacenar valor de voltaje sensor 3
jeka 1:677ecfe29f10 31 uint16_t adcTempSen4; // Variable para almacenar valor de voltaje sensor 4
davicone 0:ac833c85625c 32 Timer timmer; // Timer para medir el tiempo transcurrido
davicone 0:ac833c85625c 33 bool inicioProceso = No; // Variable para determinar si el proceso se inicia
davicone 0:ac833c85625c 34 bool pausaProceso = No; // Variable para pausar
davicone 0:ac833c85625c 35 bool finProceso = No; // Variable finalizar el proceso
davicone 0:ac833c85625c 36 char comando; // Variable para leer el comando a ejecutar en el proceso
jeka 1:677ecfe29f10 37 char sTiempo[10]; // stringtiempo
jeka 1:677ecfe29f10 38 char sTemperatura[10]; // string temperatura
jeka 1:677ecfe29f10 39
davicone 0:ac833c85625c 40
davicone 0:ac833c85625c 41
davicone 0:ac833c85625c 42 //Pines de Salida
davicone 0:ac833c85625c 43 DigitalOut reflector1(p26); // Salida para controlar el reflector 1
davicone 0:ac833c85625c 44 DigitalOut reflector2(p25); // Salida para controlar el reflector 2
davicone 0:ac833c85625c 45 DigitalOut reflector3(p24); // Salida para controlar el reflector 3
davicone 0:ac833c85625c 46 DigitalOut reflector4(p23); // Salida para controlar el reflector 4
davicone 0:ac833c85625c 47 DigitalOut ventilador1(p22); // Salida para controlar el ventilador 1
davicone 0:ac833c85625c 48 DigitalOut ventilador2(p21); // Salida para controlar el ventilador 2
davicone 0:ac833c85625c 49
davicone 0:ac833c85625c 50 // Pines de Entrada
davicone 0:ac833c85625c 51 AnalogIn pinSen1(p16); // Entrada para leer la temperatura del sensor 1
davicone 0:ac833c85625c 52 AnalogIn pinSen2(p17); // Entrada para leer la temperatura del sensor 2
davicone 0:ac833c85625c 53 AnalogIn pinSen3(p18); // Entrada para leer la temperatura del sensor 3
davicone 0:ac833c85625c 54 AnalogIn pinSen4(p19); // Entrada para leer la temperatura del sensor 4
davicone 0:ac833c85625c 55
davicone 0:ac833c85625c 56
davicone 0:ac833c85625c 57 // --------------------------------------------------------------------------- Prototipos
jeka 1:677ecfe29f10 58 void LeerSerie (void); // Función para leer el puerto serie
jeka 1:677ecfe29f10 59 void LeerSensores (void); // Función para leer temperatura delos sensores
davicone 0:ac833c85625c 60
davicone 0:ac833c85625c 61
davicone 0:ac833c85625c 62 // --------------------------------------------------------------------------- Programa principal
davicone 0:ac833c85625c 63 int main()
davicone 0:ac833c85625c 64 {
davicone 0:ac833c85625c 65 pc.baud(9600);
davicone 0:ac833c85625c 66 pc.printf("Iniciando\n\r"); // Se imprime y se da enter
davicone 0:ac833c85625c 67 pc.attach(&LeerSerie);
jeka 1:677ecfe29f10 68 pc.attach(&LeerSensores);
davicone 0:ac833c85625c 69
davicone 0:ac833c85625c 70 while(inicioProceso == No)
davicone 0:ac833c85625c 71 {
davicone 0:ac833c85625c 72 wait(0.1);
davicone 0:ac833c85625c 73 //pc.printf("y");
davicone 0:ac833c85625c 74 }// Espera a recibir comando
davicone 0:ac833c85625c 75
davicone 0:ac833c85625c 76 pc.printf("Proceso Iniciado\r\n");
davicone 0:ac833c85625c 77
davicone 0:ac833c85625c 78
davicone 0:ac833c85625c 79 // --------------------------------------------------------------------------- PROCESO
davicone 0:ac833c85625c 80 while(finProceso == No)
davicone 0:ac833c85625c 81 {
davicone 0:ac833c85625c 82
davicone 0:ac833c85625c 83
davicone 0:ac833c85625c 84
davicone 0:ac833c85625c 85 while(pausaProceso == Si) // ---------------------------------------- Proceso Pausado
davicone 0:ac833c85625c 86 {
davicone 0:ac833c85625c 87 pc.printf("Proceso Puasado\r\n");
davicone 0:ac833c85625c 88 wait(0.1);
davicone 0:ac833c85625c 89 }
davicone 0:ac833c85625c 90 }
davicone 0:ac833c85625c 91
davicone 0:ac833c85625c 92 pc.printf("Proceso Terminado\r\n");
davicone 0:ac833c85625c 93 }
davicone 0:ac833c85625c 94
davicone 0:ac833c85625c 95
davicone 0:ac833c85625c 96 // --------------------------------------------------------------------------- Funciones
davicone 0:ac833c85625c 97
davicone 0:ac833c85625c 98 // --------------------------------------------------------------------------- LeerSerie
davicone 0:ac833c85625c 99 void LeerSerie(void)
davicone 0:ac833c85625c 100 {
davicone 0:ac833c85625c 101 comando = pc.getc();
davicone 0:ac833c85625c 102 switch(comando)
davicone 0:ac833c85625c 103 {
davicone 0:ac833c85625c 104 case 'I':
davicone 0:ac833c85625c 105 inicioProceso = Si;
davicone 0:ac833c85625c 106 // Guardar Tiempo
davicone 0:ac833c85625c 107 // Guardar Temperatura
davicone 0:ac833c85625c 108 pc.scanf("%s %s",sTiempo, sTemperatura);
davicone 0:ac833c85625c 109 pc.printf("\r\n");
davicone 0:ac833c85625c 110 pc.printf(sTiempo);
davicone 0:ac833c85625c 111 pc.printf("\r\n");
davicone 0:ac833c85625c 112 pc.printf(sTemperatura);
davicone 0:ac833c85625c 113 pc.printf("\r\n");
davicone 0:ac833c85625c 114
davicone 0:ac833c85625c 115 tiempoFinal = atoi(sTiempo);
davicone 0:ac833c85625c 116 tempTrabajo = atoi(sTemperatura);
davicone 0:ac833c85625c 117 break;
davicone 0:ac833c85625c 118
davicone 0:ac833c85625c 119 case 'P':
davicone 0:ac833c85625c 120 pausaProceso = Si;
davicone 0:ac833c85625c 121 break;
davicone 0:ac833c85625c 122
davicone 0:ac833c85625c 123 case 'F':
davicone 0:ac833c85625c 124 finProceso = Si;
davicone 0:ac833c85625c 125 break;
davicone 0:ac833c85625c 126
davicone 0:ac833c85625c 127 case 'R':
davicone 0:ac833c85625c 128 pausaProceso = No;
davicone 0:ac833c85625c 129 break;
davicone 0:ac833c85625c 130
davicone 0:ac833c85625c 131 }
jeka 1:677ecfe29f10 132
jeka 1:677ecfe29f10 133 //----------------------------------------------------Leer temperatura
jeka 1:677ecfe29f10 134 void LeerSensores(void)
jeka 1:677ecfe29f10 135 {
jeka 1:677ecfe29f10 136 adcTempSen1 = pinSen1.read_u16();
jeka 1:677ecfe29f10 137 volSen1 = adcTempSen1 *5 / 65535;
jeka 1:677ecfe29f10 138 tempSen1 =
jeka 1:677ecfe29f10 139 pc.printf("Senor1: %1, %.2f volts, %.2f celcius. /r /n " , adcTempSen1, volSen1, tempSen1);
jeka 1:677ecfe29f10 140
jeka 1:677ecfe29f10 141 adcTempSen2= pinSen2.read_u16();
jeka 1:677ecfe29f10 142 volSen2= adcTempSen2*5 / 65535;
jeka 1:677ecfe29f10 143 tempSen2=
jeka 1:677ecfe29f10 144 pc.printf("Senor2: %1, %.2f volts, %.2f celcius. /r /n " , adcTempSen2, volSen2, tempSen2);
jeka 1:677ecfe29f10 145
jeka 1:677ecfe29f10 146 adcTempSen3= pinSen3.read_u16();
jeka 1:677ecfe29f10 147 volSen3= adcTempSen3*5 / 65535;
jeka 1:677ecfe29f10 148 tempSen3=
jeka 1:677ecfe29f10 149 pc.printf("Senor3: %1, %.2f volts, %.2f celcius. /r /n " , adcTempSen3, volSen3, tempSen3);
jeka 1:677ecfe29f10 150
jeka 1:677ecfe29f10 151 adcTempSen1 = pinSen1.read_u16();
jeka 1:677ecfe29f10 152 volSen1 = adcTempSen1 *5 / 65535;
jeka 1:677ecfe29f10 153 tempSen1 =
jeka 1:677ecfe29f10 154 pc.printf("Senor4: %1, %.2f volts, %.2f celcius. /r /n " , adcTempSen4, volSen4, tempSen4);
jeka 1:677ecfe29f10 155
jeka 1:677ecfe29f10 156
jeka 1:677ecfe29f10 157 wait(0.1);
jeka 1:677ecfe29f10 158
jeka 1:677ecfe29f10 159
jeka 1:677ecfe29f10 160
jeka 1:677ecfe29f10 161
jeka 1:677ecfe29f10 162
jeka 1:677ecfe29f10 163 }
jeka 1:677ecfe29f10 164
jeka 1:677ecfe29f10 165
jeka 1:677ecfe29f10 166
davicone 0:ac833c85625c 167 }