Buongiorno a tutti.
Ho sviluppato un progetto che implica l'utilizzo di un sensore di temperatura DS18B20 che, al momento, gestisco tramite due librerie nello stesso sketch: OneWire e DallasTemperature (la quale richiede comunque l'altra libreria).
Lo sketch mi consente di gestire direttamente tutta la sonda termica con la libreria OneWire, relegando alla libreria DallasTemperature la sola impostazione della risoluzione (di default è 9bit, a me serve a 12bit) tramite il comando
sensors.begin();
sensors.setResolution(12);
Volendo eliminare la libreria DallasTemperature (visto che mi occupa spazio prezioso e fa una sola operazione ad avvio macchina poi basta), che comando devo usare nella libreria OneWire per poter impostare la risoluzione a 12bit?
No, la libreria OneWire è indipendente, mentre la libreria DallasTemperature si appoggia alla prima.
Presumo quindi che la libreria OneWire sia in grado di impostare la risoluzione senza l'ausilio di altre librerie, ma non ho capito come fare... >:(
La libreria OneWire implementa un protocollo di comunicazione generico. Il DS18B20 utilizza tale protocollo, ma non è l'unico dispositivo esistente a farlo. La libreria DallasTemperature implementa il protocollo applicativo di quella particolare serie di sensori, e per farlo non si mette certo a reimplementare il protocollo di comunicazione, ma usa quello già esistente.
Questo non vuol dire che non puoi liberarti della DallasTemperature e utilizzare OneWire per comunicare direttamente col sensore, ma dubito che se anche così facessi riusciresti a farlo risparmiando molto spazio rispetto a quello occupato dalla DallasTemperature. Dubito che quest'ultima abbia molte cose inutili...
Potresti anche reimplementare solo quanto strettamente necessario della OneWire, ma... temo impazziresti :D.
cerca nel tuo PC l'header che includi e magicamente vedrai il codice, ricorda che Arduino non usa vere librerie ma solo moduli e quindi per compilare hai obbligatoriamente il codice sorgente sul tuo PC.