J’obtiens, pour le fichier "cpp", les 2 erreurs suivantes :
mesFonctions.cpp:3: error: 'LiquidCrystal' does not name a type
mesFonctions.cpp: In function 'void afficheMessage()':
mesFonctions.cpp:8: error: 'lcd' was not declared in this scope
Comment déclarer 'lcd' pour pouvoir l’utiliser dans le fichier « mesFonctions.cpp » ?
Bonne programmation à tous.
Toutefois, le code génère toujours une erreur, même après avoir ajouté, dans le fichier ".h" : #include <LiquidCrystal.h>
J'obtiens : 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:7: undefined reference to `lcd'
Bloqué et pas moyen de trouver la solution malgré divers essais...
Cordialement.
Tu t'embrouilles, extern indique au compilateur que la variable est déclarée ailleurs dans un autre fichier source.
Dans le source qui contient la déclaration de la variable, il faut la déclarer public.
Dans les sources qui utilisent la variable en question, elle doit être déclarée extern.
La variable "lcd" est bien déclarée dans un autre fichier source, à savoir "monProgramme.ino" ; c'est la raison pour laquelle j'ai mis "extern" (voir le code en début de ce post).
Cette notation fonctionne avec d'autres variables, mais pas avec le constructeur LiquidCrystal() !