////////////////////////////////////////// char readRegI2C(char I2Caddr, byte Regaddr, byte * ptr_value) /*I2Caddr, l'adresse du composant sur le bus Regaddr, l'adresse du registre à lire ptr_value, pointeur pour renvoyer la valeur lue dans le registre retourne -1 si échec 0 sinon */ { Wire.beginTransmission(I2Caddr);//démarre la transmission avec l'adresse du pérpiphérique Wire.write((byte)Regaddr); //envoie l'adresse de la case if (Wire.endTransmission()!=0) //stoppe la transmission return -1; Wire.requestFrom((byte)I2Caddr,(byte) 1);// demande la lecture d'1 octet depuis l'adresse du pérpiphérique if (Wire.available()==1) //si l'octet est disponible { (* ptr_value) = Wire.read(); // lire l'octet return 0; } else return -1; } ////////////////////////////////////////// char writeRegI2C(char I2Caddr, byte Regaddr, byte value) /* I2Caddr, l'adresse du composant sur le bus Regaddr, l'adresse du registre à écrire value,la valeur à écrire dans le registre retourne -1 si échec 0 sinon */ { Wire.beginTransmission(I2Caddr);//démarre la transmission avec l'adresse du pérpiphérique Wire.write((byte)Regaddr); //envoie l'adresse de la case Wire.write((byte)value); //envoie la donnée if (Wire.endTransmission()==0) //stoppe la transmission return 0; else return -1; }