Citazione:
Originalmente inviato da gRiNgO Romoloman ti devo un birra!!! 
ho modificato leggermente il tuo sketch per adattarlo al sensore: Codice: dtostrf(temp,5, 1, buffer);
giusto per non essere asino che fa le cose senza capire cosa sono i dati tra parentesi del dtostrf?
grazie e buone feste |
temp: (ovviamente la temperatura, il float letto dal sensore)
5: lunghezza minima del campo includo il punto e il decimale
1: numero dei decimali dopo la virgola
buffer: stringa temporanea per mettere il risultato
perchè ho scelto 5 ed 1 ?
dubito che il tuo range di temperatura possa eccedere i -99.9 ed essere superiore ai 999.9 gradi in tutti e due i casi come vedi la lunghezza massima è 5 caratteri
usando la lunghezza massima eviti che il numero si muova sul display al massimo ti trovi degli spazi prima.
1 perché il decimo di grado credo ti basti.
la domanda che potresti porti è perché con 5 come lunghezza minima hai allocato 10 byte nel buffer ?
In realtà in effetti può essere esagerato, bastavano 6 caratteri (ricordati che una stringa ha sempre in fondo il carattere '\0'.
per fare le cose formalmente corrette la cosa migliore sarebbe verificare con un if che temp sia nell'intervallo corretto e visualizzarlo solo in quel caso, prevenendo errori di lettura. Qualora infatti la dtostr dovesse ritornare un valore fuori range ci sarebbero due problemi... il primo di visualizzazione ed i secondo di buffer overflow.