Se você é um entusiasta da programação Arduino, certamente já se deparou com a versatilidade e eficiência das estruturas de dados. Entre elas, os arrays se destacam como uma ferramenta fundamental para lidar com conjuntos de dados de maneira organizada e eficaz. Neste artigo, vamos aprofundar nosso entendimento sobre arrays no Arduino, explorando suas funcionalidades, aplicabilidades e apresentando dicas práticas para melhorar sua programação.
Se preferir pode assistir o vídeo completo no YouTube.
Sumário
O que são Arrays e Por que São Importantes?
Em termos simples, um array é uma coleção ordenada de variáveis do mesmo tipo, acessíveis através de um índice ou chave. No contexto do Arduino, isso significa que podemos agrupar variáveis relacionadas em uma única estrutura, facilitando o manuseio de dados complexos.
A importância dos arrays reside na capacidade de armazenar e acessar dados de maneira eficiente. Seja lidando com sensores, LEDs ou qualquer outro componente, os arrays oferecem uma maneira organizada de gerenciar informações, simplificando a lógica do código e melhorando a legibilidade.
Programação sem comunicação serial
int LEDs[12] = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }; // Cria array e armazena cada pino em um indice
void setup() {
for (int x = 0; x < 12; x++) { // For para configurar cada pino no array como saída
pinMode(LEDs[x], OUTPUT); // x vai ser trocado por "2, 3...12,13" em cada loop
}
}
void loop() {
for (int x = 0; x < 12; x++) { // Estrutra FOR para automaziar o acionamento
digitalWrite(LEDs[x], HIGH); // Liga o LED correspondente ao indice do array
delay(200); // Espera 200ms
digitalWrite(LEDs[x], LOW); // Desliga o LED correspondente ao array
delay(200);
}
for (int x = 11; x >= 0; x--) { // Estrutra FOR para automaziar o acionamento
digitalWrite(LEDs[x], HIGH); // Liga o LED correspondente ao indice do array
delay(200); // Espera 200ms
digitalWrite(LEDs[x], LOW); // Desliga o LED correspondente ao array
delay(200);
}
}
Programação com comunicação serial
int LEDs[12] = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }; // Cria array e armazena cada pino em um indice
void setup() {
Serial.begin(9600);
for (int x = 0; x < 12; x++) { // For para configurar cada pino no array como saída
pinMode(LEDs[x], OUTPUT); // x vai ser trocado por "2, 3, 4, 5, 6, 7" em cada loop
delay(200);
Serial.print("Coloquei pino ");
Serial.print(LEDs[x]);
Serial.println(" como saida");
}
Serial.println("");
Serial.println("-- Bora comecar -- ");
}
void loop() {
for (int x = 0; x < 12; x++) { // Estrutra FOR para automaziar o acionamento
digitalWrite(LEDs[x], HIGH); // Liga o LED correspondente ao indice do array
Serial.print(">> Liguei pino ");
Serial.println(LEDs[x]);
delay(200); // Espera 200ms
digitalWrite(LEDs[x], LOW); // Desliga o LED correspondente ao array
Serial.print(">> Desliguei pino ");
Serial.println(LEDs[x]);
}
}