wire library

Bonjour,

Dans tous les programmes que je compile, utilisant la librairie "wire", j'ai le même message d'erreur: class TwoWire has no member named 'write'. Sachant qu'elle est bien présente, je ne comprends pas.
Pouvez vous m'expliquer ?
Merci

Bonjour,
Quelle version d'IDE Arduino utilises-tu ?
@+

Arduino 1.0.3

Essaie en changeant "TwoWire" par "Wire" tout court.
Les exemples que tu as dû trouvés doivent être périmés :wink:
Si c'est bien la lib fournie avec l'IDE, alors va voir ici: Wire - Arduino Reference
Tu devrais t'en sortir :wink:

Je ne sais pas si cela pourra t'aider mais il y a une grosse confusion avec la librairie I2C arduino.
Le fichier contenant la classe s'appelle : wire.cpp
Le vrai nom de la classe est TwoWire

class TwoWire : public Stream
{

Dans le fichier wire.cpp un objet "Wire" est automatiquement instancié:

TwoWire Wire = TwoWire();

Donc Wire n'est pas le nom d'une classe mais celui d'un objet.

Bonjour,

La librairie wire (classe TwoWire) a évolué entre Arduino 002x et Arduino 1.0.x.

Wire.send() -> Wire.write()
Wire.receive() -> Wire.read()

Ouvre le fichier .h de la librairie Wire est vérifie que les fonctions write() / read() existent.
Avec la version 1.0.3 cela devrait être le cas normalement, sauf si tu as toi même remplacer les fichiers lors d'un copié collé.

Sinon aurait un code le plus basique possible qui déclenche ce message d'erreur ?

Wire.send() -> Wire.write()
Wire.receive() -> Wire.read() à modifier dans les librairies utilisant wire (dernière version avec "Wire.write()" et " Wire.read()" .

C'était bien ça, maintenant, c'est ok :slight_smile:
Merci