I2c Master Library

Bonjour,
aillant quelques problèmes avec la Wire library dans mon projet, j'ai décidé d'opter pour la I2c Master Library pour contrôler 8 pcf8574. Cependant j'ai besoin, en plus des adresses attribuées aux modules, d'une adresse de registre pour écrire ou lire. D'après la doc des pcf8574, ce module ne possède qu'un seul registre, j'ai donc tenté l'adresse 0x00 mais cela n'a pas l'air de fonctionner. Quelqu'un aurait une idée ?
Merci d'avance.

quelques problèmes avec la Wire library dans mon projet

Tu pourrais détailler ?

J'ai des problèmes de freeze avec la Wire Library, lié il me semble au Wire.endTransmission() et au fait que je dois utiliser un clone arduino nano. A moins que cela vienne d'ailleurs, j'essaye pour le coup de m'en sortir avec la I2c master library.

As-tu essayé la librairie pcf8574_arduino_library ?

et au fait que je dois utiliser un clone arduino nano.

Étonnant, voire impossible, car clone ou pas clone c'est le même microcontrôleur !
A mon avis il faut voir ailleurs.

La bibliothèque fournie avec l'IDE Arduino dîte "Wire" n'est pas extraordinaire mais elle fonctionne. le problème vient aussi d'ailleurs.
Te sers tu d'une bibliothèque pour gérer le PCF8574 ?

Si tu veux écrire ton propre code de gestion as tu ouvert des fichiers de bibliothèques gérant le "PCF8574" pour t'inspirer de ce qui a déjà été fait et notamment comment accéder aux registres ?
Je trouve compréhensible de vouloir faire son propre code de gestion, cela m'arrive de le faire, mais de là à réinventer la roue il y a un juste milieu.

Info sur le PCF8574
Ce circuit est dit "quasi" bidirectionnel.
Cela veut dire que ce n'est pas un vrai bidirectionnel et toutes les bibliothèques ne gèrent pas la quasi bidirectionnalité qui fait usage d'interruption.

Ce PCF8574 est maintenant une antiquité.
Il existe des circuit bien plus modernes, avec de meilleures performances matérielles comme le courant max dans les sorties et vrai directionnels comme le MCP23017 (I2C) , MCP23S17 (SPI). Ces produits sont 16 bit et existent en version 8 bits.

hbachetti:
As-tu essayé la librairie pcf8574_arduino_library ?

Non je n'ai pas essayé cette librairie, je vais essayer avec celle-ci.

68tjs:
Étonnant, voire impossible, car clone ou pas clone c'est le même microcontrôleur !
A mon avis il faut voir ailleurs.

La bibliothèque fournie avec l'IDE Arduino dîte "Wire" n'est pas extraordinaire mais elle
[/quote]
En fait c'est un problème apparemment connu et qui se retrouve un peu partout sur internet, mais qui n'est pas vraiment résolu. Je ne dit pas que le problème viens forcément de la, mais j'ai tenté de très nombreuses solutions pour parvenir à mes fins et pour l'instant c'est la seule réponse que j'ai trouvé. J'admets quand même que je ne trouve aucune logique à ce que mon programme freeze de lui même.
> 68tjs:
> Te sers tu d'une bibliothèque pour gérer le PCF8574 ?
Je ne me sers pas de bibliothèque de gestion pour les PCF8574, je n'utilise que la Wire library, qui normalement devrait fonctionner sans problème, ainsi que de la I2c master library pour essayer de remplacer la précédente et de débugger mon programme.

Je ne me sers pas de bibliothèque de gestion pour les PCF8574, je n'utilise que la Wire library, qui normalement devrait fonctionner sans problème, ainsi que de la I2c master library pour essayer de remplacer la précédente et de débugger mon programme

En fait c'est un problème apparemment connu et qui se retrouve un peu partout sur internet, mais qui n'est pas vraiment résolu.

Partout sur internet mais pas ici où de nombreux utilisateurs se servent de Wire sans rencontrer de difficultés, bizarre non ?

Et tu ne mets en cause que la bibliothèque TwoWire et son objet auto instancié Wire ?

Tu ne mets pas en cause ton code ?
Non il est forcément bon !

Il n'y a qu'a lire le code de la librairie de SkyWodd pour se rendre compte que c'est suffisamment léger pour ne pas espérer faire mieux tout seul dans son coin.

