LCD 20x4 caratteri non visualizzati

nid69ita:
Se posti lo sketch che usi, magari possiamo dirti qualcosa.
Non è che hai nel setup() la famosa while() sulla seriale che serve ... solo per la Leonardo ?

No, non ho nessuna while(), il display l'ho testato in due progetti diversi e ho sempre lo stesso problema.. fino a quando non apro la seriale il display resta vuoto...

Inserisco lo sketch anche se per me non centra nulla...

/* Questo progetto utilizza due Igrometri e un sensore DHT11 per gestire una Serra Automatica 
*/

int lettura = 0 ; // Pin analogico a cui è collegato il sensore 1
int lettura1 = A1 ; // sensore 2
int pompa = 9 ; //Pin a cui è collegato i rele' per attivare al pompa 
int hc12 = 11 ;
int sensorValue = 1008; // Valore del sensore 1 immerso in acqua
int sensorValue1 = 1014; // Valore del sensore 2 immerso in acqua
int sensPower1 = 5 ; // Pin Vcc IGROMETRO 1
int sensPower2 = 6 ; // Pin Vcc IGROMETRO 2

#include <HygrometerSensor.h>
#include <Adafruit_Sensor.h>

//DHT11 Sensor:
#include "DHT.h"
#define DHTPIN 12     // Sensore collegato al PIN 12
#define DHTTYPE DHT11   // DHT 11
DHT dht(DHTPIN, DHTTYPE);

//I2C LCD:
#include <Wire.h> // Libreria WIRE
#include <LiquidCrystal_I2C.h> // Libreria LCD I2C

// LCD I2C address
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); 


void setup()
{
  pinMode(sensPower1, OUTPUT); // Uscita Vcc Igrometro 1
  pinMode(sensPower2, OUTPUT); // Uscita Vcc Igrometro 2

   pinMode(pompa,OUTPUT); // Uscita relè pompa
    digitalWrite(pompa, HIGH); // Stato relè spento

    pinMode(hc12,OUTPUT);
    digitalWrite(hc12,HIGH); // HC-12 Trasmittente

// PIN 10 al relè - IN2
  pinMode(10, OUTPUT); // Uscita relè sensore DHT11
  digitalWrite(10,HIGH);

//I2C LCD
Serial.begin(9600);
  lcd.begin(20,4);
  Serial.println("Serra Automatica");
  
// Avvio sensore DHT11  
  dht.begin();
}

void loop(){
  
    // Accendo il sensore ON
    digitalWrite(sensPower1, HIGH);
    digitalWrite(sensPower2, HIGH); 
    delay(30); // Pausa calibrazione 
    
// Igrometro 1  
lettura = analogRead(A0);
sensorValue = map (lettura, 1008, 258, 0, 100); // converto il valore analogico in percentuale
Serial.print("Umidità terra 1 : ");
Serial.print(sensorValue);
Serial.println ("%"); //Stampa a schermo il valore  
    
// Igrometro 2    
lettura1 = analogRead(A1);
sensorValue1 = map (lettura1, 1014, 228, 0, 100); // converto il valore analogico in percentuale
Serial.print("Umidità terra 2 : ");
Serial.print(sensorValue1);
Serial.println ("%"); //Stampa a schermo il valore    
    
    if ((lettura >= 800) && (lettura1 >= 840)) 
     {
    digitalWrite (pompa,HIGH); //... attiva la pompa 
    digitalWrite (hc12,HIGH); // invio dati
        } else  {
  digitalWrite (pompa,LOW); //.... spegne la pompa
  digitalWrite (hc12,LOW); // nessun dato
        } 
    delay(10000);
    // Spengo il sensore
    digitalWrite(sensPower1, LOW);
    digitalWrite(sensPower2, LOW);
    delay(360000); // Attesa sensore OFF 60 minuti
    
  
// Lettura umidità e temperatura del sensore DHT11n
int h = dht.readHumidity();
int t = dht.readTemperature();

// Misura la temperatura e se maggiore di ... gradi attiva relè per accendere la ventola
if (t >= 25 )
   digitalWrite (10, LOW); // Attiva Relè 2
else
   digitalWrite (10, HIGH); // Spegni Relè 2
delay (2000);

  Serial.print("Temp: ");
  Serial.print(t);
  Serial.print("C, Umid: ");
  Serial.print(h);
  Serial.println("%");


// impostare cursore sulla prima riga:
lcd.setCursor(0, 0);
lcd.print("Temperatura: ");
lcd.print(t);
lcd.print("C");
  
// imposta cursore sulla seconda riga:
lcd.setCursor(0,1);
lcd.print("Umidita' Aria: ");
lcd.print(h);
lcd.print("%");

// imposta il cursore sulla terza riga:
lcd.setCursor(0,2);
lcd.print("Umid..Terra 1: ");
lcd.print(sensorValue);
lcd.print("%");
    

lcd.setCursor(0,3);
lcd.print("Umid..Terra 2: ");
lcd.print(sensorValue1);
lcd.print("%");
  
}