Erreur dans la compilation

Bonjour à tous,
étant novice dans la programmation, j'ai tenté de téléverser un code dans mon Arduino nano mais j'ai un message d'erreur qui apparaît:

''Erreur lors de la compilation''

Suivi du message suivant:

C:\Users\Alex\AppData\Local\Temp\arduino_362c85b311f0ff4a2604c7544bd5fbfe\sketch_nov06a.ino:7:31: fatal error: LiquidCrystal_I2C.h: No such file or directory

#include <LiquidCrystal_I2C.h>

^

compilation terminated.

exit status 1
Erreur lors de la compilation.

Je vous mets le code que j'ai voulu téléverser si vous voyez d'où vient le souci....

/

//LCD config
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3f,16,2);// lcd adresse

#include <Servo.h>
#include <Keypad.h>

//Variables
int mot_min = 90;   //min servo angle  (set yours)
int mot_max = 180; //Max servo angle   (set yours)
int character = 0;
int activated =0;
char Str[16] = {' ', ' ', ' ', ' ', ' ', ' ', '-', '*', '*', '*', ' ', ' ', ' ', ' ', ' ', ' '};  

//Pins
Servo myservo;
int buzzer=11;     //pin for the buzzer beep
int external = 12; //pin to inside open
int internal = 13; //pin to inside close

//Keypad config
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
  {'1','4','7','*'},
  {'2','5','8','0'},
  {'3','6','9','#'},
  {'A','B','C','D'}
};
byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {9, 8, 7, 6}; //connect to the column pinouts of the keypad

//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); 

void setup(){
  myservo.attach(10); //attach the servo to pin D10
  pinMode(buzzer,OUTPUT); 
  pinMode(external,INPUT);
  pinMode(internal,INPUT); 
  //Init the screen and print the first text
  lcd.init();
  lcd.backlight();
  lcd.clear();
  lcd.print("entrez code + *");//premiere affichage de l'ecran
  lcd.setCursor(0,1);
  lcd.print("      -***     ");//premiere affichage de l'ecran
  //put the servo in the close position first
  myservo.write(mot_min);  
  
}
  
