aide pour modification de programme

bonjour a tous,

j'ai un projet en cours mais j'ai un problème de programmation, voilà, je pratique l'airsoft et pour agrémenter nos parties, je voudrais faire un boitier genre "battlefield", sur le net j'ai trouvé un programme déjà fait mais , il est fait pour être utilise avec un écran LCD standard ors moi je veux utilisé un écran LCD I2C. j'ai essayer juste de modifier la bibliothèque avec la bonne mais ça marche pas, je ne sais pas quoi faire d'autres car je n'y comprend pas grand chose.je vous fait une copie du programme pour que vous voyez. merci d'avance.

// Déclaration du matériel (écran)
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 4, 3, 2, 1);

// Variables pour les tempos
long TTflag; // Temps TOTAL basculement base
long TTamorc; // Temps TOTAL amorçage bombe
long TTdesamorc; // Temps TOTAL desamorcage bombe
float Tflag; // Temps barre basculement base
float Tamorc; // Temps barre amorçage bombe
float Tdesamorc; // Temps barre désamorçage bombe

// Positions des éléments sur les pattes
const int led_PinR = 12; //patte 18 red
const int led_PinB = 13; //patte 19 blue
const int BP_PinR = 10; //patte 5 red
const int BP_PinB = 11; //patte 6 blue
const int buzz_Pin = 0; // Patte 2 Buzzer

// Variables générales
long debut_appuiR;
long debut_appuiB;
int etat_boutonR;
int etat_boutonB;
int etat_ledR = LOW;
int etat_ledB = LOW;
int rouge;
int bleu;
int jeu = 0;

// Variables Compteurs Drapeaux
unsigned long compteurB; unsigned long compteurR;
unsigned long TinitB; unsigned long TinitR;
unsigned long TinterB; unsigned long TinterR;
unsigned long timeCalc;

// Variables Compteur Bombe
unsigned long timeCalcVar;
unsigned long minutes;
unsigned long secondes;
unsigned long TimeInit;

// Variable Buzzer
boolean buzzer = false;
int bip = 50;

// Création des caractères pour la barre de défilement
byte bar0[8] = {B00000,B00000,B00000,B00000,B00000,B00000,B00000,B00000};
byte bar1[8] = {B10000,B10000,B10000,B10000,B10000,B10000,B10000,B10000};
byte bar2[8] = {B11000,B11000,B11000,B11000,B11000,B11000,B11000,B11000};
byte bar3[8] = {B11100,B11100,B11100,B11100,B11100,B11100,B11100,B11100};
byte bar4[8] = {B11110,B11110,B11110,B11110,B11110,B11110,B11110,B11110};
byte bar5[8] = {B11111,B11111,B11111,B11111,B11111,B11111,B11111,B11111};
byte bar6[8] = {B00001,B00001,B00001,B00001,B00001,B00001,B00001,B00001};

void setup(){

// Déclaration des E/S
pinMode(led_PinR, OUTPUT);
pinMode(BP_PinR, INPUT);
pinMode(led_PinB, OUTPUT);
pinMode(BP_PinB, INPUT);
pinMode(buzz_Pin, OUTPUT);

// Affectation des positions des caractères de la barre de défilement
lcd.createChar(0, bar0);
lcd.createChar(1, bar1);
lcd.createChar(2, bar2);
lcd.createChar(3, bar3);
lcd.createChar(4, bar4);
lcd.createChar(5, bar5);
lcd.createChar(6, bar6);

// Intro écran
lcd.begin(16, 2);
lcd.clear();
lcd.setCursor(3, 0 );
lcd.print( "BATTLEFIELD" );
delay(600);
lcd.setCursor( 4, 1 );
lcd.print( "By DROOP" );
delay(2000);
lcd.clear();
lcd.setCursor(0, 1 );

// Mise à zéro compteur
TinitB = 0; TinitR = 0;
TinterB = 0; TinterR = 0;
compteurB = 0; compteurR = 0;
bleu = 0; rouge = 0;

// Appel menu jeu
menu();

} //fin SETUP

void loop(){

if (jeu == 1){flag();}
if (jeu == 2){bombe();}

} //fin LOOP

// Remise de la barre en cas d'interruption
void Barre() {
for (int i=0;i<16;i++) {
lcd.setCursor(i,1);
lcd.print ((char)255);
} //end if
} //end void barre

Il y a un forum en langue française . Ici ce sont des anglosaxons, donc moins de chance d'avoir des réponses. Demande aux modos (bouton report to moderator) de déplacer ton message.

Pour ton problème : tu as pris un code prévu pour un écran LCD non I2C. Ca se voit dans ces deux lignes :

#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 4, 3, 2, 1);

Une déclaration I2C est beaucoup plus courte, puisqu'il n'y a qu'une adresse à indiquer (les deux fils sont par défaut sur les pins A4 et A5).

Tu dois donc utiliser une bibliothèque adaptée à un écran LCD I2C, par exemple celle-ci et vérifier qu'elle est compatible de ton code, c'est à dire que les noms des fonctions sont les mêmes.

Si ce n'est pas le cas, il faut examiner les fonctions et changer les noms. Tu vas dans le fichier .h de la première bibli, et dans le fichier .h de l'autre, et tu compares les noms des fonctions.

Pour une meilleure lisibilité de ton code, fais CTRL T dans l'IDE, ça changera l'indentation. Ensuite, si tu le postes sur le forum, pense à utiliser les balises CODE (bouton </>) lorsque tu écris un message. Voir les messages épinglés.

Edite ton premier message et mets le code entre les balises code.... voir les premiers message en tête de forum pour comprendre !!

à ton prochain message sans avoir corrigé cela sans correction de ta part >>>> sujet >>>> poubelle

ok merci