/*
13-10-2021
Aplicacion para la lectura de una señal de corriente 4 - 20 mA
sobre una resistencia de 250 Ohm en la entrada analoga de voltaje
esto proporcionara lecturas de voltaje de 1 a 5 voltios.
Esta lectura de corriente representa a su vez una temperatura de -50 a +150 C
que proviene de un RTD PT100 conectada a un transmisor de corriente 4-20 mA
corriente voltaje(250 Ohm) ADC Temperatura
4 mA 1 V 205 -50 C
20 mA 5 V 1023 +150 C
*/
int EntradaAnaloga = A0; // Entrada analoga donde estara la resistencia de conversion de corriente a voltaje
float sensorValor;
float temperatura;
float f1 = 0;
float t1 = 0;
//valores de sensor asair
#define pin_temperatura A1
#define pin_humedad A2
void setup() {
// inicializa comunicacion serial a 9600 bps:
Serial.begin(9600);
}
void loop() {
// Obtener la lectura de ADC
sensorValor = analogRead(EntradaAnaloga);
// hacer el mapeo de las señales por cifras multiplicadas por 10 para
// obtener decimales, pues la funcion map no recibe numeros flotantes
temperatura=map(sensorValor,205,1024,-500,1500);
f1 = temperatura; // convirtiendo a flotante
t1 = f1/10.0; // dividiendo entre 10 ahora se tiene la lectra correcta
// con una cifra decimal
// Imprimiendo el resultado por el puerto serial
Serial.print("Temperatura con RTD= ");
Serial.print(t1);
Serial.print("°C");
Serial.print("\n");
// valores de sensor ASAIR
int val = analogRead(pin_temperatura);
int val_h = analogRead(pin_humedad);
float Temp,H;
Temp = log(10000.0 * ((1024.0 / val - 1))); //se uso una resistencia de 10k =10000 ohmios
Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp )) * Temp );//Valores constantes considerando NTC de 10K y trabajando a una temperatura entre -55°C a +125°C
Temp = Temp - 273.15; // Convertir de Kelvin a Celcius
H = 0.163 * val_h;//RH10 = val + 6val/10 + 3val/100; = 0.163*val
Serial.print("Temperatura con AMT1001:");
Serial.print(Temp);
Serial.print("°C");
Serial.print('\t');
Serial.print("Humedad con AMT1001:");
Serial.println(H);
delay(1000);
}