void loop(){
///////////////EMERGENCY OPEN/CLOSE/////////
  if (digitalRead(external))
  {
     myservo.write(mot_max);
      lcd.clear();
      lcd.setCursor(2,0);
      lcd.print("INSIDE  OPEN");
      activated = 2;
      analogWrite(buzzer,240);
      delay(250);
      analogWrite(buzzer,200);
      delay(250);
      analogWrite(buzzer,180);
      delay(250);
      analogWrite(buzzer,250);
      delay(250);
      analogWrite(buzzer,LOW);
     
      
      lcd.clear();    
      lcd.setCursor(4,0);
      lcd.print("bienvenue");//affichage apres code bon
      
      lcd.setCursor(2,1);
      lcd.print("geocacheur");//affichage apres code bon
      

      lcd.clear();    
      lcd.setCursor(3,0);
      lcd.print("porte ouverte");//affichage apres code bon
      lcd.setCursor(2,1);
      lcd.print("b pour fermer");//pour dire d'appuyer sur la touche b pour refermer la porte
      delay(500);
    
  }

  if (digitalRead(internal))
  {
    myservo.write(mot_min);
    activated = 0;
    character=0;
    Str[6]= '-';
    Str[7]= '*'; 
    Str[8]= '*'; 
    Str[9]= '*';
    Str[10]= ' ';   
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("entrez code");    
    lcd.setCursor(0,1);
    lcd.print(Str);
  }
    
///////////////KEYPAD OPEN/CLOSE////////////  
  char customKey = customKeypad.getKey(); //this function reads the presed key
  
  if (customKey){

    if (character ==0)
    {  
    Serial.println(customKey);
    Str[6]= customKey;   
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("entrez code");    
    lcd.setCursor(0,1);
    lcd.print(Str);
   
    }

    if (character ==1)
    {  
    Serial.println(customKey);
    Str[7]= customKey;   
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("entrez code");    
    lcd.setCursor(0,1);
    lcd.print(Str);
   
    }

    if (character ==2)
    {  
    Serial.println(customKey);
    Str[8]= customKey;   
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("entrez code");    
    lcd.setCursor(0,1);
    lcd.print(Str);
   
    }

    if (character ==3)
    {  
    Serial.println(customKey);
    Str[9]= customKey;   
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("entrez code");    
    lcd.setCursor(0,1);
    lcd.print(Str);
   
    }

    if (character ==4)
    {  
    Serial.println(customKey);
    Str[10]= customKey;
    activated=1;
   
    }
    character=character+1;
  }

  if (activated == 1)
    {
/*Change your password below!!! 
Change each of Str[6], Str[7], Str[8], Str[9]*/

    if(Str[10]='A' && character==5 && Str[6]=='3' && Str[7]=='0' && Str[8]=='0' && Str[9]=='7' )//code enregistrer a remplacer par le votre (3007)
    {
      myservo.write(mot_max);
      lcd.clear();
      lcd.setCursor(4,0);
      lcd.print("bravo");
      activated = 2;
      analogWrite(buzzer,240);
      delay(250);
      analogWrite(buzzer,200);
      delay(250);
      analogWrite(buzzer,180);
      delay(250);
      analogWrite(buzzer,250);
      delay(250);
      analogWrite(buzzer,LOW);
      delay(1000);
      
      lcd.clear();    
      lcd.setCursor(4,0);
      lcd.print("bienvenue");
      delay(500);
      lcd.setCursor(2,1);
      lcd.print("geocacheur");
      delay(1000);

      lcd.clear();    
      lcd.setCursor(1,0);
      lcd.print("porte ouverte");
      lcd.setCursor(1,1);
      lcd.print("B pour refermer");
      
    }
    else
    {
      lcd.clear();    
      lcd.setCursor(1,0);
      lcd.print("code faux");
      lcd.setCursor(3,1);
      lcd.print("reessayez");
      analogWrite(buzzer,150);
      delay(3000);
      analogWrite(buzzer,LOW);
      character=0;
      Str[6]= '-';
      Str[7]= '*'; 
      Str[8]= '*'; 
      Str[9]= '*';
      Str[10]= ' ';
      activated = 0;
      lcd.clear();    
      lcd.setCursor(4,0);
      lcd.print("entrez code");
      lcd.setCursor(0,1);
      lcd.print(Str);   
    }
  }
  if (activated == 2)
    {
    if(customKey == 'B' )
    {
      myservo.write(mot_min);
      activated = 0;
      character=0;
      Str[6]= '-';
      Str[7]= '*'; 
      Str[8]= '*'; 
      Str[9]= '*';
      Str[10]= ' ';   
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("entrez code");    
      lcd.setCursor(0,1);
      lcd.print(Str);
     
    }
  }  
}

Merci à tous ceux qui pourront m'aider!

le / a la ligne 1 est un erreur de copie ?

le croquis vient d'internet ?
mauvaise librairie liquidcrystal/ liquidcrystal i2c
sous ide 1.6.4 d'autres erreurs compilation apparaissent, croquis datant de ide 1.0 ou meme inferieure avec biblio liquidcrystal_i2C spécifique

toujours préciser : sous quelle version ide vous etes, le croquis est votre propre chef ou copié collé du net, tester les exemples des lib installées et utilisées
arduino c'est cool mais c'est pas magique......

bonjour,
l'erreur est pourtant claire dans le texte
LiquidCrystal_I2C.h: No such file or directory

la lib est elle installée?
si oui, ou?

infobarquee:
bonjour,
l'erreur est pourtant claire dans le texte
LiquidCrystal_I2C.h: No such file or directory

