(Résolu) NodeMCU : On-wire et I2C sur un même port ?

Bonjour à tous,

J'expérimente un NodeMCU sur lequel j'ai déjà une mesure de température (onwire 18b20) en pin D4
Le nombre de port étant très limité je souhaite installer un port I2C (SDA/SCL) qui utiliserait également D4
Donc avec 2 bibliothèques différentes.
Est-ce que cela est possible ?

Nota :
ModeMCU est maître et sur le bus il n'y aura qu'un seul esclave.
( j'utiliserai sans doute D1 SCL et D2 SDA et D2 pour onWire)
Actuellement je me prépare pour cette extension, je n'ai pas encore le matériel (pcf8574)
Je pourrais peut-être faire le test sans le matériel pour voir la réaction de l'IDE ?
Pour l'instant, j'étudie le sujet.

Merci d'avance.

ben ça va mettre le bazar.. OneWire peut fonctionner sur d'autre pins.

Bonsoir,

OneWire peut fonctionner sur d'autres pins.

Oui mais quand il n'y en a plus !

Pour l'instant je ne suis pas prêt à faire des tests ?
Dans un mois environ ?
(lorsque j'aurais le matériel et je dois réviser un peu car je ne fais pas cela tous les jours !)

A+

S'il te manque des pins il y a la solution des expenseurs (comme le vénérable PCF8574 mais avec un nodemcu 3,3V il est hors course).
Tu choisi un modèle fonctionnant en 3,3V et à commande I2C et tu aura 8 ou 16 E/S supplémentaires.

Bonjour à tous,

@68tjs notamment :

(comme le vénérable PCF8574 mais avec un nodemcu 3,3V il est hors course).

Là je ne comprends pas.
Pourquoi le PCF8574 ( j'ai en 2 commande = 2€) serait hors course ?
Peux-tu m'en dire un peu plus ?

Sauf erreur de ma part, tous les pcf8574 fonctionnent à partir de 2,6V (datasheet) !
et tout nodeMCU sort du 3,3V.
La perte ne serait pas bien grande mais j'aime bien comprendre.
Merci

Sauf erreur de ma part, tous les pcf8574 fonctionnent à partir de 2,6V (datasheet) !

J'étais parti dans l'idée qu'il ne fonctionnait que sous 5V, dont acte.

Mais .....car il y a un mais..............
.
Le PCf 8574 n'est pas réellement bidirectionnel il faut faire une salade avec les interruptions pour détecter un signal qui change sur une sortie : bon un signal d'entrée sur une sortie justifie, je pense, l'emploi du mot salade.

Alors que maintenant il y a plus propre et plus simple : il existe des équivalents dont on peut fixer par programmation le sens soit en entrée, soit en sortie exactement comme pour une E/S d'un microcontrôleur.
Exemple, non limitatif, le MCP23017 version I2C ou MCP23S17 version SPI.
C'est un 16 bits, il existe un modèle 8 bits.

Bonjour 68tjs,

Là, je suis tout à fait d'accord et je te remercie pour tes précisions.
Je verrai tout cela en tests dans 1 à 2 mois. et durant les longues soirées d'hiver ...

le MCP23017 / 23S17 : Je ne connaissais pas.
Super pour le futur ?
A+

Bonjour,

  • la bonne nouvelle, c'est que l'i2c et le 1wire fonctionnent à drain ouvert, on peut donc expérimenter sans risque pour les composants
  • il faudra veiller à ce que les messages vers l'un ne soient pas interprétés par l'autre, qui répondrait alors intempestivement (le bazar) -> c'est un faible risque qui doit pouvoir être éliminé facilement (le choix entre scl et sda doit partir de là)
  • il faut peut-être relancer le setup correspondant avant tout changement de périphérique (un petit coup d’œil aux bibliothèques pour s'assurer qu'elles sont compatibles)

la logique serait de remplacer le 18b20 par une sonde i2c équivalente, mais ton idée mérite qu'on fasse l'essai
(j'ai éliminé la solution ds2408 à cause du coût)

Bonjour trimarco232,

J’ai déjà utilisé le DS1621 avant la naissance d’Arduino, sans bibliothèque à l’époque !
Mais un peu cher pour un même résultat.

Merci.

hi, en tous cas cela résoudrait ton problème de compatibilité