Le besoin en fonctionnalités supplémentaires peut être couvert par héritage.
Les variables membres sont "protected", contrairement à d'autres librairie moins bien faites.

Autre avantage : si cette librairie fonctionne, tu pourras te dire : mon code était bogué.

Du calme, à aucun moment je n’ai dit que mon code était bon, j’ai bien précisé que je n’accusais pas formellement la librairie comme principale source de problème, je viens simplement ici chercher des solutions, car en effet, mon programme ne fonctionne pas.

Nous n’avons pas les mêmes méthodes de travail.
Moi qui suis un petit programmeur qui a la tête de la même couleur que celle du père noël quand cela ne marche pas j’accuse MON code et ce n’est que si on me confirme qu’il est correct que je vais chercher d’autre causes.

Toi tu fais de la fuite en avant en accusant les bibliothèques écrites par d’autres avant de te remettre en cause.
Moralité tu vas faire travailler des bénévoles qui vont te proposer d’autres bibliothèques alors que très probablement l’erreur sera dans ton code.
C’est une attitude de consommateur et un manque de respect envers les bénévoles.

Il est encore temps de corriger le tir : En tête de ce forum il y a deux messages épinglés : Règle du forum francophone et Comment faire un nouveau sujet avec les balises.
Je pense qu’une lecture des deux messages s’impose et que si tu commençais par publier ton code (avec les balises) il se trouverait des bénévoles pour l’examiner.

"Moralité tu vas faire travailler des bénévoles qui vont te proposer d'autres bibliothèques alors que très probablement l'erreur sera dans ton code."
S"un point de vue cynique (je ne fais pas appel à la moralité, mais au bon sens):
les benevoles vont vous propser de tester de façon exhaustive les bibliothèques; au bout de quelques mois, vois aurez exploré, en long, en large (voire même en détail, si vous en lisez le code) toutes les bibliothèques de ce monde (un peu comme un electricien, qui changerait un fusible par tous les fusibles du monde, en allant dans tous les supermarchés à fusibles)....Pour ne pas être en reste, google (avec les mots cles I2C, 2 wire et TWI vous en raménera d'autres bibliothèques).
A l'issue de ce périple, serez vous bien sûr que de nouvelles bibliothèques n'auront pas vu le jour dans github? si ce cas se présente, la malédiction de Sisyphe vous effleurera peut être votre esprit....

Je crois qu'on s'est un peu égaré du sujet principal. Ma première question était simple, je n'ai pas demandé à ce qu'on accuse qui ou quoi que se soit, mais ai simplement demandé une adresse de registre bête et méchante. Je crois que je vais continuer mes recherches ailleurs, merci quand même.

Il me semble t'avoir donné une solution qui marche pour moi : GitHub - skywodd/pcf8574_arduino_library: PCF8574 / PCF8575 Arduino library (version 2.0)

Si tu veux absolument écrire ton propre code, si tu ne réponds pas aux questions, comment obtenir de l'aide ?

68tjs:
Je pense qu'une lecture des deux messages s'impose et que si tu commençais par publier ton code (avec les balises) il se trouverait des bénévoles pour l'examiner.

Ma première question était simple, je n'ai pas demandé à ce qu'on accuse qui ou quoi que se soit, mais ai simplement demandé une adresse de registre bête et méchante. Je crois que je vais continuer mes recherches ailleurs, merci quand même.

Que dire de plus que de regarder à l'intérieur des bibliothèques qui fonctionnent pour récupérer les ordres qui vont bien.
C'est quand même la meilleure méthode pour progresser.

Si tu va voir ailleurs, tu es libre, ne t'attend pas à avoir de meilleures réponse, à part si tu trouve quelqu'un pour faire ton travail.

Bonsoir,
Pour répondre à votre question, c’est tout simple, sur le PCF8574, il n’y a pas de numéro de registre car il n’y a qu’un seul registre auquel on accède directement en lecture et en écriture.
Bonne bidouille
MicroQuettas

MicroQuettas:
Bonsoir,
Pour répondre à votre question, c'est tout simple, sur le PCF8574, il n'y a pas de numéro de registre car il n'y a qu'un seul registre auquel on accède directement en lecture et en écriture.
Bonne bidouille
MicroQuettas

Très bien, merci MicroQuettas.