Go Down

Topic: Sensor de Temperatura TMP36gz (Read 127 times) previous topic - next topic

dircasa

Buen dia, recientemente estabamos realizando una práctica con la placa arduino uno y el sensor de temperatura TMP36gz, a continuación les muestro el codigo utilizado de 1era vez...

int SENSOR = A0; // A0
float lectura = 0;
float temp = 0;

void setup() {
  Serial.begin(9600);                                                                                                                                                                                                                                                                                         
}
void loop(){
  lectura = analogRead(SENSOR);
 // lectura = map(lectura,0,1024,0,307);
  temp =(5 * (lectura * 100)) / 1024 ;
  Serial.print("Lectura = ");
  Serial.print(lectura);
  Serial.print("   Temperatura = ");
    Serial.print(temp);
      Serial.println(" C");
  delay(1000);
}
 

Hasta aquí todo iba muy bien, al abrir el monitor serial, notamos que las lecturas de temperatura eran alrededor de 73,74,75 grados celcius, pero en nuestra sala, la temperaratura era de 23, grados celcius.

Nuestro primer error fue copiar este código de un sensor que solo tenia rango de temperatura de 0 a 140 grados celcius.   Y nuestro sensor, después de revisar la hoja técnica, el rango de temperatura es de -40 a 150 grados celcius.

Por lo que nuestra escala de lectura tubo un desfase de entre 40 y 5o grados. Esto por que los datos que nos devuelve nuestra placa arduino es de 0 a 1024,  no consideramos numeros negativos.  Asi que le añadimos a nuestra formula de temperatura, la resta de los valores negativos, es decir a la temperatura le restamos 50 grados, y fue a si como pudimos tener una lectura real, acorde a nuestro entorno.  Y el codigo quedo de la siguiente manera...

int SENSOR = A0; // A0
float lectura = 0;
float temp = 0;

void setup() {
  Serial.begin(9600);                                                                                                                                                                                                                                                                                         
}
void loop(){
  lectura = analogRead(SENSOR);
 // lectura = map(lectura,0,1024,0,307);
  temp = ( (5 * (lectura * 100)) / 1024) - 50;
  Serial.print("Lectura = ");
  Serial.print(lectura);
  Serial.print("   Temperatura = ");
    Serial.print(temp);
      Serial.println(" C");
  delay(1000);
}
                 

Gracias!!!                                                                                                                                                                                                                                                 

Go Up