sd + lcd problema

Buongiorno ragazzi,
mi sono da poco avvicinato al mondo di arduino e premetto le mie conoscenze di programmazione sono alquanto scarse.
sto cercando di familiarizzare un po con la piattaforma e per fare questo sto realizzando un log di un sensore dht11 su scheda ssd, comprensivo di lcd con tastierino.
i miei problemi nascono nel momento in cui cerco di accedere alla scheda sd:
come esegue SD.begin lo schermo diventa nero per un attimo e non riesce mai ad effettuare la lettura della scheda.

hardware utilizzato:
arduino uno
ITEAD - Stackable SD card shield
DFRobot LCD keypad shield

#include <dht11.h>
#include <LiquidCrystal.h>
#include <SD.h>
LiquidCrystal lcd(8,9,4,5,6,7);
char buffer[50];
char lcdBuffer[16];
int h;
int t;

dht11 DHT;
#define DHT11_PIN 2
#define CS 10
void setup(){
  //Serial.begin(57600);
  pinMode(CS, OUTPUT);
  lcd.begin(16, 2); 
  lcd.clear(); 
  lcd.setCursor(0,0);
  lcd.print("Setup");
  delay(1000);          

if (!SD.begin(CS)) {
      Serial.println("SD err");
      lcd.print("... SD err");
      lcd.clear();
      delay( 2000 );
      return;
    }
  Serial.println("SD OK");
  lcd.print("... SD OK");

  delay( 2000 );

 
  lcd.clear();
  lcd.print(DHT11LIB_VERSION);
  delay(1000);
}
void loop(){
  temp();
  lcd.clear(); 
  lcd.setCursor(0,0);
  lcd.print("Umidita      ");
  lcd.print (h);
  lcd.setCursor(0,1);
  lcd.print("Temperatura  ");
  lcd.print(t);
  delay(1000);
  
}  
void temp(){
  int chk;
  lcd.clear();
  DHT.humidity=0;
  DHT.temperature=0;
  chk = DHT.read(DHT11_PIN);    
  switch (chk){
    case DHTLIB_OK:  
                //lcd.clear();
                //lcd.print("Test sensor OK"); 
                //delay(1000);
                break;
    case DHTLIB_ERROR_CHECKSUM: 
                lcd.clear();
                lcd.print("Checksum error"); 
                delay(1000);
                break;
    case DHTLIB_ERROR_TIMEOUT: 
                lcd.clear();
                lcd.print("Time out error"); 
                delay(1000);
                break;
    default: 
                lcd.clear();
                lcd.print("Unknown error"); 
                delay(1000);
                break;
  }

    h=DHT.humidity;
    t=DHT.temperature;
    
}

dove sto sbagliando? non ne riesco ad uscirne fuori…

Le shield non sono compatibili perché usano entrambe il pin 10.
La LCD shield usa il pin 10 per la gestione della retroilluminazione.

grazie per la info, risolto spostando il pin della shield sd