Bonsoir
J'utilise actuellement un shield DFR LCD_Keypad sur une carte Arduino ATmega2560.
Je souhaite mettre en oeuvre un afficheur déporté du type shield I2C_LCD.
Pour tester ces fonctionnalités j'utilise le code suivant :
/*
Affichage_LCDs.ino
Afficchage "Hello word" en simultané sur LCD_Keypad et I2C_LCD
- afficheur LCD_Keypad DFRobot.com
- afficheur I2C_LCD à l'adresse 0x27 (39 Dec)
Status sketch : NOK
*/
// afficheur LCD_Keypad
#include <LiquidCrystal.h>
#include <DFR_Key.h>
// afficheur I2C
#include <Wire.h> // I2C
#include <LiquidCrystal_I2C.h> // afficheur I2C
int tempo = 200;
// afficheur LCD_Keypad
//Pin assignments for DFRobot LCD Keypad Shield
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
// afficheur I2C_LCD
// initialise afficheur I2C
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup() {
// afficheur LCD_Keypad
lcd.begin(16, 2); // initialize the LCD_Keypad
// afficheur I2C
lcd.init(); // initialize the I2C_lcd
}
void loop() {
// affiche sur LCD Keypad
lcd.clear();
delay(tempo);
lcd.setCursor(0, 0);
lcd.print("Hello, world!");
// affiche sur I2C_LCD
lcd.clear();
delay(tempo);
lcd.backlight();
lcd.print("Hello, world!");
delay(2000);
}
Ce programme est censé afficher le texte clignotant suivant "Hello, world!" .
En sélectionnant la partie de code propre à chaque afficheur, le fonctionnement de chaque afficheur est correct.
Par contre si je souhaite utiliser les 2 afficheurs simultanément, le compilateur affiche les messages d'erreur indiquant un conflit de bibliothèque.
C:\DOCUME~1\Pierre\LOCALS~1\Temp\build271406947852352415.tmp\Affichage_LCDs.cpp -o C:\DOCUME~1\Pierre\LOCALS~1\Temp\build271406947852352415.tmp\Affichage_LCDs.cpp.o
Affichage_LCDs.ino:30:22: error: conflicting declaration 'LiquidCrystal_I2C lcd'
Affichage_LCDs.ino:24:15: error: 'lcd' has a previous declaration as 'LiquidCrystal lcd'
Affichage_LCDs.ino: In function 'void setup()':
Affichage_LCDs.ino:44:12: error: no matching function for call to 'LiquidCrystal::init()'
Affichage_LCDs.ino:44:12: note: candidate is:
In file included from Affichage_LCDs.ino:12:0:
C:\Program Files\Arduino\libraries\LiquidCrystal\src/LiquidCrystal.h:60:8: note: void LiquidCrystal::init(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)
void init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable,
^
C:\Program Files\Arduino\libraries\LiquidCrystal\src/LiquidCrystal.h:60:8: note: candidate expects 12 arguments, 0 provided
Affichage_LCDs.ino: In function 'void loop()':
Affichage_LCDs.ino:62:7: error: 'class LiquidCrystal' has no member named 'backlight'
Erreur lors de la compilation.
Je ne sais pas comment traiter ce problème, d'où mes questions :
1°) Peut-on utiliser un LCD parallele avec un LCD I2C ?
2°) Les bibliothèques utilisées sont-elles bien les bonnes ?
3°) Une personne aurait-elle une idée pour résoudre ce problème
D'avance Merci pour votre support
Pierre