Um array é uma coleção de variáveis que são acessadas com um índice numérico. Arrays na liguagem de programação C, na qual o Arduino é baseado, podem ser complicados, mas o uso de arrays simples é relativamente operacionalizável.

Criando (Declarando) um Array

Todos os métodos abaixo são modos válidos para criar (declarar) um array.

  int myInts[6];
int myPins[] = {2, 4, 8, 3, 6};
int mySensVals[6] = {2, 4, -8, 3, 2};
char message[6] = "hello";

Você pode declarar um array sem inicializar como em myInts.

Em myPins declaramos um array sem escolher explicitamente um tamanho. O compilador conta os elementos e cria o array do tamanho apropriado.

Finalmente, você pode inicializar e especificar o tamanho do array como em mySensVals. Note que quando declarar um array do tipo char, um elemento a mais é necessário para armazenar o caractere null de finalização.

Acessando um Array

Arrays são indexados a partir do zero, ou seja, fazendo referência à inicialização de arrays acima, o primeiro elemento do array está no índice 0, assim:

mySensVals[0] == 2, mySensVals[1] == 4,

e assim por diante.

 

Isso também significa que em um array de 10 elementos o índice do último elemento é 9, assim:

int myArray[10]={9,3,2,4,3,2,7,8,9,11};
// myArray[9] contém 11
// myArray[10] é inválido e contém informação aleatória (outro endereço de memória)

Por esta razão você deve acessar arrays cuidadosamente. Acessar um array após o seu final (usando um índice maior do que o declarado) é ler uma faixa de memória que está sendo utilizada para outros propósitos. Ler destes locais provavelmente não vai gerar nada além de dados inválidos. Escrever em locais de memória aleatórios decididamente não é uma boa idéia, e provavelmente conduzirá a maus resultados como malfuncionamento ou travamento do programa. Isto também pode ser um bug difícil de rastrear.

Diferente de algumas versões do BASIC, o compilador C não checa para ver se um acesso a um array está dentro das margens legais do tamanho com que o array foi declarado.

Designar um valor para um array:

mySensVals[0] = 10;

Recuperar um valor de um array:

x = mySensVals[4];

Arrays e FOR

Arrays são freqüentemente manipulados dentro da sentença for, nas quais o contador é usado com índice para cada elemento. Por exemplo, para imprimir os elementos de um array através da porta serial você poderia fazer alguma coisa assim:

int i;
for (i = 0; i < 5; i = i + 1) {
Serial.println(myPins[i]);
}

Examplo

Para um programa completo que demonstra o uso dos arrays veja exemplo Super máquina nos Tutoriais.

 

Página de início da referência

Correções, sugestões, e nova documentação devem ser enviadas ao Forum.

O texto de referência do Arduino está baixo uma Licença Creative Commons Attribution-ShareAlike 3.0. Amostras de código utilizadas na referência foram deixados  ao domínio público.

 

O conteúdo desta página é uma tradução para o português a partir do site original do Arduino.

Esta obra está sob uma Licença Creative Commons.

Creative Commons License