Schermo lcd.

Salve, Guardate questo codice:

void setup()
{
 Serial.begin(9600); 
 pinMode(PIN_BOTTONE, INPUT_PULLUP);
 pinMode(7, INPUT_PULLUP);

 lcd.clear();
 while(digitalRead(7)==1)
    {
      
      lcd.setCursor(0,0);
      lcd.print("Setta il tempo:");
      lcd.setCursor(0,1);
      lcd.print("Minuti:");
      lcd.setCursor(10,1);
      valore=map( analogRead(0), 0,1023,10,99);
      lcd.print(valore);
      Serial.println(valore);
      min=map( analogRead(0), 0,1023,10,99);
      
 }
    

 sec = sec + 60 * min;
 lcd.begin (16,2);
 pinMode(buzzer,OUTPUT);


}

Nella parte dove c'è il while non si vede sullo schermo come dovrebbe fare, nel monitor seriale invece si vede e funziona. Sapete perchè?

Ciao,
mi sembra di vedere che l’istruzione lcd.begin (16,2); sia dopo la lcd.print(). Questo impedisce la corretta inizializzazione del LCD e dovrebbe essere il motivo per cui sul LCD non vedi nulla.
Questo è un esempio di uso corretto di LCD dal tutorial di Arduino:

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // Turn off the display:
  lcd.noDisplay();
  delay(500);
  // Turn on the display:
  lcd.display();
  delay(500);
}