Mi spiegate questo codice?

#include <LiquidCrystal.h> //Includo la libreria per gestire lcd


LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Creo l'oggetto lcd e tra parentesi i nomi dei pin utilizzati
int calcoloPosizione(String m, int caratTot){// Funzione che mi calcola 
//la posizione dove stampare la stringa su lcd, riceve la strina e i numeri colonne dell'lcd
  
  int posizione;
  int lunghezza = m.length(); //lunghezza è uguale ai numeri caratteri della stringa
  posizione = caratTot - lunghezza; //posizione è uguale a numero colonne lcd, meno caratteri stringa diviso due
  posizione = posizione / 2;
  return posizione; //restituisco il calcolo
}

void setup() {
  lcd.begin(16, 2); //inizializzo lcd, con numero colonne e numero righe
 
}

void loop() {
  String m2 = "hello";
  int colonne = 16;
  int position = calcoloPosizione(m2, colonne); //calcolo dove stampare hello
lcd.setCursor(position, 0); //mi posizione a colonne, e prima riga
  lcd.print (m2);//stampo su lcd
  delay(5000);//pausa di 5 secondi
  String m3 = "hello, world"; //seconda stringa
 // QUI DOVREBBE CALCOLARE LA NUOVA POSIZIONE E MANCA UNA RIGA
  lcd.setCursor (position,0); // Mi posiziono
  lcd.print(m3);// stampo la seconda stringa

}