Go Down

Topic: petit probleme LCD en I2C (Read 735 times) previous topic - next topic

legone

Bonjour à toutes et tous,

tite présentation :
Dinosaure de l'époque des 8085, et après 25 ans d'interruptions, je redécouvre l'électronique avec un uno V3 et quelques composants.... Me voila donc partis dans deux projets, le premier pour mon aquarium (programmateur et +), le second pour un intervallomètre photo,

Le premier est pas trop mal avancé grâce à vos contrib sur le forum qui m'ont bien aidé, merci à vous. Mais voila, le câblage traditionnel (4bits) de mon LCD (44780) consomme pas mal (trop) de sorties PWM ! :-(
J'essaie donc depuis 2 jrs de le faire fonctionner avec un PCF8574 et je me plante lamentablement, Arduino 1.0 refuse systématiquement de me compiler l'exemple " HelloWorld " :-(

Une bonne âme pourrait me mettre sur la piste ?

les conditions :
- librairie LiquidCrystal_I2C V2.0 téléchargée ici : http://www.xs4all.nl/~hmario/arduino/LiquidCrystal_I2C/LiquidCrystal_I2C.zip
- câblage réalisé tel que décrit dans le fichier info de la librairie
- librairie rangée dans un répertoire " libraries " que j'ai créé dans le répertoire de base de mes projets (j'ai fait l'essai de la ranger dans le rép " libraries " de Arduino-1.0 sans plus de succès

le message que j'obtiens est :

HelloWorld:21: error: redefinition of 'LiquidCrystal_I2C lcd'
HelloWorld:3: error: 'LiquidCrystal_I2C lcd' previously declared here
HelloWorld.cpp: In function 'void setup()':
HelloWorld:23: error: redefinition of 'void setup()'
HelloWorld:5: error: 'void setup()' previously defined here
HelloWorld.cpp: In function 'void loop()':
HelloWorld:32: error: redefinition of 'void loop()'
HelloWorld:14: error: 'void loop()' previously defined here

surement une erreur de newbies, mais laquelle ?

Merci par avance, ce forum est une véritable bible !

barbudor

#1
Apr 07, 2012, 07:34 pm Last Edit: Apr 08, 2012, 06:10 pm by barbudor Reason: 1
Bonjour

LiquidCrystal est fait pour piloter le LCD directement par des pins de l'Arduino.
Si tu veux passer via un PCF8574, il va falloir aller taper directement dans le code de LiquidCrystal pour modifier les méthodes d'accès.

Ensuite les messages d'erreurs semble pointer vers des définitions multiples.
Ne voyant pas ton code, je ne sais pas où est exactement l'erreur.

Pourrais tu publier ton code et ton arborescence de manière plus explicite ?

EDIT : Je pense l'erreur vient du fait que tu es allé télécharger et ré-installer LiquidCrystal qui fait déjà partie des libs standards d'Arduino (situé dans ...\arduino\libraries\LiquidCrystal)
Donc il trouve 2 fois les fonctions de la lib.

Si tu as besoin d'utiliser ta version de la lib LiquidCrystal modifiée, il faut que tu "désactives" celle par défaut. Je suppose qu'il faut virer le répertoire de là où il se trouve.


EDIT2 : Ah les Dinosaures, j'en suis ;-) 8080, Z80, 6502, 6800.... Nos jeunes années  :D
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

barbudor

Désolé,
J'avais pas vu que tu faisais référence à LiquidCrystal_I2C qui est déjà modifié pour utiliser l'I2C.
Résultat je me suis fait ma propre version avant de découvrir qu'il existait déjà cette version.

ma propre version marche bien
Sinon j'ai découvert ce topic aussi sur le forum anglophone où quelqu'un propose une modification : http://arduino.cc/forum/index.php/topic,93757.0.html
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Go Up