Utilisation de la bibliothèque I2Cmaster

Bonjour, j'ai essayé d'utilisé ce code mais j'arrive pas a compiler sur l'arduino, quelqu'un aurait une idée, j'ai cette erreur
Arduino : 1.8.18 (Windows 10), Carte : "Arduino Uno"

i2Cmaster:3:10: fatal error: I2CMaster.h: No such file or directory

#include <I2CMaster.h>

      ^~~~~~~~~~~~~

compilation terminated.

exit status 1

I2CMaster.h: No such file or directory

#include <I2CMaster.h>


#define uint16_t int non signé
structure de typedef
{
    uint16_t Rouge;
    uint16_t Vert;
    uint16_t Bleu;
    uint16_t Effacer;
} RVB;
caractère non signé Re_buf;
caractère non signé signe=0;
RVB RVB;
uint16_t CT=0,Lux=0;
octet couleur=0,rgb_data[3]={0};

configuration vide() {
       Série.begin(115200);
       i2c_init();
        retard(1);
}
boucle vide() {
  données non signées[9]={0};
 si(!signe)
 {
   iic_read(0x00,données,8);
   rgb.Red=(données[0]<<8)|données[1];
   rgb.Vert=(données[2]<<8)|données[3];
   rgb.Bleu=(données[4]<<8)|données[5];
   rgb.Clear=(données[6]<<8)|données[7];
    Serial.print("Rouge : ");
   Serial.print(rgb.Rouge);
   Serial.print(",Vert : ");
   Serial.print( rgb.Vert);
    Serial.print(",Bleu");
    Serial.print( rgb.Bleu);
     Serial.print(",Effacer");
    Série.println(rgb.Clear);
    iic_read(0x08,données,4);
     Lux=(données[0]<<8)|données[1];
     CT=(données[2]<<8)|données[3];
   
    Série.print("CT : ");
    Série.print(CT);
    Série.print(",Lux:");
    Série.println( Lux);
     iic_read(0x0c,données,3);
    rgb_data[0]=données[0];
    rgb_data[1]=données[1];
    rgb_data[2]=données[2];
    Série.print("r:");
    Série.print( rgb_data[0]);
    Série.print(",g:");
    Série.print( rgb_data[1]);
    Série.print(",b:");
    Série.println( rgb_data[2]);
     iic_read(0x0f,données,1);
     couleur=données[0];
     Serial.print(",couleur : ");
    Serial.println( couleur,HEX);
 }
 si(signe==1)
 {
   iic_read(0x10,&data[8],1);
   i2c_start_wait(0xb4);
    i2c_write(0x10);
    i2c_write(0x31);
   // i2c_write((données[8]|0x01));
    i2c_stop();
    signe=3;
 }
   retard(200);
}
void iic_read(add non signé,données non signées *,longueur non signée du caractère)
{
  i2c_start_wait(0xb4);
   i2c_write(ajouter);
   i2c_start_wait(0xb5);
   tandis que(len-1)
   {
    *données++=i2c_readAck();
    len--;
    }
    *données=i2c_readNak();
    i2c_stop();
}
void serialEvent() {
  tandis que (Serial.available()) {   
    Re_buf=(unsigned char)Serial.read();
   si (Re_buf=='a')
       signe=0;
    si (Re_buf=='b')    
       signe=1;
      Re_buf=0;
  }

Post mis dans la mauvaise section, on parle anglais dans les forums généraux, je viens de déplacer le post dans la section francophone.

Merci de prendre en compte les recommandations listées dans "Les bonnes pratiques du Forum Francophone".

La librairie n'est manifestement pas installée ou mal installée.

J'ai installé cette bibliothèque je ne sais pas si je me suis trompé de bibliothèque

Cette librairie ce nomme SoftI2CMaster pas I2CMaster


Je n'avais pas bien regardé le code la première fois, où l'as-tu pêché?
C'est un code traduit de l'anglais en français il ne peut pas fonctionner, tous les noms de fonction ainsi que les mots clefs du langage sont traduits.

désolé j'ai pas remarquer non plus mais même en mettant ça j'ai la même erreur, voila le lien ou je l'ai trouver mais je ne sais pas comment récupérer la bibliothèque <I2CMaster.h> GY-33 Color Recognition Sensor Module - Wiki

`#include <I2CMaster.h>

#define uint16_t unsigned int
typedef struct
{
uint16_t Red;
uint16_t Green;
uint16_t Blue;
uint16_t Clear;
} RGB;
unsigned char Re_buf;
unsigned char sign=0;
RGB rgb;
uint16_t CT=0,Lux=0;
byte color=0,rgb_data[3]={0};

void setup() {
Serial.begin(115200);
i2c_init();
delay(1);
}
void loop() {
unsigned char data[9]={0};
if(!sign)
{
iic_read(0x00,data,8);
rgb.Red=(data[0]<<8)|data[1];
rgb.Green=(data[2]<<8)|data[3];
rgb.Blue=(data[4]<<8)|data[5];
rgb.Clear=(data[6]<<8)|data[7];
Serial.print("Red: ");
Serial.print(rgb.Red);
Serial.print(",Green: ");
Serial.print( rgb.Green);
Serial.print(",Blue");
Serial.print( rgb.Blue);
Serial.print(",Clear");
Serial.println(rgb.Clear);
iic_read(0x08,data,4);
Lux=(data[0]<<8)|data[1];
CT=(data[2]<<8)|data[3];

Serial.print("CT:");
Serial.print(CT);
Serial.print(",Lux:");
Serial.println( Lux);
 iic_read(0x0c,data,3);
rgb_data[0]=data[0];
rgb_data[1]=data[1];
rgb_data[2]=data[2];
Serial.print("r:");
Serial.print( rgb_data[0]);
Serial.print(",g:"); 
Serial.print( rgb_data[1]);
Serial.print(",b:"); 
Serial.println( rgb_data[2]);
 iic_read(0x0f,data,1); 
 color=data[0];
 Serial.print(",color:"); 
Serial.println( color,HEX);

}
if(sign==1)
{
iic_read(0x10,&data[8],1);
i2c_start_wait(0xb4);
i2c_write(0x10);
i2c_write(0x31);
// i2c_write((data[8]|0x01));
i2c_stop();
sign=3;
}
delay(200);
}
void iic_read(unsigned char add,unsigned char *data,unsigned char len)
{
i2c_start_wait(0xb4);
i2c_write(add);
i2c_start_wait(0xb5);
while(len-1)
{
*data++=i2c_readAck();
len--;
}
*data=i2c_readNak();
i2c_stop();
}
void serialEvent() {
while (Serial.available()) {
Re_buf=(unsigned char)Serial.read();
if (Re_buf=='a')
sign=0;
if (Re_buf=='b')
sign=1;
Re_buf=0;
}
}`

Merci de prendre quelques minutes pour lire ou relire "Les bonnes pratiques du forum francophone" et les appliquer.

En particulier, la mise en forme du code avec des balises en cliquant sur l'icône <code/>

Il y a une librairie I2CMaster dans le github Arduino

Curieusement, elle n’apparaît pas dans le gestionnaire de librairies.

D'accord merci beaucoup je vais essayer cette bibliothèque

Comment rajouté une bibliothèque de cette façon j'ai crû savoir mais apparemment je doit avoir un fichier zip comment l'avoir sur github?

Oui, elle apparait ici :

et son github donne des exemples qui contiennent :
#include <SoftI2CMaster.h>

Donc, soit tu adaptes ton code à cette bibliothèque, soit tu installes l'autre. Je pense que c'est celle-ci :

Instructions pour installer une bibliothèque :
https://docs.arduino.cc/software/ide-v1/tutorials/installing-libraries/