problema calcolo temperatura con lm35

dopo 1000 prove di codici sono riuscito a far funzionare il tutto con il DHT11 con il seguente codice

#include <LiquidCrystal.h> //Libreria per pilotare il display LCD
#include <dht11.h>
dht11 DHT11;
#define DHT11PIN 8
//#define DHTTYPE DHT11
//DHT11 dht11(DHTPIN, DHTTYPE);

LiquidCrystal lcd(7, 6, 5, 4, 3, 2); //Inizializzazione della libreria con i pin del display LCD
const int ledPin = 12;

void setup() {
  lcd.begin(16, 2); //Impostazione del numero di colonne e righe del display LCD
  lcd.setCursor(2, 0); //Sposto il cursore sulla prima riga (riga 0) e sulla prima colonna
  lcd.print("Temperatura:"); //Stampo il messaggio 'Temperatura:' sulla prima riga
pinMode(12, OUTPUT);

digitalWrite(ledPin, HIGH);
  lcd.setCursor(13, 1);
  lcd.print("OFF");
}

  
void loop() {

  DHT11.read(DHT11PIN);
  lcd.setCursor(5, 1); //Sposto il cursore sulla prima colonna e sulla seconda riga
  lcd.print((float)(DHT11.temperature), 0); //Stampo sul display LCD la temperatura con ",1" imposto il numero di decimali dopo la virgola
  lcd.print(" C"); //Stampo uno spazio e il carattere 'C' sul display


  if((float)(DHT11.temperature)>30)
  
 {digitalWrite(ledPin, HIGH);
  lcd.setCursor(13, 1);
  lcd.print("OFF");}

else if((float)(DHT11.temperature)<25)

{digitalWrite(ledPin, LOW);
 lcd.setCursor(13, 1);
 lcd.print(" ON");}

delay(1000);
}

certo mi piacerebbe che tutto funzionasse con l’lm35 perchè avrei bisogno di superare i 50 in alcuni casi ma per ora mi va bene così…
l’unica cosa strana è che il modulo relè si attiva quando il pin è in stato LOW e non riesco a capire perchè…

...il modulo relè si attiva quando il pin è in stato LOW...

Del tutto normale.

cyberhs: Prova a scrivere:

temp = analogRead(pin_temp) * 5.0 / 1023; // tensione in volt se Aref = 5V temp = analogRead(pin_temp) * 1.1 / 1023; // tensione in volt se Aref = 1.1V

temp *= 100; // 10mV/°C

ho provato con entrambe le righe di codice ed ho 3° di differenza (sempre in più).

inoltre quando scatta il relè la luminosità dell'lcd cala notevolmente e dopo pochi secondi la temperatura inizia a dare di matto con valori assurdi tipo 66°. Tutto questo con il DHT11 non succede

C'è qualche problema sull'alimentazione. Ti suggerisco di programmare la scheda, poi staccare l'USB, poi alimentare il tutto da un alimentatore esterno.

Se così cambia qualcosa (in meglio), allora è l'alimentazione da USB che crea problemi. Se invece rimane tutto uguale, potrebbe essere il regolatore della scheda ad essere difettoso. Non porterà chissà che corrente, ma non è normale che si "sieda" per un relè e un LCD...

Occhio anche ai collegamenti, a volte basta un filo che non tocca bene per generare forti cadute di tensione.