la lib est elle installée?
si oui, ou?

LiquidCrystal_I2C.h: est dans un sous répertoire du dossier liquidcrystal installé par défaut depuis
l'ide 1.5.x
lcd.init(); est une fonction qui faisait partie d une lib "obsolete"
il y a longtemps que c'est lcd.begin(16,2);

LiquidCrystal_I2C.h: est dans un sous répertoire du dossier liquidcrystal installé par défaut depuis
l'ide 1.5.x

j'ai beau chercher je ne la trouve pas dans un sous répertoire, si je ne la mets pas moi même, ca ne compile pas.

là, ca compile, mais pas testé si ca fonctionne

//LCD config
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3f,16,2);// lcd adresse

#include <Servo.h>
#include <Keypad.h>

//Variables
int mot_min = 90;   //min servo angle  (set yours)
int mot_max = 180; //Max servo angle   (set yours)
int character = 0;
int activated =0;
char Str[16] = {' ', ' ', ' ', ' ', ' ', ' ', '-', '*', '*', '*', ' ', ' ', ' ', ' ', ' ', ' '}; 

//Pins
Servo myservo;
int buzzer=11;     //pin for the buzzer beep
int external = 12; //pin to inside open
int internal = 13; //pin to inside close

//Keypad config
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
  {'1','4','7','*'},
  {'2','5','8','0'},
  {'3','6','9','#'},
  {'A','B','C','D'}
};
byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {9, 8, 7, 6}; //connect to the column pinouts of the keypad

//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

void setup(){
  myservo.attach(10); //attach the servo to pin D10
  pinMode(buzzer,OUTPUT);
  pinMode(external,INPUT);
  pinMode(internal,INPUT);
  //Init the screen and print the first text
  lcd.init();
  lcd.backlight();
  lcd.clear();
  lcd.print("entrez code + *");//premiere affichage de l'ecran
  lcd.setCursor(0,1);
  lcd.print("      -***     ");//premiere affichage de l'ecran
  //put the servo in the close position first
  myservo.write(mot_min); 
 
}
 
