Como passar a matriz para uma função Arduino

Como passar a matriz para uma função Arduino
A programação do Arduino usa matrizes para armazenar vários valores de dados do mesmo tipo de dados, as matrizes são como variáveis. Ambas as matrizes e variáveis ​​são um tipo de recipiente, mas as matrizes têm divisores dentro dos contêineres para armazenar vários dados. A única coisa a observar é que as matrizes só podem armazenar dados com o mesmo tipo de dados. Vamos ver como passar uma matriz para funções.

Passando a matriz para funcionar em Arduino

A programação do Arduino não permite passar diretamente uma matriz inteira como argumento de função. No entanto, um ponteiro pode ser passado para uma matriz especificando seu nome.

Para passar as matrizes de dimensão única como um argumento de função, devemos considerar seguindo três sintaxe dada. Todos os três gerarão o mesmo resultado e dirão ao IDE que um ponteiro está chegando.

Sintaxe 1: Um ponteiro com parâmetros formais.

ReturnType FunctionName (Datatype *param)

Sintaxe 2: Um ponteiro com uma matriz de tamanho.

ReturnType FunctionName (Datatype Param [10])

Sintaxe 3: Um ponteiro com uma matriz não tamanho.

ReturnType FunctionName (Datatype Param [])

Podemos passar a matriz para a função Arduino usando dois métodos diferentes:

  • Passar a matriz por tipo de matriz
  • Passar a matriz por tipo de ponteiro

Passar a matriz por tipo de matriz

Agora, neste método, passaremos uma matriz para uma função como um argumento dessa função. Vamos dar um exemplo para entender como passar uma matriz para uma função.

Código de exemplo

Void Display (int num [5]) /*Exibição da função é inicializado* /
Serial.println ("elementos de matriz de impressão:");
para (int i = 0; i < 5; ++i) /*For loop to print array elements*/
Serial.print ("elemento");
Serial.impressão (i+1); /*Condição para aumentar o número do elemento sempre o código de tempo executar*/
Serial.imprimir(": ");
Serial.println (num [i]); /*O número do elemento é impresso*/


Void Setup ()
Serial.começar (9600); /*A comunicação serial começa*/
int num [5] = 10, 20, 30, 40, 50; /*Elementos de matriz com tamanho inicializado*/
exibição (num); /*Elementos de matriz exibidos*/
retornar 0;

Void Loop ()

No código acima, primeiro uma nova função com o tipo de retorno vazio é inicializado com um tamanho de matriz de 5. Para o loop é impresso para retornar números de 1 a 5 sempre que o código for executado. Observe os parâmetros da função void Display () aqui usamos a declaração completa, incluindo o tamanho da matriz e os parâmetros de função, juntamente com aparelhos quadrados [].

Na parte do loop usando exibição (num) Chamamos a função original passando uma matriz como argumento. Aqui num representa o primeiro endereço de memória do elemento.

Saída

Janela de saída mostra os elementos da matriz um por um. Usando um loop para loop, todos os 5 elementos da matriz são passados ​​para funcionar.

Conclusão

A programação do Arduino como C ++ não permite passar uma matriz inteira para uma função, no entanto, usando um ponteiro para uma matriz especificando o nome da matriz fornecida, podemos facilmente passar qualquer elementos de matriz para uma função completamente. Três sintaxe diferente são seguidas para passar uma matriz para funcionar. Este artigo ajudará você a passar qualquer matriz para funcionar dentro do esboço do Arduino.