Curso C para Arduino
🔹 Arreglos (Arrays)
Un arreglo es una colección de variables del mismo tipo almacenadas de forma contigua en memoria. Cada elemento del arreglo se accede por un índice (empezando desde 0).
Sintaxis:
1tipo nombre[tamaño];
Ejemplo: arreglo de enteros
1int valores[5] = {10, 20, 30, 40, 50}; 2 3void setup() { 4 Serial.begin(9600); 5 for (int i = 0; i < 5; i++) { 6 Serial.println(valores[i]); 7 } 8}
🔹 Arreglos aplicados a sensores
Si estás leyendo varios sensores, puedes almacenar las lecturas en un arreglo:
1const int sensores[] = {A0, A1, A2}; 2int lecturas[3]; 3 4void setup() { 5 Serial.begin(9600); 6} 7 8void loop() { 9 for (int i = 0; i < 3; i++) { 10 lecturas[i] = analogRead(sensores[i]); 11 Serial.print("Sensor "); 12 Serial.print(i); 13 Serial.print(": "); 14 Serial.println(lecturas[i]); 15 } 16 delay(1000); 17}
🔹 Punteros
Un puntero es una variable que almacena la dirección de memoria de otra variable.
Declaración y uso:
1int valor = 10; 2int* ptr = &valor; 3 4void setup() { 5 Serial.begin(9600); 6 Serial.print("Valor: "); 7 Serial.println(valor); 8 Serial.print("Dirección: "); 9 Serial.println((int)ptr); 10 Serial.print("Valor a través del puntero: "); 11 Serial.println(*ptr); // desreferenciación 12}
🔹 Punteros y arreglos
En C, un arreglo es en realidad un puntero al primer elemento. Puedes recorrer un arreglo con un puntero:
1int datos[] = {1, 2, 3, 4, 5}; 2 3void setup() { 4 Serial.begin(9600); 5 int* p = datos; 6 7 for (int i = 0; i < 5; i++) { 8 Serial.print("Elemento "); 9 Serial.print(i); 10 Serial.print(": "); 11 Serial.println(*(p + i)); 12 } 13}