Go Down

Topic: problema lectura de temperatura doble canal (Read 485 times) previous topic - next topic

Adrian7557

Hola! buenas! estaba retomando un antiguo proyecto con ardruino, y para ponerme al día empecé con los sensores de temperatura que me parecía más facilito, pues bien, son dos distintos, uno logarítmico y el otro lineal, el código de cada uno funciona perfecto independientemente, el problema es cuando los uno para que me muestre los dos valores a la vez, el sensor lineal se vuelve loco y da datos aleatorios, pasando de 15 grados a 40, 12, 22 , de ese estilo, mientras, el logarítmico siempre va bien. he revisado el programa a ver si es que interfiere una ecuación con otra, pero aparentemente no veo nada, saben que puede ser? Gracias!

Code: [Select]


#include <math.h>
 
const int Rc = 10000; //valor de la resistencia
const int Vcc = 5;
const int SensorPIN1 = A2;
const int SensorPIN2 = A6;
 
float A = 1.11492089e-3;
float B = 2.372075385e-4;
float C = 6.954079529e-8;
 
float K = 2.5; //factor de disipacion en mW/C
 
void setup()
{
  Serial.begin(9600);
}
 
void loop()
{
 
 
  float raw1 = analogRead(SensorPIN1);
  float V1 =  raw1 / 1024 * Vcc;
 
  float R = (Rc * V1 ) / (Vcc - V1);
 
 
  float logR  = log(R);
  float R_th = 1.0 / (A + B * logR + C * logR * logR * logR );
 
  float kelvin = R_th - V1*V1/(K * R)*1000;
  float celsius1 = kelvin - 273.15;

  float raw2 = analogRead(SensorPIN2);
  float V2 = (raw2 / 1024) * 5000;
  float celsius2 = V2 / 10;
 
  Serial.print(" / T Ambiente= ");
  Serial.print(celsius1);
  Serial.print("C");
  Serial.print("T Agua = ");
  Serial.print(celsius2);
  Serial.print("C\n");
  delay(2500);
}


surbyte

No veo fallas en el código.
Cuentame mas de los sensores.
Uno es un LM35, eso esta claro, el 2
El primero es una R logaritmica de que valor nominal a 25 grados?

Adrian7557

Si, es un sensor encapsulado en metal para meter en el agua de dos pines, que lo tengo conectado al GND y a 5v con una resistencia de 10k que va desde la pata de 5v al pin A6, de todas formas ese no me falla nunca, ni en solitario ni en el grupo, el que falla es el otro el LM35, de hecho pensé que estaba estropeado, pero si borras la parte logarítmica del otro, éste funciona perfecto, así que no lo entiendo....

surbyte

Y como lo tienes conectado?

Seguro que esta conectado a A2?

3 pines, uno gnd, uno a A2 y otro a 5V?





Verifica por favor.
Cual de las conexiones usa, izq o derecha. Derecha con R a GND esta mal, debe ser con R a Tension negativa algo que todos pasan por alto pero tampoco sería motivo de una falla como la que comentas.


Adrian7557

lo conecte como interprete en el esquema que mandas, y me salian temperaturas de 290 arriba... lo toque y estaba hirviendo, así que volví a ponerlo como antes. En el programa si borro la parte del logaritmo me funciona bien si la pongo, ya no, no tiene mucho sentido pero ese es el fallo... Gracias por la ayuda por cierto!

surbyte

#5
Dec 18, 2017, 04:37 pm Last Edit: Dec 18, 2017, 04:38 pm by surbyte
No hay modo de interpretar las cosas en electrónica.
Existe un solo modo. Seguramente lo pusiste al revés y ya como lo tenías estaba bien, yo solo te puse el esquema para que veas como debe ir.



Acá otro esquema que debe ser el que usas.

Ahora me doy cuenta de algo.
A6 estas usando.
Que Arduino usas? UNO no puede ser.
Minimo NANO o MEGA.

Adrian7557

es el Nano, aunque antes lo tenía en el A5 y lo cambie por si era que estaba mal el pin o algo, y nada tampoco funciono...

Go Up