Lcd.print non funziona

Buonasera a tutti, sono alle prime armi con Arduino e volevo chiedere un aiuto su questa cosa: ho programmato un controllo temperatura con sonda DS18B20 e ho inserito anche un relay. Il programma mi fa vedere la temperatura su un display lcd e vorrei far visualizzare quando il relay è in on o off. Ho provato a scrivere lcd.print ma non mi funziona non capisco perchè visto che le altre scritte mi appaiono correttamente.
Questo è il codice:

#include <DallasTemperature.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>

// The cable of the Dallas sensor on Arduino pin 7
#define ONE_WIRE_BUS 7

// Sets a oneWire instance to communicate with any OneWire device (not just Maxim / Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Let's pass our oneWire source to the Dallas sensor.
DallasTemperature sensors(&oneWire);

int relay = 10; // pin for relay - active = high;
LiquidCrystal lcd(12,11,5,4,3,2);
 
void setup(void)
{
  // Initialize serial communication
  Serial.begin(9600);
  
  pinMode (relay, OUTPUT); // relay pin set to output
  lcd.begin(16, 2);
 
  lcd.setCursor(0,0);
  lcd.print("  DS18B20 LCD  ");
  lcd.setCursor(0,1);
  lcd.print("Giuseppe");
  // Let's start the library
  sensors.begin();
}
void loop(void)
{
   // call the sensors.requestTemperatures () function to show global temperature
   // request to all devices on the bus

  lcd.clear(); 
  lcd.setCursor(0,0);
  lcd.print("T.V.:");
  lcd.setCursor(8,0);
  float temperature = sensors.getTempCByIndex(0);
  lcd.print(temperature);
  lcd.setCursor(0,1);
  lcd.print("T.Rich. ");
  lcd.setCursor(7,1);
  float temprich = 26;
  lcd.print(temprich);
  Serial.print("Richiesta Temperatura...");
  sensors.requestTemperatures(); // send the value request
  Serial.println("FATTO");
  
  if(sensors.getTempCByIndex(0) >= 26){ 
    digitalWrite (relay, HIGH); // energize the relay;lcd.print(” RELAY ON “);
    Serial.print("Il Relè è chiuso!");
  }
  
  if(sensors.getTempCByIndex(0) <= 25){
    digitalWrite (relay, LOW); // relay is off
    Serial.print("Il Relè è aperto!");
  }
  
  Serial.print("La temperatura per il Device1 (index 0) è: ");  // show the temperature on the serial screen
  Serial.println(sensors.getTempCByIndex(0));
}

Grazie in anticipo
Giuseppe

Buongiorno,

prima di tutto ti segnalo che, nella sezione in lingua Inglese, si può scrivere SOLO in Inglese ... quindi, per favore, la prossima volta presta più attenzione in quale sezione metti i tuoi post; questa volta esso è stato spostato, da un moderatore della sezione di lingua Inglese, nella sezione di lingua Italiana ... la prossima volta potrebbe venire direttamente eliminato, dopo di che ...

... essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (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 tutto il succitato REGOLAMENTO ...

... infine, in conformità al suddetto regolamento, punto 7, cortesemente edita il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone a forma di piccola matita :pencil2: che si trova in basso del tuo post), seleziona la parte di codice e premi l'icona </> nella barra degli strumenti per contrassegnarla come codice.
Inoltre, così com'è non è molto leggibile ... assicurati di averlo correttamente indentato nell'IDE prima di inserirlo (questo lo si fa premendo ctrlT su un PC o cmd T su un Mac, sempre all'interno del IDE). Grazie.

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread e sistemato il codice come da regolamento, nel rispetto del citato regolamento nessuno ti risponderà (eventuali risposte verrebbero cancellate), quindi ti consiglio di fare il tutto al più presto. :wink:

Facendo la formattazione (FALLA!), rileggi anche bene il codice che hai scritto! :wink: