Aggiornamento incoerente della varibile scritta nell'LCD

fabpolli:
Sfasamento è int non unsigned int

Ah si scusa.
Analogamente a quanto detto prima, se devi visualizzare un valore comprensivo di segno tra -15 e 15 devi prevedere sempre 3 caratteri, non fare solo la print().
Per farla "a mano" in modo semplice una cosa del genere quindi:

void printSfasamento(int s) {
  if ( s< 0 ) {
    schermo.print("-");
    s*= -1; // lo riporta positivo
  } else {
    schermo.print(" ");
  }
  if ( s< 10 )
    schermo.print("0"); // o " "
  schermo.print(s);
}

Anche il suggerimento di fab polli è valido ovviamente, ma occhio che la stringa "Spostamento: " è di 13 caratteri, su un LCD da 16 non puoi metterne altri 7... :wink:
Inoltre io lo allineerei a destra, ossia farei così:

  char msg[17];
  sprintf(msg, "[Spostamento:%3d]", Sfasamento);