Como imprimir várias variáveis ​​em uma única linha Arduino serial Monitor

Como imprimir várias variáveis ​​em uma única linha Arduino serial Monitor
Arduino é um ambiente de desenvolvimento integrado baseado em hardware e software. As placas de Arduino podem ser programadas usando uma extensão da linguagem C/C ++. A maioria das funções de linguagem de programação do Arduino são como C Linguagem. Ter um bom conhecimento da programação Arduino ajuda na construção de um projeto de qualidade.

Enquanto trabalhamos com o Arduino, devemos imprimir vários dados em um monitor serial. Normalmente Serial.imprimir A função é usada, mas hoje destacaremos outra função nomeada como sprintf e veremos como essa função ajuda a imprimir várias variáveis ​​em uma única linha no monitor serial.

Usando serial.imprimir()

Normalmente, quando queremos imprimir uma variável ou um resultado de saída, usamos serial.print () ou serial.println () para imprimir todos os resultados na próxima linha. Suponha que, se tivermos várias variáveis, devemos escrever números de linhas para impressão em série, dependendo da contagem total da variável.

Aqui está o exemplo que ilustram o uso de série.imprimir():

No exemplo acima, inicializamos três números inteiros de variáveis ​​a, b e c. Para imprimir todas as três variáveis ​​em um monitor serial, devemos escrever separadamente um código de impressão em série para cada. Aqui usamos três variáveis ​​que nos levam a escrever seis linhas de código apenas para nos mostrar no monitor serial. Agora imagine escrever um código para cinco ou 10 variáveis ​​e imprimi -las em um monitor serial.

É quando a função sprintf () entra, vamos discutir como imprimir todas as três variáveis ​​em uma única linha de código.

Imprima várias variáveis ​​usando a função Arduino Sprintf ()

O sprintf () geralmente significa “Impressão de string”. Ao contrário da impressão em série normal, ele não mostra diretamente a saída de variáveis ​​no monitor serial primeiro, ele armazena a saída dentro de uma variável de char especificada amortecedor.

O sprintf () permite que o usuário envie uma saída formatada para uma matriz de char onde o resultado será armazenado. Para mostrar a string onde as variáveis ​​são formatadas, a série.A função print () é usada.

int sprintf (char * str, const char * formato,…);

Como usar o Arduino Sprintf ()

O sprintf () é útil quando precisamos imprimir várias variáveis ​​em uma única linha, usando as três linhas de código, podemos escrever quantas variáveis ​​quiser. Aqui está a sintaxe básica de escrever várias variáveis ​​usando sprintf ():

buffer de char [40];
sprintf (buffer, "soma do número %d e número %d é %d", a, b, c);
Serial.println (buffer);
  1. Primeiro, precisamos inicializar uma matriz de caracteres onde a sequência de saída será armazenada.
  2. Então, na segunda etapa sprint () será usada que combinará texto e variáveis ​​em uma linha.
  3. Finalmente na última etapa serial.A função print () exibirá a string formatada no monitor serial.

Código de exemplo

Agora vamos imprimir o código acima usando o sprintf () função.

Vamos examinar cada linha de código em detalhes agora.

Primeiro no código, inicializamos a comunicação serial usando a série.begin () e definir taxa de transmissão para 9600. Posteriormente, a seção de loop inicializa três variáveis ​​A, B e C. A soma das duas primeiras variáveis ​​A e B será armazenada na terceira variável C. Agora venha para a parte principal do código.

buffer de char [40];

O tamanho da matriz de caracteres precisa ser tão grande quanto pode armazenar facilmente variáveis ​​de saída e texto. Conte o número de caracteres necessários para armazenar e fazer o buffer com o mesmo tamanho.

sprintf (buffer, "soma do número %d e número %d é %d", a, b, c);

A próxima linha no código é a função Sprintf () real. São necessários 2 argumentos; O primeiro argumento armazenará o personagem dentro da matriz de buffer. O segundo argumento é a string que queremos criar. Aqui para exibir a variável na string que usamos Especificadores de formato.

Especificador de formato é o signo %seguido pela letra conhecida como caráter formato. Especificadores de caracteres são a letra após % sinal. Ambos dizem ao sprint () qual tipo de dados será usado para os dados disponíveis.

Alguns especificadores de caráter comuns são:

Personagem Tipo de dados
d ou i Inteiro decimal assinado
você Inteiro decimal não assinado
s String de caracteres

No exemplo acima, inicializamos três especificadores de formato usando %d o que significa que queremos que 3 variáveis ​​sejam armazenadas na sequência de saída como Inteiro decimal assinado. Para obter os valores dessas três variáveis, 3 argumentos são adicionados logo após a string. Para cada especificador de formato, precisamos passar um valor separado e cada um deles separado por vírgula.

Observação: As funções sprintf () em Arduino não podem lidar com valores de ponto flutuante. Então, se precisarmos imprimir um número decimal algo como 3.14 ou 12.12, primeiro devemos converter esse valor flutuante em uma string e depois imprimir na tela. Uma função dtostrf () é comumente usado para fazer isso.

Conclusão

Enquanto programa a placa Arduino, precisamos procurar todas as técnicas e funções disponíveis que podem otimizar nosso código. Ter um código minimalista e eficiente ajuda a executar o Arduino rapidamente. Ao imprimir dados no monitor serial, usamos a função de impressão serial, mas aqui abordamos como a função sprint () pode ajudar o Arduino a imprimir várias variáveis ​​em uma única linha.