Arduino Dtostrf Funzione -Morisci i tuoi galleggianti in stringhe

Arduino Dtostrf Funzione -Morisci i tuoi galleggianti in stringhe
Durante la programmazione delle schede Arduino dobbiamo affrontare diverse tecniche di programmazione per manipolare i dati di conseguenza. Per gestire i dati abbiamo bisogno di più funzioni che ci aiutino a scrivere codice per il nostro progetto. Una delle funzioni ampiamente utilizzate è dtostrf () che converte i valori del doppio e fluttuare in stringa con precisione definita.

Funzione Arduino dtostrf ()

La funzione Arduino dtostrf () converte i valori doppi e fluttuanti in una stringa. Usando questa funzione, un doppio valore viene passato e convertito in un valore di rappresentazione ASCII che verrà memorizzato all'interno della stringa. Il chiamante è responsabile di fornire un archivio sufficiente all'interno della stringa.

dtostrf () La funzione aiuta durante la visualizzazione di un testo su uno schermo matrice LCD usando Arduino. Una volta che i dati vengono convertiti in una stringa, fungerà da testo che può essere visualizzato ovunque può essere uno schermo OLED o qualsiasi altro modulo di visualizzazione.

Vediamo la sintassi che segue.

Sintassi

Di seguito è riportata la sintassi della funzione dtostrf ():

dTOSTRF (floatvalue, Minstringwidth, NimafterDecimal, chabuf_to_store_string);

Parametri

Questa funzione richiede quattro parametri per convertire il doppio in un valore ASCII memorizzato all'interno della stringa:

1. floatvalue: È il primo parametro che prende il valore float che vogliamo convertire in stringa.

2. Minstringwidth: Questo è il secondo parametro che definisce la larghezza minima del campo della stringa di output. Se impostiamo la larghezza della stringa minima inferiore ai valori a punto mobile di conversione, le cifre extra verranno comunque visualizzate e per il conteggio di decimale e segno negativo è anche incluso come spazi. D'altra parte, se la larghezza definita per la stringa è più che convertire il valore con cui verranno riempiti i valori extra spazi vuoti.

3. NUMAFTERDECIMAL: Il terzo parametro è precisione che descrive il numero di cifre dopo il punto decimale. Runga le cifre extra sul numero specificato in precisione dopo decimale punto.

4. Charbuffer: L'argomento finale è dove verrà archiviato la stringa. Questo è una specie di array di carbone con dimensioni definite. Considerando il segno assicurarsi di considerare:

  • Deve essere abbastanza grande da conservare il valore.
  • Considerare le dimensioni deve ricordare lo spazio per decimale "." e possibile negativo "-" cartello.
  • 1 per il carattere di terminazione nullo "\ 0".

Di seguito è riportato il tipo di dati che questi quattro parametri prendono:

  • Il primo parametro è una variabile di tipo Doppio.
  • Il secondo parametro è di tipo CHAR che specifica il larghezza della stringa di output.
  • Il terzo parametro è di tipo CHAR che specifica il Numero di cifre Dopo il luogo decimale.
  • Il quarto parametro è una variabile di tipo CHAR Quale memori valori convertiti.

Restituire dati

Un puntatore alla stringa convertita viene restituito usando dtostrf () funzione.

Codice di esempio

doppia sorgente = 789.127; /*La sorgente come doppia variabile viene inizializzata*/
CHAR DETTAGLIE [8]; /*Dimensione dell'array di destinazione definita*/
void setup ()
Seriale.Inizia (9600); /*Inizia la comunicazione seriale*/
dtostrf (fonte, 5,2, destinazione); /*Convertito doppio in stringa*/
Seriale.println (destinazione); /*La stringa di destinazione è stampata*/

void loop ()

Qui in codice sopra una variabile di origine a doppio punto è definita con un valore di “789.127 " Successivamente un array di buffer di destinazione viene inizializzato con una dimensione di "8". Nella parte di setup utilizzando la sorgente di funzione dtostrf (), il valore a doppio punto verrà convertito in una stringa con una larghezza minima di 5 e precisione decimale di 2 cifre dopo decimale. Alla fine del codice, abbiamo stampato il risultato sul monitor seriale.

Produzione

Il terminale di uscita ci mostra una stringa che è arrotondata a 2 punti decimali.

Conclusione

Per convertire il doppio valore in una stringa viene utilizzata una funzione di programmazione Arduino AVR nota come dtostrf (). Questa funzione richiede quattro parametri: una sorgente che è un valore a punto mobile che verrà convertito in una stringa di destinazione con un valore di larghezza minimo definito e per la precisione viene definita un parametro che arrotonda su valori decimali specifici. Questo articolo aiuterà a capire tutto questo in modo migliore.