Pages: [1]   Go Down
Author Topic: [Risolto] Dubbi sul bus dei DS18B20  (Read 354 times)
0 Members and 1 Guest are viewing this topic.
Corchiano
Offline Offline
Newbie
*
Karma: 1
Posts: 31
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Stò utilizzando dei DS18B20 per realizzare un  sistema di lettura delle temperature in 12 punti differenti con una lunghezza di cavo max di 30m con bus 3 fili,non in modo parassitario.
Noto che aggiungendo più di 4 sensori non riesco più ad avviare il bus ed a leggere gli indirizzi. smiley-eek-blue
ho provato ad alzare ed abbassare la resistenza a mettere capacità sull'alimentazione ma il risultato non cambia di una virgola.
Qualcuno ha qualche suggerimento??
Grazie anticipatamente .
« Last Edit: July 17, 2013, 01:05:04 am by welby1977 » Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 114
Posts: 7194
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

--> http://www.maximintegrated.com/app-notes/index.mvp/id/148
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Corchiano
Offline Offline
Newbie
*
Karma: 1
Posts: 31
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie PaoloP per la dritta! effettivamente stavo cercando male.
Non avevo cercato le specifiche del bus 1-wire ma ho fatto ricerche solo sui sensori in modo specifico.
Farò alcune prove sperando di ottenere risultati accettabili.
Logged

Corchiano
Offline Offline
Newbie
*
Karma: 1
Posts: 31
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho risolto il problema di comunicazione,  in parte era legato al cavo,  fondamentalmente era un problema di tipo software della libreria OneWire.
Il cavo che ho utilizzato è un cavo 2x2x0,6 cavo telefonico 4 fili intrecciati in 2 coppie, bianco-arancione e bianco blu, utilizzate per i sensori:
 bianco-bianco>gnd
 arancione>+5Vcc
 blu> segnale
 La rete e di tipo 3 (Star) ha peso 35m e raggio 20m

La libreria così com'è non riesce a riconoscere più di 4 sensori. per togliere questo limite bisogna seguire il post:
http://forum.arduino.cc/index.php/topic,18231.0.html#3
che suggerisce un "ARDITO" commento di una riga di codice nel file OneWire.cpp alla linea 286

 263                } else {                            // we are blazing new tree, take the 0
  264                  a = 0;
  265                  searchJunction = i;
  266                  done = 0;
  267                }
  268                // lastJunction = i;   <---- linea da commentare(//)
  269            }
  270            if ( a) address[ ibyte] |= ibit;
  271            else address[ ibyte] &= ~ibit;
Sembrerebbe funzionare. Il sistema legge senza problemi 12 temperature di 12 ds18b20 e le invia via modulo nrf24L01...

Ma questa è un'altra storia.
Logged

Pages: [1]   Go Up
Jump to: