Pages: [1] 2   Go Down
Author Topic: Longueur de cable?  (Read 2631 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,
debutant dans l'arduino je me pose plusieurs questions.
Je souhaiterais installer une sonde de temperature assez loin d'ou sera ma carte arduino (ethernet sans POE), je me demande donc s'il est possible de mettre la longeur de cable que l'on veut entre la carte et la sonde de temperature.
Merci d'avance
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 24
Posts: 2055
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Cela va dépendre de ta sonde de température.
Une sonde analogique type LM35 est probablement un mauvais choix dans ce cas.

Regarder plutot les sondes 1-Wire DS1822, DS18B20, 2 fils suffisent avec alimentation fantôme.
Voir la famille ici : http://para.maximintegrated.com/en/results.mvp?fam=temp_sens&723=Local&374=1-Wire|1-Wire%20Non-Network|Freq.%20%26%23181%3B%20Temp.|Period%20%26%23181%3B%20Temp.|Pulse%20Delay

Sinon en I2C c'est jouable mais il faut un peu plus de fils (GND, VCC, SDA, SCL).
http://para.maximintegrated.com/en/results.mvp?fam=temp_sens&723=Local&374=2-Wire%2FI%3Csup%3E2%3C%2Fsup%3EC%2FSMBus
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Faraday Member
**
Karma: 34
Posts: 5068
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Je souhaiterais installer une sonde de temperature assez loin d'ou sera ma carte arduino (ethernet sans POE), je me demande donc s'il est possible de mettre la longeur de cable que l'on veut entre la carte et la sonde de temperature.
bonjour
La longueur de "cable" possible est surtout fonction de la sonde de température utilisée.
c'est une sonde T° de quel type/technologie ?  
Logged

Moselle (FR)
Offline Offline
Edison Member
*
Karma: 16
Posts: 1247
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Je souhaiterais installer une sonde de temperature assez loin d'ou sera ma carte arduino (ethernet sans POE), je me demande donc s'il est possible de mettre la longeur de cable que l'on veut entre la carte et la sonde de temperature.

La longueur du bus I2C est limitée en fonction de la capacité parasite de la ligne, mais il est possible d'atteindre quelques centaines de mètres avec des drivers spécialisés pour les lignes I2C longues (P82B715, P82B96 ou autres).
icare
Logged

2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

68 aujourd'hui
Offline Offline
Edison Member
*
Karma: 41
Posts: 2257
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Bus I2C........limitée en fonction de la capacité parasite de la ligne
Plus précisément la limitation est provoquée par l'effet filtre passe-bas de la capacité conjuguée avec la résistance de charge de la ligne.
Exemple si la résistance de charge Rc des lignes SDA et SCL est de 10kohms, du point de vue analogique le schéma équivalent sera un générateur de 0/5V associé à une résistance série Rs = Rc = 10 kohms.
C'est ce couple (Rs,C) qui forme un filtre passe bas qui écroule les fronts de montée et de descente. La limite de fonctionnement est atteinte quand le front est écroulé à un point tel que la reconnaissance des "0" et des "1" n'est plus possible.

Si la ligne est trop capacitive la première chose à faire est de diminuer la valeur des résistances de rappel au +5V.
Comme les modules esclaves sont alternativement "écouteur" et "causeur" le mieux, quand la liaison est longue, est de répartir les résistances de rappel de chaque coté de la ligne afin d'équilibrer les deux sens de transmission.

Si cela ne suffit pas, où qu'on arrive a des courants trop importants dans les transistors de sortie, il est possible de diminuer la fréquence horloge du bus en dessous des 100kHz habituels (autant éviter de base l'horloge à 400kHz).

Et si cela ne suffit toujours pas effectivement il y a les ampli de bus comme indiqué par Icare.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,
Je pensais à une sonde de temperature de ce type: http://ww1.microchip.com/downloads/en/DeviceDoc/21942e.pdf
Je pense qu'il me faudrait une bonne centaine de mettre de fil.

Autre question,
comme je l'ai dit precedement, je souhaite debuter en arduino, voulant surtout utiliser l'ethernet je me demande s'il il est preferable de prendre directement une carte arduino ethernet ou une carte uno avec un shield ethernet?
De plus il me semble que l'arduino ethernet a un nombre limité d'entrée\sortie  par rapport à une carte uno avec shield ethernet?

Merci d'avance
Logged

