Arduino dtostrf -funksjon -Vend flottørene dine i strengene

Arduino dtostrf -funksjon -Vend flottørene dine i strengene
Mens vi programmerer Arduino -tavler, må vi takle forskjellige programmeringsteknikker for å manipulere dataene deretter. For å håndtere data trenger vi flere funksjoner som hjelper oss å skrive kode for prosjektet vårt. En av de mye brukte funksjonene er DTOSTRF () som konverterer doble og flyteverdier til streng med definert presisjon.

Arduino dTOSTRF () -funksjon

Arduino dTOSTRF () -funksjon konverterer doble og flytende punktverdier til en streng. Ved hjelp av denne funksjonen blir en dobbel verdi gitt og konvertert til en ASCII -representasjonsverdi som vil bli lagret inne i strengen. Innringeren er ansvarlig for å gi tilstrekkelig lagring inne i strengen.

DTOSTRF () Funksjon hjelper mens du viser en tekst på en LCD -matriksskjerm ved hjelp av Arduino. Når dataene er konvertert til en streng, vil den fungere som en tekst som kan vises hvor som helst, det kan være en OLED -skjerm eller en hvilken som helst annen skjermmodul.

La oss se syntaksen den følger.

Syntaks

Følgende er syntaks for DTOSTRF () -funksjonen:

DTOSTRF (FloatValue, MinStringWidth, NumafterDecimal, Charbuf_To_Store_String);

Parametere

Denne funksjonen tar fire parametere for å konvertere dobbelt til en ASCII -verdi som er lagret i strengen:

1. FloatValue: Det er den første parameteren som tar flyteverdien som vi ønsker å konvertere til streng.

2. MinstringWidth: Dette er den andre parameteren som definerer minimum feltbredde på utgangsstrengen. Hvis vi setter minimum strengbredde mindre enn de konverterende flytende punktverdiene, vil de ekstra sifrene fremdeles vises, og for å telle desimal og negativt tegn er også inkludert som mellomrom. På den annen side, hvis den definerte bredden for streng er mer enn å konvertere verdien, vil de ekstra verdiene bli fylt med blanke mellomrom.

3. numafterDecimal: Tredje parameter er presisjon som beskriver antall sifre etter desimalpunkt. Det avrunder de ekstra sifrene til antallet som er spesifisert i presisjon etter desimalpunkt.

4. Charbuffer: Endelig argument er hvor streng vil bli lagret. Dette er en slags char -matrise som har definert størrelse. Mens du vurderer skiltet, må du vurdere å vurdere:

  • Må være stor nok til å lagre verdi.
  • Tatt i betraktning størrelse må huske plass til desimal “.” og mulig negativt “-” skilt.
  • 1 for null avsluttende karakter “\ 0”.

Følgende er datatypen disse fire parametrene tar:

  • Første parameter er en variabel som er av type dobbelt.
  • Andre parameter er av type røye som spesifiserer bredde av utgangsstrengen.
  • Tredje parameter er av type røye som spesifiserer Antall sifre Etter desimalstedet.
  • Fjerde parameter er en variabel av typen røye hvilken lagrer konverterte verdier.

Returdata

En peker til den konverterte strengen returneres ved hjelp av DTOSTRF () funksjon.

Eksempelkode

dobbel kilde = 789.127; /*Kilde som en dobbel variabel initialiseres*/
Char destinasjon [8]; /*Destinasjonsopprettsstørrelse definert*/
void setup ()
Serie.Begynn (9600); /*Seriell kommunikasjon begynner*/
DTOSTRF (kilde, 5,2, destinasjon); /*Dobbel konvertert til streng*/
Serie.println (destinasjon); /*Destinasjonsstreng skrives ut*/

void loop ()

Her i ovenfor kode er en dobbeltpunktskildevariabel definert med verdi av “789.127 ” Neste en destinasjonsbufferarray initialiseres med en størrelse på "8". I oppsettdelen ved bruk av DTOSTRF () -funksjonskilde vil dobbeltpunktverdien bli konvertert til en streng med minimumsbredde på 5 og desimal presisjon på 2 sifre etter desimal sted. På slutten av koden skrev vi ut resultatet på seriemonitoren.

Produksjon

Utgangsterminalen viser oss en streng som er avrundet til 2 desimalpunkter.

Konklusjon

For å konvertere dobbel verdi til en streng, brukes en Arduino AVR -programmeringsfunksjon kjent som DTOSTRF (). Denne funksjonen tar fire parametere: en kilde som er en flytende punktverdi som vil bli konvertert til en destinasjonsstreng som har definert minimumsbreddeverdi og for presisjon en parameter er definert som avrundet til spesifikke desimalverdier. Denne artikkelen vil bidra til å forstå alle disse på en bedre måte.