OneWire malfunzionamento dopo aggiornamento librerie

Buonasera a tutti,
da alcuni giorni sono alle prese con un problema che non riesco a risolvere/capire.
Circa 2 anni fa ho costruito una rete di sensori DS18B20 di circa 80m di lunghezza (distanza cavo massima dal micro al sensore più lontano) con collegati 7 sensori (a sonda). I sensori sono con trasmissione Onewire e li alimento utilizzando una linea a 9v che poi riduco prima di entrare nella sonda a 5v attraverso un regolatore. Sulla stessa schedina che utilizzo per ridurre il voltaggio ho portato anche GND e il cavo dati della OneWire in modo da poter collegare le sonde attraverso morsetti alla linea di trasmissione. Il programma registrava le temperature senza problemi e le mostrava su un LCD. Fin qui nessun problema, solo il sensore più lontano a volte (specialmente di inverno con temperature molto rigide) non comunicava i dati. Circa 2 mesi fa ho ricompilato il programma in quanto avevo inserito delle modifiche su dei calcoli delle temperature (il sistema serve a conteggiare delle ore freddo ovvero ore in cui la temperatura dei vari punti rimane tra 2 temperature impostate) e variato alcuni messaggi a schermo.
Dopo la ricompilazione i sensori non vengono più letti.
Tra la prima compilazione e quella che ha causato problemi sono state aggiornate le librerie DallasTemperature e OneWire e anche la IDE (1.8.5 in quanto ho cambiato versione del SO).
Nei giorni scorsi ho fatto i seguenti controlli:

  • misurato il voltaggio sulla linea dati 5.04v e sulla linea di alimentazione 9.03v. Controllato i cavi, la resistenza massima misurata è circa di 3 Ohm su tutto il percorso.
  • provato con l'alimentazione parassita (così mi legge i sensori ma a volte perdo le informazioni in quanto la linea viene tirata solo da un potenziometro)
  • sostituito i regolatori che mi danno i 5v per mantenere alta la linea e i 9v per la linea di alimentazione, inoltre anche il potenziometro 10k l'ho sostituito con una resistenza da 2.2k.
  • fatto una prova con un sensore solo e funziona solo se tengo staccato il cavo della linea di trasmissione dal sensore in avanti. Appena ricollego il cavo non mi viene riconosciuto più nemmeno il sensore "vicino".
  • Ipotizzando anche che forse avevo commesso qualche errore nel programma ho caricato uno degli esempi della DallasTemperature per leggere più sensori e non funziona nemmeno questo se collego i sensori alla linea "lunga" ma solo se li collego vicini al micro (come con lo sketch che avevo scritto io). Stessa cosa provando ad utilizzare l'esempio della OneWire per la lettura dei DS18B20 (con 2 sensori collegati vicino funziona ma appena collego il cavo anche senza altri sensori non legge più nulla)

Il cavo utilizzato è un multipolare da 0.75mmq a 10 fili dei quali utilizzo solo 3 per questa applicazione mentre gli altri mi servono a comandare delle elettrovalvole a 24vca, non ci sono comunque collegamenti tra i vari cavi.

Sulla schedina di alimentazione ho aggiunto un condensatore elettolitico da 150uF sui 9v che sono gli stessi che alimentano Arduino tramite Vin.

La scheda utilizzata è un Mega 2650.

Le prossime prove che vorrei fare è seguire quanto consigliato dalle Guidelines Maxim

ovvero inserire resistenze da 150Ohm tra il cavo di ciascun sensore e la linea principale nel punto di innesto, questo dovrebbe permettere una riduzione del rimbalzo.

Chiedo consigli su come risolvere il problema e possibilmente capire perchè con le librerie aggiornate non funziona più un sistema che prima funzionava.
Grazie

Hai provato a ricompilare installando un IDE vecchio con librerie vecchie (situazione precedente) ?

Non trovo più le librerie vecchie. Prima della 2.0 Onewire non si trova più nulla.
Per l'IDE ho provato a compilare con la vecchia 0023 ma non supporta altre funzioni di altre librerie che utilizzo.

Ho avuto lo stesso problema con la libreria della sonda DHT22 della Sparkfun.
Con l'IDE 1.0.6 tutto ok, con la 1.8.5. non legge più.

Quindi, o aggiorno libreria o rimetto la 1.0.6. Quindi, per ora uso ancora IDE 1.0.6.