lm 35 + schermo i2c

buonasera a tutti, avrei bisogno del vostro aiuto.
ho realizzato un progetto con arduino 1, ho inserito due lm35 e due sensori di umidità dht11. il programma funziona come un termostato, lo allego nei tag. quando vado a visualizzare le temperature sullo schermo mi da dei valori "impossibili" considerando che mi trovo nella mia stanza e la temperatura si trova intorno ai 20°C. allego foto dello schermo con le temperature rilevate. non so se è possibile inserire qualche resistenza o non so cosa al fine di avere un valore accettabile di temperatura.L'umidità va bene.

grazie a tutti per l'aiuto

#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <dht11.h>
dht11 DHT1;
dht11 DHT2;
#define DHT1_PIN 10
#define DHT2_PIN 8

 
 LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
 
 float temp1;
int temp1Pin = 0;
float temp2;
int temp2Pin = 1;
const int ledPin = 6;
const int ledPin1 = 5;

void setup(){
 lcd.begin(20,4);
 lcd.backlight();
lcd.clear();
  
  pinMode(ledPin, OUTPUT);
  pinMode(ledPin1, OUTPUT);

}
 
void loop(){
 int ctrl;
 
ctrl = DHT1.read(DHT1_PIN);
ctrl = DHT2.read(DHT2_PIN);

lcd.setCursor(0,2);
  lcd.print("Umid.SONDAin ");
  lcd.print(DHT1.humidity,1);
 lcd.print("%");
 
 lcd.setCursor(0,3);
   lcd.print("Umid.SONDAes ");
 lcd.print(DHT2.humidity,1);
 lcd.print("%");

temp1 = analogRead(temp1Pin);
  temp1 = (5.0 * temp1 * 100.0)/1024;
   lcd.setCursor(0,0);
  lcd.print("Temp.SONDAin ");
  lcd.print(temp1);
   lcd.setCursor(19,0);
   lcd.print("C");
  
  temp2 = analogRead(temp2Pin);
  temp2 = (5.0 * temp2 * 100.0)/1024;
   lcd.setCursor(0,1);
  lcd.print("Temp.SONDAes ");
   lcd.print(temp2);
   lcd.setCursor(19,1);
   lcd.print("C");
  
  
  if (temp1 > 27) 
   digitalWrite(ledPin,HIGH);
    if (temp1 < 25) 
   digitalWrite(ledPin,LOW);
    if (temp1 > 27) 
   digitalWrite(ledPin1,HIGH);
    if (temp1 < 25) 
   digitalWrite(ledPin1,LOW);


  delay(1000);
}

prova ad usare 2 pin analogici (A1 e A2).

poi QUI dicono di mettere nel setup() questa istruzione:

analogReference(INTERNAL);

Per quanto non molto preciso, il DHT11 dispone anche di misura della temperatura.

Perché non usi quella al posto dei due LM35?

e il programma per leggere direttamente con i dht11 come si fa? :frowning:

  lcd.setCursor(0, 1);
  lcd.print("Umid.SONDAin ");
  lcd.print(DHT1.humidity);
  lcd.print("%");

  lcd.setCursor(0,2);
  lcd.print("Temp SONDAin ");
  lcd.print(DHT1.temperature);
  lcd.print(" C");

come hai collegato l'lm35?