Stampare su monitor

buon giorno a tutti,
vorrei chiedere se è possibile stampare sul terminale ( monitor) di Arduino) a colonne ben definite
al fine di avere dei dati incolonnati: se si, come si fa ?
Grazie
ciao

Puoi usare sprintf() o snprintf()(Leggi la documentazione sui formati)

char lineBuffer[80];
long a, b;

void setup() {
  Serial.begin(115200); // monitor seriale a 115200 baud

  Serial.println(F("\n*** Destra ***"));
  for (int i = 0; i < 10; i++) {
    a = random(-100000, 100000);
    b = random(-100000, 100000);
    snprintf(lineBuffer, 80, "%10ld + %10ld --> %10ld", a, b, a + b);
    Serial.println(lineBuffer);
  }

  Serial.println(F("\n*** Sinistra ***"));
  for (int i = 0; i < 10; i++) {
    a = random(-100000, 100000);
    b = random(-100000, 100000);
    snprintf(lineBuffer, 80, "%-10ld + %-10ld --> %-10ld", a, b, a + b);
    Serial.println(lineBuffer);
  }

  Serial.println(F("\n*** 0 Padding ***"));
  for (int i = 0; i < 10; i++) {
    a = random(-100000, 100000);
    b = random(-100000, 100000);
    snprintf(lineBuffer, 80, "% 010ld + % 010ld --> % 010ld", a, b, a + b);
    Serial.println(lineBuffer);
  }
}

void loop() {}

→ il monitor seriale a 115200 baud


*** Destra ***
    -83193 +     -24751 -->    -107944
    -49927 +      43658 -->      -6269
      8930 +     -88728 -->     -79798
    -72456 +     -49122 -->    -121578
     77923 +     -62291 -->      15632
     64440 +     -61835 -->       2605
    -15508 +     -56958 -->     -72466
    -92013 +      22503 -->     -69510
    -17673 +      31729 -->      14056
     78840 +      42612 -->     121452

*** Sinistra ***
44303      + -66831     --> -22528    
-82291     + -2843      --> -85134    
29560      + 70933      --> 100493    
-6901      + -19722     --> -26623    
51816      + 95335      --> 147151    
-903       + -92174     --> -93077    
-86488     + 29267      --> -57221    
23810      + -22367     --> 1443      
80979      + 79149      --> 160128    
-63421     + 58821      --> -4600     

*** 0 Padding ***
 000011967 + -000089328 --> -000077361
 000001393 + -000080664 --> -000079271
 000025485 + -000008255 -->  000017230
-000074772 + -000005909 --> -000080681
-000059806 +  000086357 -->  000026551
-000064999 +  000021153 --> -000043846
-000083292 +  000057944 --> -000025348
 000015668 +  000071490 -->  000087158
 000088124 +  000002196 -->  000090320
 000009530 + -000039097 --> -000029567

Puoi anche usare il carattere di tabulazione ‘\t’ ma hai meno controllo rispetto a snprintf()

grazie mille per la soluzione suggerita
ciao

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.