Array C++ Arduino ChatGPT
🧠 INTRODUCCIÓN RÁPIDA PARA EL ALUMNADO
Un array es como una fila de cajas donde guardamos varios datos del mismo tipo.
👉 Ejemplo:
int temperaturas[5] = {20, 21, 22, 23, 24};
📦 Cada valor tiene una posición (índice):
- temperaturas[0] → 20
- temperaturas[1] → 21
- …
💡 En IoT esto se usa para:
- Guardar lecturas de sensores
- Analizar datos
- Tomar decisiones inteligentes
🧪 EJERCICIOS PROGRESIVOS (Arduino IDE – C++)
🔹 EJERCICIO 1: GUARDAR DATOS DE UN SENSOR (SIMULADO)
🎯 Objetivo: aprender a usar arrays
🧩 Contexto Smart City:
Sistema que guarda temperaturas de una calle durante unos segundos.
🔌 Material:
- Arduino
- (No hace falta sensor real, usamos valores simulados)
💻 Código:
int temperaturas[5];
void setup() {
Serial.begin(9600);
temperaturas[0] = 20;
temperaturas[1] = 21;
temperaturas[2] = 22;
temperaturas[3] = 23;
temperaturas[4] = 24;
for(int i = 0; i < 5; i++){
Serial.println(temperaturas[i]);
}
}
void loop() {
}
🔹 EJERCICIO 2: LECTURA REAL DE SENSOR Y ARRAY
🎯 Objetivo: guardar datos reales
🧩 Contexto Smart City:
Sensor de temperatura urbana
🔌 Material:
- Sensor KY-013 o similar
💻 Código:
int lecturas[5];
void setup() {
Serial.begin(9600);
}
void loop() {
for(int i = 0; i < 5; i++){
lecturas[i] = analogRead(A0);
delay(1000);
}
Serial.println("Datos recogidos:");
for(int i = 0; i < 5; i++){
Serial.println(lecturas[i]);
}
delay(5000);
}
🔹 EJERCICIO 3: CALCULAR MEDIA (SMART CITY REAL)
🎯 Objetivo: procesar datos
🧩 Contexto:
Media de temperatura para enviar a la nube
💻 Código:
int lecturas[5];
int suma = 0;
float media;
void setup() {
Serial.begin(9600);
for(int i = 0; i < 5; i++){
lecturas[i] = analogRead(A0);
delay(1000);
}
for(int i = 0; i < 5; i++){
suma += lecturas[i];
}
media = suma / 5.0;
Serial.print("Media: ");
Serial.println(media);
}
void loop() {
}
🔹 EJERCICIO 4: DETECCIÓN DE ALERTA (ACTUADOR)
🎯 Objetivo: usar datos → tomar decisión
🧩 Contexto Smart City:
Alerta por calor extremo
🔌 Material:
- LED
💻 Código:
int lecturas[5];
int suma = 0;
float media;
void setup() {
Serial.begin(9600);
pinMode(8, OUTPUT);
for(int i = 0; i < 5; i++){
lecturas[i] = analogRead(A0);
delay(500);
}
for(int i = 0; i < 5; i++){
suma += lecturas[i];
}
media = suma / 5.0;
if(media > 600){
digitalWrite(8, HIGH); // ALERTA
} else {
digitalWrite(8, LOW);
}
}
void loop() {
}
🔹 EJERCICIO 5: ARRAY DE LEDs (ILUMINACIÓN INTELIGENTE)
🎯 Objetivo: arrays de pines
🧩 Contexto Smart City:
Farolas inteligentes
🔌 Material:
- 3 LEDs
💻 Código:
int leds[3] = {8, 9, 10};
void setup() {
for(int i = 0; i < 3; i++){
pinMode(leds[i], OUTPUT);
}
}
void loop() {
for(int i = 0; i < 3; i++){
digitalWrite(leds[i], HIGH);
delay(500);
digitalWrite(leds[i], LOW);
}
}
🔹 EJERCICIO 6: SENSOR + ARRAY + COMPORTAMIENTO INTELIGENTE
🎯 Nivel PRO (pero accesible)
🧩 Contexto Smart City:
Semáforo inteligente según tráfico
🔌 Material:
- Sensor (LDR o similar)
- 3 LEDs (semáforo)
💻 Código:
int semaforo[3] = {8, 9, 10}; // rojo, amarillo, verde
int lecturas[5];
void setup() {
for(int i = 0; i < 3; i++){
pinMode(semaforo[i], OUTPUT);
}
Serial.begin(9600);
}
void loop() {
int suma = 0;
for(int i = 0; i < 5; i++){
lecturas[i] = analogRead(A0);
suma += lecturas[i];
delay(200);
}
int media = suma / 5;
if(media > 600){
// mucho tráfico → rojo
digitalWrite(semaforo[0], HIGH);
digitalWrite(semaforo[1], LOW);
digitalWrite(semaforo[2], LOW);
}
else {
// poco tráfico → verde
digitalWrite(semaforo[0], LOW);
digitalWrite(semaforo[1], LOW);
digitalWrite(semaforo[2], HIGH);
}
delay(2000);
}
🧠 LO QUE ESTÁN APRENDIENDO (IMPORTANTE PARA EBAU/UNI)
Con estos ejercicios están trabajando:
✔ Arrays
✔ Bucles (for)
✔ Procesamiento de datos
✔ Relación sensor → decisión → actuador
✔ Pensamiento de sistemas IoT reales
🚀 SIGUIENTE PASO (si quieres subir nivel)
Te propongo para la siguiente sesión:
- Arrays + máximo y mínimo
- Arrays + detección de patrones
- Arrays + simulación de memoria de dispositivo IoT
- Introducir matrices (2D) tipo mapa de ciudad
Etiqueta:arduino, ies monterroso, robóptica
