Hvordan skrive ut flere variabler i en enkelt linje Arduino seriell skjerm

Hvordan skrive ut flere variabler i en enkelt linje Arduino seriell skjerm
Arduino er et integrert utviklingsmiljø basert på både maskinvare og programvare. Arduino -brett kan programmeres ved hjelp av en utvidelse av C/C ++ språk. De fleste Arduino -programmeringsspråkfunksjoner er som C -språk. Å ha en god kunnskap om Arduino -programmering hjelper til med å bygge et kvalitetsprosjekt.

Mens vi jobber med Arduino, må vi skrive ut flere data på en seriemonitor. Normalt Serie.skrive ut Funksjon brukes, men i dag vil vi fremheve en annen funksjon kalt som Sprintf og vil se hvordan denne funksjonen hjelper til med å skrive ut flere variabler i en enkelt linje på seriemonitoren.

Bruke serie.skrive ut()

Normalt når vi ønsker å skrive ut en variabel eller et utgangsresultat, bruker vi seriell.trykk () eller seriell.println () for å skrive ut hvert resultat på neste linje. Anta at hvis vi har flere variabler, må vi skrive antall linjer for seriell utskrift, avhengig av den totale variabelen.

Her er eksemplet som illustrerer bruk av serie.skrive ut():

I eksemplet ovenfor har vi initialisert tre variablers heltall A, B og C. For å skrive ut alle tre variablene på en seriemonitor, må vi skrive en kode med seriell trykk for hver enkelt. Her brukte vi tre variabler som fører oss til å skrive seks kodelinjer bare for å vise oss på seriell skjerm. Tenk deg å skrive en kode for fem eller 10 variabler og skrive dem ut over en seriemonitor.

Dette er når Sprintf () -funksjonen kommer inn, la oss diskutere hvordan du skriver ut alle tre variablene i en enkelt kodelinje.

Skriv ut flere variabler ved hjelp av Arduino Sprintf () -funksjon

Sprintf () står vanligvis for “Strengutskrift”. I motsetning til normal seriell utskrift viser den ikke direkte utgangen av variabler på seriell monitor først lagrer det utgangen i en spesifisert røyevariable buffer.

De Sprintf () lar brukeren sende en formatert utdata til en char -matrise der resultatet blir lagret. For å vise strengen der variabler er formatert, serien.Print () Funksjon brukes.

int sprintf (char * str, const char * format, ...);

Hvordan bruke Arduino Sprintf ()

Sprintf () kommer nyttig når vi må skrive ut flere variabler i en enkelt linje, ved å bruke de tre kodelinjene vi kan skrive så mange variabler som vi vil. Her er den grunnleggende syntaksen for å skrive flere variabler ved bruk av Sprintf ():

char buffer [40];
Sprintf (buffer, "sum av antall %d og tall %d er %d", a, b, c);
Serie.println (buffer);
  1. Først må vi initialisere en tegnarray der utgangsstrengen blir lagret.
  2. I det andre trinnet vil Sprint () -funksjonen bli brukt som vil kombinere tekst og variabler i en linje.
  3. Endelig i siste trinn serien.PRINT () -funksjonen vil vise den formaterte strengen på seriemonitoren.

Eksempelkode

Nå skriver vi ut koden ovenfor ved hjelp av Sprintf () funksjon.

La oss undersøke hver kodelinje i detalj nå.

Først i kode initialiserer vi seriell kommunikasjon ved hjelp av serien.Begynn () og sette baud rate til 9600. Senere initialiserer sløyfeseksjonen tre variabler A, B og C. Summen av de to første variablene A og B vil bli lagret i den tredje variabelen C. Kommer nå til hoveddelen av koden.

char buffer [40];

Størrelsen på tegnarrayen må være så stor som det enkelt kan lagre utgangsvariabler og tekst. Tell antall tegn som trengs for å lagre og lage bufferen med nøyaktig samme størrelse.

Sprintf (buffer, "sum av antall %d og tall %d er %d", a, b, c);

Neste linje i koden er selve Sprintf () -funksjonen. Det krever 2 argumenter; Det første argumentet vil lagre karakteren inne i buffergruppen. Det andre argumentet er strengen som vi ønsker å lage. Her for å vise variabelen i streng vi har brukt Formatspesifikasjoner.

Formatspesifikasjon er %-tegnet etterfulgt av bokstaven kjent som Formatkarakter. Karakterspesifikasjoner er bokstaven etter % tegn. Begge disse forteller sprinten () hvilken datatype som skal brukes til tilgjengelige data.

Noen vanlige karakterspesifikasjoner er:

Karakter Data-type
D eller i Signert desimal heltall
u Usignert desimal heltall
s Streng med tegn

I eksemplet ovenfor har vi initialisert tre formatspesifikasjoner ved bruk av %d Noe som betyr at vi vil at 3 variabler skal lagres i utgangsstrengen som Signert desimal heltall. For å få verdiene til disse tre variablene, legges 3 argumenter rett etter strengen. For hvert formatspesifikasjon må vi passere en egen verdi og hver av dem atskilt med komma.

Merk: Sprintf () -funksjonene i Arduino kan ikke håndtere flytende punktverdier. Så hvis vi trenger å skrive ut et desimaltall noe som 3.14 eller 12.12, først må vi konvertere den flyteverdien til en streng, og deretter skrive ut på skjermen. En funksjon DTOSTRF () brukes ofte til å gjøre dette.

Konklusjon

Mens vi programmerer Arduino -brettet, må vi se etter alle tilgjengelige teknikker og funksjoner som kan optimalisere koden vår. Å ha en minimalistisk og effektiv kode hjelper til med å kjøre Arduino raskt. Mens vi skriver ut data på seriemonitoren, bruker vi seriell utskriftsfunksjon, men her har vi dekket hvordan Sprint () -funksjonen kan hjelpe Arduino til å skrive ut flere variabler over en enkelt linje.