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}