Problème d'utilisation écran LCD.

Bonjour,
Je galère depuis plusieurs jours avec l'affichage sur LCD du programme ci dessous.
Le programme capte la température et envoi cette valeur dans une BDD.
Valeur ensuite récupérée dans php pour affichage au travers d'un navigateur.
Il fonctionne très bien depuis plusieurs semaines.

J'ai décidé toutefois d'insérer un LCD pour avoir une autre interface.
Je suis débutant, mais il faut partir du principe s'il vous plait que le câblage est apparemment bon car, utilisé dans d'autres programmes avec affichage sur LCD.

Dans le programme ci dessous, je me suis aperçu que l'affichage sur LCD est très capricieux,
(carrés blancs, caractères bizarres) dés lors ou je fais rentrer Ethernet Begin.
Sans cette fonction, affichage des messages du Void Setup OK
Avec cette fonction, affichage = carre blanc sur 16 caractères.
En retirant Ethernet begin, le programmes doit afficher un message d'erreur, cela fonction dans le serial Print, mais pas dans l'affichage sur LCD.
Pour finir, si je ne garde que la première partie dans la Loop et si je retire Ethernet Begin, affichage température fonctionne.
Merci de bien vouloir m'aider.

//*****************************************************************************************
//*                     EXPORTATION D'UNE VALEUR ARDUINO DANS UNE BDD                     *
//*                            SCRIPT DEFINITIF EN FONCTION                               *
//*****************************************************************************************

//*******Importation des bibliotheques
// Ces deux bibliothèques sont indispensables pour le shield Ethernet
#include <SPI.h>
#include <Ethernet.h>
// Importation bibliotheque pour le LCD
#include <LiquidCrystal.h> // on importe la bibliothèque

//******Déclaration des variables.
//Déclaration de la constante representant le numero pin sur laquelle est branché le capteur de température
const int RVar=0; 
//Création de la variable utilisée pour la lecture de la mesure brute du capteur.
int mesureBrute=0;
////Création de la variable utilisée pour calcul valeur en millivolts
float temperatureCelsius; 

//Création de l'objet monEcran, numero de pin connecté sur Arduino
LiquidCrystal monEcran(12,11,5,4,3,2);

//****Partie Ethernet
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0E, 0xA5, 0x7E };  // L'adresse MAC du shield
IPAddress ip(192,168,1,143);                         // L'adresse IP que prendra le shield
// L'objet qui nous servira a la communication
EthernetClient client;                              // Le serveur à interroger
EthernetServer server(80);

void setup() {
Ethernet.begin(mac, ip);
Serial.begin(57600);
Serial.println(F("*****************************************************************"));
Serial.println(F("*                       MESURE TEMPERATURE                      *"));
Serial.println(F("*                          ENVOI A BDD                          *"));
Serial.println(F("*****************************************************************"));

monEcran.begin(16,2); //on initialise la communication avec 16 colonnes et deux lignes
monEcran.clear(); // on efface l'écran
monEcran.setCursor(2,0); //Colonne 4, ligne 0
monEcran.print("Temperature"); // Ecriture du mot entre ("").
monEcran.setCursor(2,1); //Colonne 2, ligne 1
monEcran.print("Envoi a BDD"); // Ecriture du mot entre ("").
delay(1000);

monEcran.clear(); // on efface l'écran
monEcran.setCursor(2,0); //Colonne 4, ligne 0
monEcran.print("Init...."); // Ecriture du mot entre ("").
delay(1000); 
}
void loop()
{
  //********* Cette partie fonctionne et affiche la tempèrature de lors ou
  //********** Ethernet begin n'est pas "activé".
   
mesureBrute=analogRead(RVar);
temperatureCelsius = mesureBrute * (5.0 / 1023.0 * 100.0);
Serial.print("Temperature = "); Serial.println(temperatureCelsius); 
monEcran.clear(); // on efface l'écran
monEcran.setCursor(2,0); //Colonne 2, ligne 0
monEcran.print("Temperature"); // Ecriture du mot entre ("").
monEcran.setCursor(4,1); //Colonne 4, ligne 1
monEcran.print(temperatureCelsius); // Ecriture du mot entre ("").

//*********** Fin de la partie qui fonctionne sans ethernet Begin.

//******** Controle si nous somme bien connecté.
 if(client.connect("192.168.1.200",80)) // si oui alors......
  {
    client.print("GET /arduino/add.php?");
    client.print("temp1=");
    client.print(temperatureCelsius);
    client.println("HTTP/1.1");
    client.println("Host:192.168.1.200");
    client.println("Content-Type: application/x-www-form-urlencoded");
    client.println("Connection: close");
    client.println();
    client.println();
    client.stop();
    Serial.print("Temperature ecrite dans la base de donnee= ");
    Serial.println(temperatureCelsius);
  }
  else // Si non alors...
  {
    Serial.println("Probleme de connection");
monEcran.begin(16,2); //on initialise la communication avec 16 colonnes et deux lignes
monEcran.clear(); // on efface l'écran
delay(150);
monEcran.setCursor(2,0); //Colonne 4, ligne 0
monEcran.print("Probleme"); // Ecriture du mot temeprature
monEcran.setCursor(2,1); //Colonne 2, ligne 1
monEcran.print("Connexion"); // on finit d'écrire
  }
  if (client.connected())
  {
    client.stop();
  }
  delay(6000);
  }

Tu as un conflit avec des broches qui sont utilisées par Ethernet et par le LCD

Broches 11, 12 et 4

Voir ici

Bonjour Alain46, merci pour ta réponse rapide. C'est tellement évident...
Me trouve ridicule, c'est le metier qui rentre!
Pour que mon montage fonctions, le solution ne serait elle pas mon écran + adaptateur I2C ou SPI?
Voir ici
Si non as tu une solution autre à m'apporter?
Merci.

Bonjour,
Le problème de conflit est résolu avec un LCD I2C.
Merci.
(Je ne sais pas comment marquer résolu ce post)