#include <stdio.h>
#include <math.h>
// Función para convertir la lectura del termopar a temperatura en grados Celsius
double convertirADegC(int lecturaTermopar) {
// Suponiendo que estás utilizando un termopar tipo K
double voltaje = lecturaTermopar * (5.0 / 1023.0); // 5.0V referencia, 10 bits de resolución
double temperatura = (voltaje - 1.25) / 0.005; // Ecuación tipo K
return temperatura;
}
// Función para convertir la temperatura en grados Celsius a hexadecimal de 4 bits
int convertirAHex4Bits(double temperaturaCelsius) {
// Tomar la parte entera de la temperatura y representarla en hexadecimal
int temperaturaHex = (int)temperaturaCelsius;
// Asegurarse de que la temperatura esté en el rango de 0 a 15 (4 bits)
temperaturaHex = fmin(fmax(temperaturaHex, 0), 15);
return temperaturaHex;
}
int main() {
int lecturaTermopar;
// Simulación de lectura del termopar (puedes reemplazar esto con la lectura real del hardware)
printf("Ingrese la lectura del termopar (0-1023): ");
scanf("%d", &lecturaTermopar);
// Conversión de la lectura a temperatura en grados Celsius
double temperaturaCelsius = convertirADegC(lecturaTermopar);
// Conversión de la temperatura a hexadecimal de 4 bits
int temperaturaHex = convertirAHex4Bits(temperaturaCelsius);
// Mostrar el resultado en hexadecimal
printf("Temperatura en grados Celsius: %.2f\n", temperaturaCelsius);
printf("Temperatura en hexadecimal (4 bits): 0x%X\n", temperaturaHex);
return 0;
}