[RESOLU] 1 Wire / Plusieurs Arduino

Bonjour à tous,

savez vous si il est possible de mettre plusieurs arduino sur la même chaîne 1 wire (mode parasite) afin qu'ils puissent interroger les mêmes sondes ?
Quel serait le câblage ?
En fait j'ai un serveur OWSERVER qui effectue l'interrogation de mes sondes et j'aimerai mettre dans la chaine un arduino pour interroger les mêmes sondes. Comme je pense que tout le monde ne connait pas l'OWSERVER je pose la question avec plusieurs ARDUINO car le problème est le même.

Merci d'avance pour réponses

PITP2:
Bonjour à tous,

savez vous si il est possible de mettre plusieurs arduino sur la même chaîne 1 wire (mode parasite) afin qu'ils puissent interroger les mêmes sondes ?
Quel serait le câblage ?
En fait j'ai un serveur OWSERVER qui effectue l'interrogation de mes sondes et j'aimerai mettre dans la chaine un arduino pour interroger les mêmes sondes. Comme je pense que tout le monde ne connait pas l'OWSERVER je pose la question avec plusieurs ARDUINO car le problème est le même.

Merci d'avance pour réponses

sans utiliser de composants spéciaux de gestion du bus 1W , faire du (petit) multimaster consiste essentiellement à gerer de la collision
avec seulement 2 maitres un test de checksum doit suffire

combien de compos et lesquels sur la ligne ?

a chaud attention en parasitic power où prendre l'alim 5V (encore que si 2 master , laisser sur chacun une 4.7K ne doit pas etre "critique" )

Merci pour la réponse

Seulement 3 DS18B20
Je ne risque pas de casser les capteurs car je vais leur appliquer x * 5v en fonction du nombre de montages qui vont ecouter ?

PITP2:
Merci pour la réponse

  • Seulement 3 DS18B20
  • Je ne risque pas de casser les capteurs car je vais leur appliquer x * 5v en fonction du nombre de montages qui vont ecouter ?

ok ,

  • Donc 3 DS18B20 en resolution max je suppose ? (librarie arduino basique ds18b20 ) , soit ~1 seconde d'acquisition par capteur
    soit 6 secondes d'occupation du bus (2 master X 3 capteurs), avec un peu d'astuce le taux de collision sera limité

  • non, au pire l'acquisition ne fonctionnera pas pour cause de soft, mais les capteurs eux ne verrons jamais 5V*x 8), et les ds18B20 c'est tres resistants :grin:

ne peut til pas faire une activation sur un des pine de chaque arduino pour pas qu'il y est de probleme ?

arduino_1 avece une entré en mode output et une en in put
arduino_2 avec une entré en mode output et une en in put

quand le arduino_1 active sont output ça avtive le input de arduino_2

avec une detection sur chaque du type
si mon input et activé alors j'atend un delay de 750ms x nb de sonde et je reteste mon input
si libre alors active le output et mesure des sonde

mes c'est juste une question!

Heloderma-kris:
ne peut til pas faire une activation sur un des pine de chaque arduino pour pas qu'il y est de probleme ?

arduino_1 avece une entré en mode output et une en in put
arduino_2 avec une entré en mode output et une en in put

quand le arduino_1 active sont output ça avtive le input de arduino_2

avec une detection sur chaque du type
si mon input et activé alors j'atend un delay de 750ms x nb de sonde et je reteste mon input
si libre alors active le output et mesure des sonde

mes c'est juste une question!

bonjour heloderma-kris
la gestion soft de la pin 1W fait que déjà elle est affectée différemment selon les "moments" , c'est le principe du 1W (de temps en temps en OUT, de temps en temps en IN)
de plus cette pin est tirée par pull-up au travers d' une 4.7K typique (alimentation des dispos en parasitic)
l'etat standard/repos du bus 1W est high, l'info passe par de la mise à low (par master/slave)

sauf a avoir loupé qq chose (toujours possible) avec 2 master , faire de la gestion de CHK (collisions) doit etre amplement suffisant