Rennes
Offline Offline
Sr. Member
****
Karma: 1
Posts: 313
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,
Je pensais à une sonde de temperature de ce type: http://ww1.microchip.com/downloads/en/DeviceDoc/21942e.pdf
Je pense qu'il me faudrait une bonne centaine de mettre de fil.
C'est un capteur analogique tu as là.
Si tu tiens à être en ethernet, il te faut un capteur qui cause ce protocole (je ne sais pas si ça existe).
Pour Arduino tu peux opter pour un capteur numérique avec un protocole 1-wire:
https://www.sparkfun.com/products/245

Apparemment avec du câble cat5 y'en a qui ont pu atteindre 100m de longueur sans trop de soucis.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
C'est un capteur analogique tu as là.
Si tu tiens à être en ethernet, il te faut un capteur qui cause ce protocole (je ne sais pas si ça existe).
Pour Arduino tu peux opter pour un capteur numérique avec un protocole 1-wire:
https://www.sparkfun.com/products/245

Apparemment avec du câble cat5 y'en a qui ont pu atteindre 100m de longueur sans trop de soucis.

quelle difference entre un capteur analogique et un capteur numerique?
je ne vois pas en quoi un capteur ne fonctionnerait pas avec l'ethernet ?
Logged

68 aujourd'hui
Offline Offline
Edison Member
*
Karma: 41
Posts: 2257
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
quelle difference entre un capteur analogique et un capteur numerique?
Avant d'acheter les centaines de mètre de câble je pense qu'il serait préférable de lire les datasheets des :
LM35 -> capteur analogique
DS7505 -> capteur numérique bus I2C
DS18B20 -> capteur numérique bus OneWire

afin de voir comment on les utilise.
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 24
Posts: 2055
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ne mélangeons pas tout.
je suppose que tu considère la liaison Ethernet pour connecter ton Arduino à un réseau de façon a par exemple héberger une page Web qui donnera la température.
Tu ne compte pas utiliser Ethernet pour relier le capteur de température à l'Arduino ?

Différence entre analogiquet et numérique :
- En analogique, le capteur va fournir une grandeur électrique (généralement tension mais cela pourrait être courant) qui dépend de la température.
C'est par exemple le cas du composant Microchip que tu donne en référence.
On lit sur la 1ère page que suivant les versions, il fournit une tension proportionnelle à la température de 10mv par °C (ou 19,5mv par °C).
Avec un tel capteur si tu le met au bout de 100m de câble la conversion température->tension est faite dans le capteur mais la mesure de la tension est faite sur l'Arduino (par une entrée Analogique). Le problème c'est qu'au bout de 100m de câble, la tension que mesure l'Arduino n'est plus tout à fait la même que celle fournit par le capteur. En effet il faut prendre en compte les parasites (les 100m de câble vont faire antenne et ramasser tout les rayonnements du coin). Déjà que le composant n'est pas très précis (précision de +/-2°C).
Bref pas terrible.
Un capteur analogique est plutot limité à des usages "locaux" c'est à dire très proche avec cables très courts.

- en numérique, le capteur fait la mesure de température et transmet directement la valeur en numérique sous la forme généralement d'une liaison série. Il y a plusieurs standards de liaison série pour capteur tels que 1-Wire (1 fil), I2C (2 fils), SPI (3 ou 4 fils).
Il n'y a plus de problème de traduction de la mesure car elle se fait directement dans le composant. Il ne reste plus qu'un problème de transmission numérique qui somme toute est généralement plus simple tant que (comme indiqué plus haut) tu ne cherches pas à aller trop vite.

Donc pour ton problème de capteur situé à 100m de l'Arduino, le numérique s'impose.
De mon point de vue l'I2C sera le plus fiable car plus facile de contrôler la transmission (vitesse, ...). tu peux ainsi relier ton capteur à l'Arduino avec un câble téléphonique à 4 brins (VCC, GND, SCL et SDA). Comme dit plus haut, il va falloir "tuner" un peu les résistances pour que çà fonctionne bien. Un oscilloscope serait bien pour cela mais je suppose que tu n'as pas ce genre d'instrument.
Le 1-Wire présente l'inconvénient d'avoir des timings fixés. Il n'est pas possible de "tuner" la vitesse pour limiter les problèmes de transmission. Donc je l'écarterais dans un premier temps.

Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Faraday Member
**
Karma: 34
Posts: 5068
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ne mélangeons pas tout.
je suppose que tu considère la liaison Ethernet pour connecter ton Arduino à un réseau de façon a par exemple héberger une page Web qui donnera la température.
Tu ne compte pas utiliser Ethernet pour relier le capteur de température à l'Arduino ?

