Lectura de temperatura excesivamente alta con LM35

4

Soy realmente nuevo en electrónica y estoy experimentando en este momento con una placa de pruebas.

Mi pregunta aquí está relacionada con el sensor de temperatura LM35 y el microcontrolador Arduino. Estoy obteniendo una lectura muy alta a través del sensor de 448 grados centígrados. Obviamente, esto está muy lejos. La fórmula de conversión que estoy usando es:

inputvoltage = (5.0*inputvoltage*100.0)/1024.0;

Estoy alimentando 5V en el sensor desde el Arduino y obtengo una lectura de voltaje de 0.50 en mi multímetro entre 5V de entrada y salida. ¿Crees que el sensor podría estar defectuoso? ¡Cualquier ayuda sobre este tema sería genial!

EDITAR: Algunas personas han pedido mi código al arduino, así que aquí está:

int tempPin = 0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  float temp = (5.0 * analogRead(tempPin) * 100.0) / 1024;
  Serial.print(temp,1);
  Serial.println(" degrees C   ");
  delay(1000);
  }

Esteesquemamuestralaconfiguraciónrealmentesimplequetengo.

He agregado una imagen de mi configuración si alguien puede detectar algo que no puedo.

    
pregunta Lane George

6 respuestas

5

4.15V de Vout a GND con cables cortos y suministro de 5V es totalmente incorrecto. O bien tiene las conexiones incorrectas o el LM35 está tostado. Vuelva a verificar la conexión en lugar de la hoja de datos .

Sospecho que, debido a esa lectura de voltaje en particular, es posible que las conexiones se confundan.

Edit: Gracias por la foto. Mirando la parte frontal (la parte con las marcas) de izquierda a derecha, el orden de los pines es:

Vs, Vout, GND = +5, Vout, GND

En tu foto veo +5, Vout, GND como debería ser. Entonces, está leyendo más de 10mV / ° C en Vout con el cable azul desconectado del Arduino (y 5V / 0V en los cables naranja y negro respectivamente) diría que está muerto. Tal vez el poder se invirtió momentáneamente en él?

    
respondido por el Spehro Pefhany
3

Usted dice que "mide 0.5V entre la entrada de 5V y la salida". Si lo dice exactamente como lo dice: hay algo mal con su sensor o su configuración, porque entonces la salida es de 4,5 V desde el suelo, lo que es 450 grados centígrados, lo que de hecho significaría que el sensor es muy cerca de fumar, independientemente del hecho de que ya no funciona en absoluto en ese momento.

Si te refieres a que estás midiendo 0.5V en la salida en relación con el suelo, eso sería alrededor de 50 grados centígrados, lo que es posible si has estado soldando recientemente o lo has calentado intencionalmente.

Luego llegamos a los cálculos: esto me parece aceptable, suponiendo que Arduino mide en el modo de precisión de 10 bits. Creo que es seguro asumir eso. No tengo conocimientos sobre Arduino, pero los Atmels de adentro admiten el modo de 8 bits y 10 bits. En cuanto a los problemas de 16 bits int y / o flotantes, difiero a alguien que sepa más sobre los estándares Arduino.

Es aconsejable programáticamente / semánticamente que no se use "inputvoltage" para almacenar el resultado, ya que no es el inputvoltage. Esto causará confusión si empiezas a desarrollar esta prueba en algo más serio y, finalmente, olvidas cambiarlo, porque ahora de repente está completamente integrado en toda tu codificación.

    
respondido por el Asmyldof
0

Sin el código que está utilizando, es difícil saberlo, pero me atrevería a suponer que puede estar usando una referencia de voltaje de 1.1V (INTERNA) en lugar de 5V. Ese es el caso si tiene la siguiente línea en su código en algún lugar antes de tomar el valor de la temperatura:

analogReference(INTERNAL);

¿Puedes verificar si ese es el caso? Si es así, entonces el código correcto para extraer la temperatura de su sensor es este:

temp = (1.1 * analogRead(tempPin) * 100.0) / 1024;

Esa diferencia elevaría su lectura de temperatura a aproximadamente 98 ° C, lo cual es mejor pero aún un poco alto (si no está midiendo la temperatura en una olla con agua hirviendo).

Si no está utilizando la referencia analógica INTERNA de 1.1V, le sugiero que lo haga. Agregue la línea analogReference(INTERNAL); a su código (dentro de la función setup() ) y use el cálculo de temperatura que doy arriba y verifique nuevamente si la lectura de temperatura mejora. Por lo general, esto le dará la mejor resolución para la lectura de temperatura con LM35 y el ATmega328 (el microcontrolador Arduino más común) en el rango de 0 a 100 ° C.

Hay más información aquí: Arduino Playground - LM35 con mayor resolución .

    
respondido por el Ricardo
0

Tuve el mismo problema (en mi caso, la lectura fue de 446 grados).

Lo resolví cambiando los cables que se conectan a la alimentación y a tierra.

    
respondido por el Benedikt Koehler
0

Es un caso frío, pero tuve un problema similar en este momento. Lo resolví conectando a tierra el sensor de temperatura a través de uno de los pines de tierra junto al 5V en mi arduino, en lugar de usar el gnd pin al lado del pin13.

No estoy seguro de por qué funcionó, pero lo hizo. Tengo un motor paso a paso y algunos otros componentes que se ejecutan en la misma placa.

    
respondido por el Chumdungle
0

Vs y GND están invertidos, el diagrama indica Vista inferior, por lo que debe voltear los Vs y GND cuando se mira desde la parte superior del LM35. Cometí el mismo error, y creo que el mío está muerto ahora.

    
respondido por el alex

Lea otras preguntas en las etiquetas