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
Fork of ControlTemperatura_2_3 by
main.cpp
- Committer:
- jeka
- Date:
- 2015-04-09
- Revision:
- 1:677ecfe29f10
- Parent:
- 0:ac833c85625c
- Child:
- 2:7e518b8dcda8
File content as of revision 1:677ecfe29f10:
// --------------------------------------------------------------------------- Inclusiones
#include "mbed.h"
#include "string.h"
using namespace std;
#define Si 1
#define No 0
// --------------------------------------------------------------------------- Variables y objetos
Serial pc(USBTX, USBRX); // Inicializo el puerto serie para comunicarme con la computadora
// La frecuencia por default es de 9600
// Variables
unsigned int tiempoFinal; // Variable para almacenar el tiempo máximo
float tempTrabajo; // Temperatura a la cual se debe mantener el sistema
float tempSen1; // Temperatura del sensor 1
float tempSen2; // Temperatura del sensor 2
float tempSen3; // Temperatura del sensor 3
float tempSen4; // Temperatura del sensor 4
float volSen1; // Voltaje para conversión sensor 1
float volSen2; // Voltaje para conversión sensor 2
float volSen3; // Voltaje para conversión sensor 3
float volSen4; // Voltaje para conversión sensor 4
uint16_t adcTempSen1; // Variable para almacenar valor de voltaje sensor 1
uint16_t adcTempSen2; // Variable para almacenar valor de voltaje sensor 2 son variables nuevas
uint16_t adcTempSen3; // Variable para almacenar valor de voltaje sensor 3
uint16_t adcTempSen4; // Variable para almacenar valor de voltaje sensor 4
Timer timmer; // Timer para medir el tiempo transcurrido
bool inicioProceso = No; // Variable para determinar si el proceso se inicia
bool pausaProceso = No; // Variable para pausar
bool finProceso = No; // Variable finalizar el proceso
char comando; // Variable para leer el comando a ejecutar en el proceso
char sTiempo[10]; // stringtiempo
char sTemperatura[10]; // string temperatura
//Pines de Salida
DigitalOut reflector1(p26); // Salida para controlar el reflector 1
DigitalOut reflector2(p25); // Salida para controlar el reflector 2
DigitalOut reflector3(p24); // Salida para controlar el reflector 3
DigitalOut reflector4(p23); // Salida para controlar el reflector 4
DigitalOut ventilador1(p22); // Salida para controlar el ventilador 1
DigitalOut ventilador2(p21); // Salida para controlar el ventilador 2
// Pines de Entrada
AnalogIn pinSen1(p16); // Entrada para leer la temperatura del sensor 1
AnalogIn pinSen2(p17); // Entrada para leer la temperatura del sensor 2
AnalogIn pinSen3(p18); // Entrada para leer la temperatura del sensor 3
AnalogIn pinSen4(p19); // Entrada para leer la temperatura del sensor 4
// --------------------------------------------------------------------------- Prototipos
void LeerSerie (void); // Función para leer el puerto serie
void LeerSensores (void); // Función para leer temperatura delos sensores
// --------------------------------------------------------------------------- Programa principal
int main()
{
pc.baud(9600);
pc.printf("Iniciando\n\r"); // Se imprime y se da enter
pc.attach(&LeerSerie);
pc.attach(&LeerSensores);
while(inicioProceso == No)
{
wait(0.1);
//pc.printf("y");
}// Espera a recibir comando
pc.printf("Proceso Iniciado\r\n");
// --------------------------------------------------------------------------- PROCESO
while(finProceso == No)
{
while(pausaProceso == Si) // ---------------------------------------- Proceso Pausado
{
pc.printf("Proceso Puasado\r\n");
wait(0.1);
}
}
pc.printf("Proceso Terminado\r\n");
}
// --------------------------------------------------------------------------- Funciones
// --------------------------------------------------------------------------- LeerSerie
void LeerSerie(void)
{
comando = pc.getc();
switch(comando)
{
case 'I':
inicioProceso = Si;
// Guardar Tiempo
// Guardar Temperatura
pc.scanf("%s %s",sTiempo, sTemperatura);
pc.printf("\r\n");
pc.printf(sTiempo);
pc.printf("\r\n");
pc.printf(sTemperatura);
pc.printf("\r\n");
tiempoFinal = atoi(sTiempo);
tempTrabajo = atoi(sTemperatura);
break;
case 'P':
pausaProceso = Si;
break;
case 'F':
finProceso = Si;
break;
case 'R':
pausaProceso = No;
break;
}
//----------------------------------------------------Leer temperatura
void LeerSensores(void)
{
adcTempSen1 = pinSen1.read_u16();
volSen1 = adcTempSen1 *5 / 65535;
tempSen1 =
pc.printf("Senor1: %1, %.2f volts, %.2f celcius. /r /n " , adcTempSen1, volSen1, tempSen1);
adcTempSen2= pinSen2.read_u16();
volSen2= adcTempSen2*5 / 65535;
tempSen2=
pc.printf("Senor2: %1, %.2f volts, %.2f celcius. /r /n " , adcTempSen2, volSen2, tempSen2);
adcTempSen3= pinSen3.read_u16();
volSen3= adcTempSen3*5 / 65535;
tempSen3=
pc.printf("Senor3: %1, %.2f volts, %.2f celcius. /r /n " , adcTempSen3, volSen3, tempSen3);
adcTempSen1 = pinSen1.read_u16();
volSen1 = adcTempSen1 *5 / 65535;
tempSen1 =
pc.printf("Senor4: %1, %.2f volts, %.2f celcius. /r /n " , adcTempSen4, volSen4, tempSen4);
wait(0.1);
}
}
