Terrmostato con Arduino con sonda ds18b20 non rileva la temperatura

Termostato con Arduino con sonda ds18b20,display I2C,relè non rileva la temperatura

Questo è lo sketch:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

int reading = 0;
int sensorPin = A0;
int relay =7;
void setup() {
 
 lcd.begin(16, 2);
 pinMode(relay,OUTPUT);
}

void loop() {
 reading = analogRead(sensorPin);
 int celsius = reading/2;
 lcd.setCursor(0, 0);
 lcd.print("Temperatura: "); 
 lcd.setCursor(0,1);
 lcd.print(celsius, DEC);
 lcd.print((char)223);
 lcd.print("C");
 
 if (celsius >28) { 
   //modificare la temperatura desiderata, 
   //inserire > se attivo superiore a 28C°
   //e < se attivo inferiore a 28C°
   
   digitalWrite(7,HIGH);
    lcd.print("    ON");
 } else {
   digitalWrite(7,LOW);
   lcd.print("   OFF");
 }
 delay(500);
 lcd.clear();
}

Nello sketch è presente il sensore LM35 che non rileva lo stesso temperatura bensì la rileva ma da valori altissimi per favore nello sketch sostituite LM35 con la sonda ds18b20

Questo termostato a me serve che appena arriva a la temperatura prescelta scatta il relè

Negli allegati è presente lo schema.

Grazie :slight_smile:
Negli allegati è presente

arduino-termostato-rel-lm35.png

arduino_termostato_rel__lm35.ino (993 Bytes)

Prima che passi un mod a sgridarti ... dovresti cortesemente presentarti nell'apposita sezione del forum, e poi secondo il regolamento, editare il post chiudendo la parte del programma negli appositi tag code ... (perche' altrimenti il forum puo trasformare alcune sequenze di caratteri in altre o in faccine, rendendolo dificile da comprendere)

Etemenanki:
Prima che passi un mod a sgridarti …

Eccomi … :smiling_imp:

>MatteoGabrieleFiorentino: essendo il tuo primo post, nel rispetto del regolamento (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione … possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO

… poi, in conformità al suddetto regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More → Modify che si trova in basso a destra del tuo post) e racchiudere il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra). Grazie,

Guglielmo

Dopo che ti sei presentato e hai messo il codice dentro i tag CODE (con l'editor avanzato) ti diamo la soluzione, che è banale. Tu hai copiato il codice da un progetto diverso.

>MatteoGabrieleFiorentino: in conformità al REGOLAMENTO, punto 13, il cross-posting è proibito (anche tra lingue diverse) per cui, il tuo post con stesso argomento in area Software è stato cancellato e, per il futuro, ti prego di fare più attenzione al rispetto del suddetto regolamento. Grazie.

Guglielmo

Cambia la formula per il calcolo della temperatura dell'LM35.

  reading = analogRead(sensorPin);
  int celsius = (5.0 * reading * 100.0) / 1024;

Il DS18B20 è un sensore digitale non analogico, non puoi leggerlo con analogRead.

Come posso modificarlo ?
Grazie

--> DS18B20 temperatura lcd - Mauro Alfieri Elettronica Domotica Robotica
--> Sensore DS18B20 - Utilizzo con Arduino

Non ho capito cosa devo sostituire
Grazie

Prova il codice delle 2 pagine web, ma devi cambiare la parte del display LCD.
Poi integri la parte del sensore nel tuo codice.

Il codice di questa pagina http://www.mauroalfieri.it/elettronica/ds18b20-temperatura-lcd.html funziona però posso visualizzare i valori solo da monitor seriale come faccio ad aggiungere il display I2C e il relè
il relè deve scattare quando arriva alle temperatura scelta.

Grazie

>MatteoGabrieleFiorentino: ... ti prego di considerare che, purtroppo qui NON funziona così ... :confused:

... qui nessuno scrive software per conto terzi (o realizza schemi su ordinazione), ma si aiuta chi viene qui a correggere/ottimizzare il software che lui scrive (o gli schemi che lui realizza) :slight_smile:

Ora, dato che mi sembra che ha te manchino proprio le BASI ::slight_smile: e stai solo facendo dei copia/incolla, ti suggersico di cominciare con lo studiare QUESTO proseguire con QUESTO e/o acquistare qualche buon libro (es. QUESTO) ... verdai che poi sarai più produttivo e capirai come fare molte cose.

Guglielmo