void loop(){
///////////////EMERGENCY OPEN/CLOSE/////////
  if (digitalRead(external))
  {
     myservo.write(mot_max);
      lcd.clear();
      lcd.setCursor(2,0);
      lcd.print("INSIDE  OPEN");
      activated = 2;
      analogWrite(buzzer,240);
      delay(250);
      analogWrite(buzzer,200);
      delay(250);
      analogWrite(buzzer,180);
      delay(250);
      analogWrite(buzzer,250);
      delay(250);
      analogWrite(buzzer,LOW);
     
     
      lcd.clear();   
      lcd.setCursor(4,0);
      lcd.print("bienvenue");//affichage apres code bon
     
      lcd.setCursor(2,1);
      lcd.print("geocacheur");//affichage apres code bon
     

      lcd.clear();   
      lcd.setCursor(3,0);
      lcd.print("porte ouverte");//affichage apres code bon
      lcd.setCursor(2,1);
      lcd.print("b pour fermer");//pour dire d'appuyer sur la touche b pour refermer la porte
      delay(500);
   
  }

  if (digitalRead(internal))
  {
    myservo.write(mot_min);
    activated = 0;
    character=0;
    Str[6]= '-';
    Str[7]= '*';
    Str[8]= '*';
    Str[9]= '*';
    Str[10]= ' ';   
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("entrez code");   
    lcd.setCursor(0,1);
    lcd.print(Str);
  }
   
///////////////KEYPAD OPEN/CLOSE//////////// 
  char customKey = customKeypad.getKey(); //this function reads the presed key
 
  if (customKey){

    if (character ==0)
    { 
    Serial.println(customKey);
    Str[6]= customKey;   
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("entrez code");   
    lcd.setCursor(0,1);
    lcd.print(Str);
   
    }

    if (character ==1)
    { 
    Serial.println(customKey);
    Str[7]= customKey;   
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("entrez code");   
    lcd.setCursor(0,1);
    lcd.print(Str);
   
    }

    if (character ==2)
    { 
    Serial.println(customKey);
    Str[8]= customKey;   
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("entrez code");   
    lcd.setCursor(0,1);
    lcd.print(Str);
   
    }

    if (character ==3)
    { 
    Serial.println(customKey);
    Str[9]= customKey;   
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("entrez code");   
    lcd.setCursor(0,1);
    lcd.print(Str);
   
    }

    if (character ==4)
    { 
    Serial.println(customKey);
    Str[10]= customKey;
    activated=1;
   
    }
    character=character+1;
  }

  if (activated == 1)
    {
/*Change your password below!!!
Change each of Str[6], Str[7], Str[8], Str[9]*/

    if(Str[10]='A' && character==5 && Str[6]=='3' && Str[7]=='0' && Str[8]=='0' && Str[9]=='7' )//code enregistrer a remplacer par le votre (3007)
    {
      myservo.write(mot_max);
      lcd.clear();
      lcd.setCursor(4,0);
      lcd.print("bravo");
      activated = 2;
      analogWrite(buzzer,240);
      delay(250);
      analogWrite(buzzer,200);
      delay(250);
      analogWrite(buzzer,180);
      delay(250);
      analogWrite(buzzer,250);
      delay(250);
      analogWrite(buzzer,LOW);
      delay(1000);
     
      lcd.clear();   
      lcd.setCursor(4,0);
      lcd.print("bienvenue");
      delay(500);
      lcd.setCursor(2,1);
      lcd.print("geocacheur");
      delay(1000);

      lcd.clear();   
      lcd.setCursor(1,0);
      lcd.print("porte ouverte");
      lcd.setCursor(1,1);
      lcd.print("B pour refermer");
     
    }
    else
    {
      lcd.clear();   
      lcd.setCursor(1,0);
      lcd.print("code faux");
      lcd.setCursor(3,1);
      lcd.print("reessayez");
      analogWrite(buzzer,150);
      delay(3000);
      analogWrite(buzzer,LOW);
      character=0;
      Str[6]= '-';
      Str[7]= '*';
      Str[8]= '*';
      Str[9]= '*';
      Str[10]= ' ';
      activated = 0;
      lcd.clear();   
      lcd.setCursor(4,0);
      lcd.print("entrez code");
      lcd.setCursor(0,1);
      lcd.print(Str);   
    }
  }
  if (activated == 2)
    {
    if(customKey == 'B' )
    {
      myservo.write(mot_min);
      activated = 0;
      character=0;
      Str[6]= '-';
      Str[7]= '*';
      Str[8]= '*';
      Str[9]= '*';
      Str[10]= ' ';   
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("entrez code");   
      lcd.setCursor(0,1);
      lcd.print(Str);
     
    }
  } 
}

Le croquis utilise 7692 octets (23%) de l'espace de stockage de programmes. Le maximum est de 32256 octets.
Les variables globales utilisent 748 octets (36%) de mémoire dynamique, ce qui laisse 1300 octets pour les variables locales. Le maximum est de 2048 octets.
Bibliothèque non valide trouvée dans /home/loic/sketchbook/arduino-1.8.1/libraries/hex : /home/loic/sketchbook/arduino-1.8.1/libraries/hex
Bibliothèque non valide trouvée dans /home/loic/sketchbook/arduino-1.8.1/libraries/mavlink : /home/loic/sketchbook/arduino-1.8.1/libraries/mavlink
Bibliothèque non valide trouvée dans /home/loic/sketchbook/arduino-1.8.1/libraries/arduino-master : /home/loic/sketchbook/arduino-1.8.1/libraries/arduino-master
Bibliothèque non valide trouvée dans /home/loic/Arduino/libraries/test : /home/loic/Arduino/libraries/test