Bonjour à tous.

Je ne parviens pas à utiliser la variable "lcd" dans le fichier "cpp" lié au fichier "monProgramme.ino" (environnement Arduino).
Nota : LiquidCrystal() est un constructeur disponible sur le web (lien).
Il est normal que le main() soit caché dans l'environnement d'Arduino !

Fichier" monProgramme.ino"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
#include <LiquidCrystal.h>
#include "mesFonctions.h"
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); 
 
void setup() {
lcd.begin(16, 2);
afficheMessage(); // Dans le fichier « .cpp ».
}
 
void loop() {
}
Fichier "mesFonctions.cpp"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
#include "mesFonctions.h"
extern LiquidCrystal lcd;
 
void afficheMessage(){ 
    lcd.setCursor(0, 0); 
    lcd.print("Message");
}
Fichier "mesFonctions.h"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
#include <LiquidCrystal.h>
void afficheMessage();

J'obtiens les erreurs suivantes :
1. lorsque je ne mets pas "extern LiquidCrystal lcd;" dans le fichier "mesFonctions.cpp"
mesFonctions.cpp: In function 'void afficheMessage()':
mesFonctions.cpp:7: error: 'lcd' was not declared in this scope

2. lorsque je mets "extern LiquidCrystal lcd;" dans le fichier "mesFonctions.cpp"
mesFonctions.cpp.o: In function `afficheMessage()':
mesFonctions.cpp:7: undefined reference to `lcd'
mesFonctions.cpp:8: undefined reference to `lcd'


Bloqué et pas moyen de trouver la solution malgré divers essais...
Qui peut trouver la solution à ce problème ?

Cordialement.