Gestione e stampa variabili su schermo lcd

Salve a tutti, il mio problema consiste nel gestire due variabili(una che ha come minimo 2 e massimo 40; mentre l'altra come minimo 10 e massimo 99), ognuna delle quale ha adibiti due pulsanti (uno per incrementare e l'altro per decrementare), e nella stampa di queste variabili su uno schermo lcd. Infatti sullo schermo stampa in alternato 2 e 3 per la prima variabile, e 10 e 11 per la seconda. Penso che sia un problema di programmazione; potete aiutarmi?

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int setX=2;
int setY=10;

const int aumentoX=7;
const int decrementoX=6;
const int aumentoYe=9;
const int decrementoY=8;

void setup() {

  pinMode(aumentoX,INPUT);
  pinMode(decrementoX,INPUT);
  pinMode(aumentoY,INPUT);
  pinMode(decrementoY,INPUT);

  lcd.begin(16, 2);
  lcd.setCursor(0,0);
  lcd.print("X: ");
  lcd.setCursor(0,1);
  lcd.print("Y: ");
}

void loop() {

  int XSu=digitalRead(aumentoX);

  if(XSu==HIGH&&setX<40){
     setX++;
     lcd.setCursor(8,0);
    lcd.print(setX);
    delay(500);
  }
  int XSotto=digitalRead(decrementoX);

  if(XSotto==HIGH&&setX>2){
     setX--;
     lcd.setCursor(8,0);
    lcd.print(setX);
    delay(500);
  }
  int YSu=digitalRead(aumentoY);

  if(YSu==HIGH&&setY<99){
     setY++;
      lcd.setCursor(8,1);
    lcd.print(setY);
    delay(500);
  }
  int YSotto=digitalRead(decrementoY);

  if(YSotto==HIGH&&setY>10){
     setY--;
     lcd.setCursor(8,1);
     lcd.print(setY);
     delay(500);
  }
}

Ciao!

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento

occhio, hai scritto nella sezione sbagliata