Différence entre analogiquet et numérique :
- En analogique, le capteur va fournir une grandeur électrique (généralement tension mais cela pourrait être courant) qui dépend de la température.
C'est par exemple le cas du composant Microchip que tu donne en référence.
On lit sur la 1ère page que suivant les versions, il fournit une tension proportionnelle à la température de 10mv par °C (ou 19,5mv par °C).
Avec un tel capteur si tu le met au bout de 100m de câble la conversion température->tension est faite dans le capteur mais la mesure de la tension est faite sur l'Arduino (par une entrée Analogique). Le problème c'est qu'au bout de 100m de câble, la tension que mesure l'Arduino n'est plus tout à fait la même que celle fournit par le capteur. En effet il faut prendre en compte les parasites (les 100m de câble vont faire antenne et ramasser tout les rayonnements du coin). Déjà que le composant n'est pas très précis (précision de +/-2°C).
Bref pas terrible.
Un capteur analogique est plutot limité à des usages "locaux" c'est à dire très proche avec cables très courts.

- en numérique, le capteur fait la mesure de température et transmet directement la valeur en numérique sous la forme généralement d'une liaison série. Il y a plusieurs standards de liaison série pour capteur tels que 1-Wire (1 fil), I2C (2 fils), SPI (3 ou 4 fils).
Il n'y a plus de problème de traduction de la mesure car elle se fait directement dans le composant. Il ne reste plus qu'un problème de transmission numérique qui somme toute est généralement plus simple tant que (comme indiqué plus haut) tu ne cherches pas à aller trop vite.

Donc pour ton problème de capteur situé à 100m de l'Arduino, le numérique s'impose.
De mon point de vue l'I2C sera le plus fiable car plus facile de contrôler la transmission (vitesse, ...). tu peux ainsi relier ton capteur à l'Arduino avec un câble téléphonique à 4 brins (VCC, GND, SCL et SDA). Comme dit plus haut, il va falloir "tuner" un peu les résistances pour que çà fonctionne bien. Un oscilloscope serait bien pour cela mais je suppose que tu n'as pas ce genre d'instrument.
Le 1-Wire présente l'inconvénient d'avoir des timings fixés. Il n'est pas possible de "tuner" la vitesse pour limiter les problèmes de transmission. Donc je l'écarterais dans un premier temps.

Bonsoir barbudor
Je n'ai aucune experience d'I2C sur "grande longueur"
en ce qui concerne le 1-W , 100m c'est illusoire si utilisation du mode parasitic power (possible en theorie, mais grosse galere de MaP)
en revanche en mode alimenté localement (sur point ou distribué par un 3eme fil) c'est une solution fiable en prenant bien en compte les point suivant :
le 1W est un bus serie lent, au louchometre de precision  smiley-mr-green il faut tabler sur une acq/seconde
mais en thermometrie "domestique" le taux d'actualisation et la precision des capteurs est "somme toute" relative  smiley-mr-green
Logged

Moselle (FR)
Offline Offline
Edison Member
*
Karma: 16
Posts: 1247
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonsoir Artouste,

Personnellement je suis fan du bus I2C distance courte, longue ou radio, et c'est souvent une solution élégante et fiable.
Les solutions radio peuvent également remplacer les liaisons filaires. Solutions faciles à mettre en œuvre avec les modems radios existantes sur le marché.
icare
Logged

2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

68 aujourd'hui
Offline Offline
Edison Member
*
Karma: 41
Posts: 2257
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Une autre différence entre le 1wire et l'I2C c'est qu'en 1wire on ne transmet plus l'horloge, elle est re-créer par le récepteur à partir du flot de données.
Il n'y a plus à vérifier que la synchronisation temporelle horloge/data est conservée. Le maintien de la synchro sur quelques mètre est trivial mais ce n'est pas gagné d'avance sur plus de 100m.
C'est un plus du 1Wire, surtout quand on n'a pas d'oscillo.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci bien pour vos avis et explication.
Il est donc preferable de prendre une sonde numerique.
Maitnenant il reste à choisir entre 1-wire et I2C.
Si j'ai bien compris l'I2C sera de meilleur qualité sur une grande distance.
Logged

68 aujourd'hui
Offline Offline
Edison Member
*
Karma: 41
Posts: 2257
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Difficile de répondre pour moi les deux ont des avantages et des inconvénients.
Le seul juge sera le terrain.
Si j'étais a ta place je fera un essai avec les deux types de sonde sur 10m/50m avant de passer à 100m et plus.
Le coût des sondes sera dérisoire devant celui du câble.
Logged

Pages: [1] 2   Go Up
Jump to: