Ritengo poco utile il valore restituito dalle DS18S20 con 2 cifre decimali dopo la virgola e mi piacerebbe sapere
come posso ridurre la "risoluzione" del DallasTemperature a un solo valore dopo la virgola?
Grazie
P.S. sensors.setResolution non fa quello che voglio
Due strade.
O come detto da @campero, quando stampi il valore float usi il secondo parametro della print() mettendo 1 (un decimale)
oppure fai un calcolo per ammazzare il secondo decimale. Moltiplichi per 10, prendi la parte intera e poi ridividi per 10.
La libreria non ha un metodo o un settaggio per il numero di decimali. la setPrecision imposta il numero di bit della conversione, dal file .h:
// set global resolution to 9, 10, 11, or 12 bits
void setResolution(uint8_t);
nid69ita:
oppure fai un calcolo per ammazzare il secondo decimale. Moltiplichi per 10, prendi la parte intera e poi ridividi per 10.
Aggiungerei anche 5, almeno non perdi il "peso" della seconda cifra decimale.
Esempio, se hai 20,11 è un conto, se hai 20,19 è un altro.
Vediamo i due casi:
20.11*10 = 201.1
201.1+5 = 201.6
Int(201.6) = 201
201/10 = 20.1