Je viens de mettre les deux systemes (OWSERVER et arduino sur le même Bus

J'arrive bien à récupérer les temperatures aevc l'arduino mais plus avec l'OWSERVER.
Est ce que cela pourrait venir du fait que l'OWSERVER doit lui aussi avoir une resistance de 4,7k et que mon arduino en a aussi ...
Si je la retire coté Arduino cela ne risque rien pour les sondes ni l'arduino ?

PITP2:
Je viens de mettre les deux systemes (OWSERVER et arduino sur le même Bus

J'arrive bien à récupérer les temperatures aevc l'arduino mais plus avec l'OWSERVER.
Est ce que cela pourrait venir du fait que l'OWSERVER doit lui aussi avoir une resistance de 4,7k et que mon arduino en a aussi ...
Si je la retire coté Arduino cela ne risque rien pour les sondes ni l'arduino ?

ton owserver c'est quoi exactement (le truc qui fait passerelle OW/TCP ? )
lien vers ce que tu a exactement ?
avant d'experimenter "à taton" il est bien de savoir ce que l'on fait ET avec quoi , meme si pour la 4.7K arduino au pire plus rien ne fonctionnera, mais cela n'entrainera pas de "destructions" 8)

Oui c'est bien cela.

Voila l'adresse du lien pour la doc
http://support.domadoo.com/index.php?/Knowledgebase/Article/GetAttachment/1858/4342

PITP2:
Oui c'est bien cela.

Voila l'adresse du lien pour la doc
http://support.domadoo.com/index.php?/Knowledgebase/Article/GetAttachment/1858/4342

ok
à suivre plus tard pour moi 8)
mais ce n'est déjà plus la meme chose que

savez vous si il est possible de mettre plusieurs arduino sur la même chaîne 1 wire (mode parasite)

PITP2:
Je viens de mettre les deux systemes (OWSERVER et arduino sur le même Bus

J'arrive bien à récupérer les temperatures aevc l'arduino mais plus avec l'OWSERVER.
Est ce que cela pourrait venir du fait que l'OWSERVER doit lui aussi avoir une resistance de 4,7k et que mon arduino en a aussi ...
Si je la retire coté Arduino cela ne risque rien pour les sondes ni l'arduino ?

Sans aller voir la doc que tu as envoyé depuis une question vient à l'esprit. Est-ce que ton OWSERVER gère les collisions? Parce que s'il ne sait pas gérer les collisions c'est peine perdue. Sauf à déterminer quand et avec quelle récurrence il va lire les capteurs et essayer de glisser les accès Arduino entre les accès OWSERVER.

J'ai cherché l'info dans la doc mais aucune trace de cette gestion de collision.
Mais par contre cela ne semble pas poser pbl à l'arduino alors que je ne la gère pas non plus à moins que ce soit en natif dans la librairie onewire

PITP2:
J'ai cherché l'info dans la doc mais aucune trace de cette gestion de collision.
Mais par contre cela ne semble pas poser pbl à l'arduino alors que je ne la gère pas non plus à moins que ce soit en natif dans la librairie onewire

fdfunews à la meme reaction que moi
et ce n'est plus la meme question que celle d'origine :grin:

savez vous si il est possible de mettre plusieurs arduino sur la même chaîne 1 wire (mode parasite)

tu dispose de quoi comme "instruments de mesure" ?

pour ce qui est de la collision du 1W sur arduino, et pour les lib "standards" c'est simple ce n'est pas géré puisque pas prevu :grin:
seul une verif de CHK est quelquefois prevue pour "redemander" :grin:

Un couteau et un truc que j'ai dans le pantalon .... XD

J'ai juste un multimètre ... =(

PITP2:

  • Un couteau et un truc que j'ai dans le pantalon .... XD

  • J'ai juste un multimètre ... =(

  • materiel de base ET necessaire 8)
  • pas gagné juste avec ça (et un numerique je suppose ? :grin: ) , un oscillo serait bienvenu , Il faudrait voir comment l'OWSERVER occupe le bus

essaye de voir si il y a de l'activité avec ça (peu importe ce que cela renvoie) Data ligne 1wire OWserver sur pin2 arduino et gnd communs
prendre le sketch ici
http://forum.arduino.cc/index.php?topic=168124.msg1251495#msg1251495

cela donne cela

-- passe tempo --> SECTEURS PARCOURUS = -1

-- passe tempo --> SECTEURS PARCOURUS = -1

PITP2:
cela donne cela

-- passe tempo --> SECTEURS PARCOURUS = -1

-- passe tempo --> SECTEURS PARCOURUS = -1

avec ton owserver actif ? , avec les ds18b20 "en ligne" ,recup d'info ok par le owserver ?
là l'arduino est bien pris en espion sur data et gnd de la ligne 1wire ?

3 et 4 de la rj12 selon la doc owserver

Donc

avec ton owserver actif ?

-- passe tempo --> SECTEURS PARCOURUS = -1

, avec les ds18b20 "en ligne" ,

-- passe tempo --> SECTEURS PARCOURUS = -1

recup d'info ok par le owserver ?

Non dès que je mets l'arduino sur la ligne il n'y a plus de retour des infos des sondes sur l'OWSERVER

là l'arduino est bien pris en espion sur data et gnd de la ligne 1wire ?

Oui

PITP2:
Donc

avec ton owserver actif ?

-- passe tempo --> SECTEURS PARCOURUS = -1

, avec les ds18b20 "en ligne" ,

-- passe tempo --> SECTEURS PARCOURUS = -1

recup d'info ok par le owserver ?

Non dès que je mets l'arduino sur la ligne il n'y a plus de retour des infos des sondes sur l'OWSERVER

là l'arduino est bien pris en espion sur data et gnd de la ligne 1wire ?

Oui

ok , surement un pb de pull "capricieux et/ou mal venu" :grin:
je ferais un test de ce sketch sur une ligne 1-wire (au mieux vendredi) et je regarderais "la tronche signaux " à l'oscillo

Mais non c'est l'été pas d'histoire de pull entre nous :slight_smile:

Merci pour ton aide