Como concatenar strings e variáveis utilizando a função Serial.print() 4

A função Serial.print() é usada em quase todos os códigos para imprimir na tela do monitor serial o valor lido pelo sensor, testar laços de repetição ou condicionais, monitorar a posição de atuadores e até mesmo para uma experiência com o usuário em forma de texto. Entretanto, quando temos muitas variáveis para serem mostradas em uma mesma frase, o código fica poluído e confuso. Neste post vamos aprender como concatenar strings e variáveis em apenas uma linha utilizando a função Serial.print().

Função serial.print() sem concatenação

Convencionalmente, usamos uma função Serial.print(var) para cada variável ou string e na última palavra usamos Serial.println(var) para quebrar a linha. Na imagem abaixo mostro a forma tradicional de programação:

Imagem 1 - Como concatenar strings e variáveis utilizando a função Serial.print()

Esse código imprime um contador a cada 1 segundo usando a variável “x” que inicia com zero. Na primeira passagem pelo void loop será impresso na tela do computador a seguinte mensagem “Contador: 0 segundos.” . Após passar por essas 3 primeiras linhas com a função Serial.print(), responsável por realizar a impressão no monitor serial de seu computador, o programa executa o quarto comando dentro do void loop que é a função delay(). Essa função é responsável por parar o programa por 1000 milissegundos, ou seja, 1 segundo. Após a contagem desse tempo a variável “x” será incrementada, ou seja somado, 1 unidade com o comando x++ ( a outra forma de escrever esse comando seria: x = x + 1;).

Após essa última linha o programa encontra a “}” e voltará para o início do void loop que passará por tudo de novo, só que agora com a variável “x” valendo 1 e imprimindo na tela a seguinte mensagem: “Contador: 1 segundos.”. Observe a imagem abaixo que mostra como você verá em seu monitor.

Imagem 2 - Como concatenar strings e variáveis utilizando a função Serial.print()

Como concatenar strings e variáveis utilizando a função Serial.print()?

Agora, veremos como podemos obter o mesmo resultado na tela do monitor usando apenas uma linha de programação no lugar das 3 linhas que repetem a função Serial.print(). Para isso, utilizaremos a técnica de concatenação.

A concatenação é um termo usado em computação para designar a operação de unir o conteúdo de duas strings (palavras). Por exemplo, considerando as strings “casa” e “mento” a concatenação da primeira com a segunda gera a string “casamento”. Essa é a técnica que utilizaremos com o nosso Arduino e pode ser observada na imagem abaixo:

Imagem 3 - Como concatenar strings e variáveis utilizando a função Serial.print()

Observando a imagem acima, o programa não possui alterações até o void loop. No void setup temos o comando que inicializa a comunicação serial entre o Arduino e o seu computador a uma taxa de transmissão de 9600 baunds (Serial.begin(9600);).

O segredo do nosso post se aplica agora nesse void loopao invés de escrevermos 3 vezes a função Serial.print(), iremos escrevê-la apenas uma vez como Serial.println(), já incluindo o “ln” para garantir a quebra de linha.

  • Entre as palavras que queremos concatenar, precisaremos usar o “+” para adicionar uma palavra com a outra.
  • Quando temos uma palavra dentro dos parênteses da função Serial.print(“MakerHero”) se insere as aspas duplas.
  • Se a impressão for referente a uma variável, se escreve de forma normal: Serial.print(x).

Porém, devemos considerar que a variável é um número inteiro e o processo de concatenação é de strings, ou seja palavras. Sendo assim, antes é preciso transformá-la em uma string. Essa transformação é feita adicionando o termo String junto da minha variável (x).

Logo com todas as explicações dadas, basta escrever o comando correto Serial.println(“Contando: ” + String(x) + ” segundos.”); e sua mensagem será impressa da forma desejada, “Contador: 0 segundos.”.

Conclusão

Existem diversas formas de escrever um código e chegar ao resultado final correto, porém, algumas boas práticas de programação facilitam a leitura e entendimento de outros usuários que venha a compartilhar o projeto com você. Podem também melhorar o processamento de seu Arduino, economizando memória ou evitando travamento de sensores. O mundo Arduino é muito rico, e estamos aqui para ajudar você a desvendá-lo.

Gostou de aprender como concatenar strings e variáveis utilizando a função Serial.print()? Então deixe seu comentário aqui embaixo! Além disso, não deixe de visitar outros conteúdos do blog da MakerHero e o meu canal no Youtube: Sandro Mesquita – Roboticamente. Bons estudos!

Faça seu comentário

Acesse sua conta e participe

4 Comentários

  1. Gostaria de saber como fazer para escrever da seguinte forma:

    int x;
    string g;
    sprintf(g, “Temperatura: %d ºC”, x);
    Serial.println(g);

    sei que funciona para variavel int, mas e para float? (%f creio eu), int8?, int16?, byte?, long int?,….
    há alguma tabela que informe isso?

  2. Parabéns professor Sandro Mesquita, continue assim com esse empenho.

    #sandromesquita

  3. Esse meu professor é muito ferra, parabéns Sandro.

    Bianôr Oliveira de Medeiros