Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@1:677ecfe29f10, 2015-04-09 (annotated)
- Committer:
- jeka
- Date:
- Thu Apr 09 05:39:56 2015 +0000
- Revision:
- 1:677ecfe29f10
- Parent:
- 0:ac833c85625c
:PO
Who changed what in which revision?
User | Revision | Line number | New 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 | } |