15 proyectos con Arduino para feria de ciencias (primaria y secundaria)
15 proyectos con Arduino para feria de ciencias del colegio, por dificultad: qué demuestra cada uno, materiales con precios, conexiones y código listo.

Estos 15 proyectos con Arduino para feria de ciencias están ordenados de menor a mayor dificultad. Los primeros cinco sirven para 5.º y 6.º de primaria con ayuda de un adulto, y los últimos son para alumnos de 4.º y 5.º de secundaria que ya programaron antes. Cada proyecto tiene el nivel recomendado, lo que demuestra científicamente, los materiales con su precio, una tabla de conexiones y, en varios casos, el código completo.
Un consejo antes de elegir: en una feria pesa más una pregunta bien medida que un circuito complicado. Un robot que se mueve impresiona un minuto, pero el jurado se queda con el grupo que midió algo, repitió la prueba y puede explicar por qué le salió ese resultado.
Antes de empezar: qué necesitas
Todos los proyectos usan la misma base: una placa Arduino, una protoboard para conectar sin soldar, cables y resistencias. Usamos el Arduino Nano, pero un Uno funciona igual porque los nombres de los pines (D2, A0, A4, etc.) son los mismos.
También necesitas una computadora con el Arduino IDE, que es gratuito. Si Windows no reconoce la placa, instala el driver CH340. Para subir un programa, conecta el Arduino, elige la placa y el puerto en el menú Herramientas y presiona la flecha de "Subir".
Tres reglas que evitan casi todos los problemas:
- Todo LED lleva una resistencia de 220 Ω en serie. Sin ella, el LED o el pin del Arduino se pueden quemar.
- Arma el circuito con el cable USB desconectado y revisa las conexiones antes de enchufar.
- Si usas pilas para motores o una bomba, une el GND de las pilas con el GND del Arduino (salvo cuando un relé separa los circuitos, como en el proyecto 9).
Si la feria es la Feria Escolar Nacional de Ciencia y Tecnología Eureka, que organiza el Minedu y en 2026 convoca desde 1.º de primaria hasta 5.º de secundaria, revisa las bases de tu UGEL: allí se indica la categoría según el grado y lo que debe incluir el informe.
Proyectos fáciles (primaria alta y 1.º y 2.º de secundaria)
Usan uno o dos componentes además de la base, un código de menos de 30 líneas y se arman en una o dos sesiones.
1. Semáforo con cruce peatonal
Nivel: 5.º y 6.º de primaria, 1.º de secundaria. Dificultad: fácil.
Qué demuestra: cómo funciona un circuito cerrado y la ley de Ohm. Con 5 V, un LED rojo (que consume unos 2 V) y una resistencia de 220 Ω, pasa una corriente de (5 − 2) / 220 ≈ 0.014 A, es decir, 14 mA. Los alumnos pueden comprobarlo con un multímetro y probar qué pasa con una resistencia de 1 kΩ: la corriente baja y el LED brilla menos. Para la feria se puede plantear como un proyecto de seguridad vial en la puerta del colegio.
| Componente | Conexión | Pin del Arduino |
|---|---|---|
| LED rojo | Pata larga, con resistencia de 220 Ω | D10 |
| LED amarillo | Pata larga, con resistencia de 220 Ω | D9 |
| LED verde | Pata larga, con resistencia de 220 Ω | D8 |
| Los tres LEDs | Pata corta | GND |
| Pulsador | Dos patas en diagonal | D2 y GND |
| Buzzer pasivo | Positivo, con resistencia de 220 Ω | D6 |
| Buzzer pasivo | Negativo | GND |
Los autos tienen verde hasta que un peatón presiona el botón. Entonces el semáforo pasa a amarillo, luego a rojo, y el buzzer pita para avisar que se puede cruzar.
const int ROJO = 10, AMARILLO = 9, VERDE = 8;
const int BOTON = 2, BUZZER = 6;
void setup() {
pinMode(ROJO, OUTPUT);
pinMode(AMARILLO, OUTPUT);
pinMode(VERDE, OUTPUT);
pinMode(BOTON, INPUT_PULLUP); // sin presionar se lee HIGH
digitalWrite(VERDE, HIGH); // los autos pasan
}
void loop() {
if (digitalRead(BOTON) == LOW) { // un peaton pidio cruzar
digitalWrite(VERDE, LOW);
digitalWrite(AMARILLO, HIGH);
delay(2000);
digitalWrite(AMARILLO, LOW);
digitalWrite(ROJO, HIGH);
for (int i = 0; i < 10; i++) { // 5 segundos de pitidos para cruzar
tone(BUZZER, 1000, 200);
delay(500);
}
digitalWrite(ROJO, LOW);
digitalWrite(VERDE, HIGH);
}
}
2. Theremin de luz
Nivel: 5.º y 6.º de primaria. Dificultad: fácil.
Qué demuestra: dos ideas a la vez. La primera es que la fotorresistencia (LDR) cambia su resistencia con la luz: a más luz, menos resistencia. La segunda es que el sonido es una vibración y que su frecuencia define si escuchamos un tono grave o agudo. El instrumento suena más agudo cuando le apuntas con una linterna y más grave cuando lo tapas con la mano.
| Componente | Conexión | Pin del Arduino |
|---|---|---|
| LDR | Una pata | 5V |
| LDR | Otra pata | A0 |
| Resistencia de 10 kΩ | Entre A0 y tierra | GND |
| Buzzer pasivo | Positivo, con resistencia de 220 Ω | D8 |
| Buzzer pasivo | Negativo | GND |
La LDR y la resistencia de 10 kΩ forman un divisor de voltaje: con más luz, el voltaje en A0 sube.
void setup() {}
void loop() {
int luz = analogRead(A0); // 0 (oscuro) a 1023 (mucha luz)
int frecuencia = map(luz, 0, 1023, 120, 1500); // de grave a agudo, en Hz
tone(8, frecuencia);
delay(10);
}
Para el informe, midan con el Monitor Serie el valor de luz en el aula, junto a la ventana y con el sensor tapado, y armen una tabla.
3. Medidor de tiempo de reacción
Nivel: 6.º de primaria a 3.º de secundaria. Dificultad: fácil.
Qué demuestra: cuánto tarda el sistema nervioso en reaccionar a un estímulo visual. Es uno de los mejores proyectos con Arduino para colegio porque deja hacer un experimento completo: ¿reaccionamos más rápido con la mano dominante? ¿Antes o después del recreo? ¿Los que juegan videojuegos reaccionan más rápido? Con cinco intentos por persona y diez compañeros ya hay datos para un gráfico.
| Componente | Conexión | Pin del Arduino |
|---|---|---|
| LED | Pata larga, con resistencia de 220 Ω | D7 |
| LED | Pata corta | GND |
| Pulsador | Dos patas en diagonal | D2 y GND |
El LED se enciende después de una espera al azar y el programa mide los milisegundos hasta que presionas el botón. Si alguien presiona antes de tiempo, la prueba no cuenta.
const int LED = 7, BOTON = 2;
void setup() {
pinMode(LED, OUTPUT);
pinMode(BOTON, INPUT_PULLUP);
Serial.begin(9600);
randomSeed(analogRead(A0)); // A0 sin conectar: espera distinta cada vez
}
void loop() {
Serial.println("Atento a la luz...");
unsigned long inicio = millis();
unsigned long espera = random(2000, 5000);
while (millis() - inicio < espera) {
if (digitalRead(BOTON) == LOW) { // presiono antes de tiempo
Serial.println("Muy pronto. Intenta otra vez.");
delay(1500);
return;
}
}
digitalWrite(LED, HIGH);
unsigned long encendido = millis();
while (digitalRead(BOTON) == HIGH) {} // espera el clic
unsigned long reaccion = millis() - encendido;
digitalWrite(LED, LOW);
Serial.print("Tiempo de reaccion: ");
Serial.print(reaccion);
Serial.println(" ms");
delay(2000);
}
Abre el Monitor Serie a 9600 baudios para ver los resultados y copia cada tiempo a una hoja de cálculo.
4. Sensor de humedad para plantas
Nivel: 5.º y 6.º de primaria. Dificultad: fácil.
Qué demuestra: que el agua en el suelo conduce la electricidad. El sensor tiene dos puntas metálicas, y cuanto más húmeda está la tierra, más corriente pasa entre ellas. El experimento: tres macetas con arena, tierra de chacra y tierra con compost, regadas con la misma cantidad de agua. ¿Cuál retiene la humedad más días?
| Componente | Conexión | Pin del Arduino |
|---|---|---|
| Módulo FC-28 | VCC | 5V |
| Módulo FC-28 | GND | GND |
| Módulo FC-28 | AO (salida analógica) | A0 |
| LED rojo | Pata larga, con resistencia de 220 Ω | D7 |
| LED verde | Pata larga, con resistencia de 220 Ω | D6 |
| Ambos LEDs | Pata corta | GND |
Con este módulo el valor sube cuando la tierra está más seca. Antes de programar la alarma, mide el sensor en tierra seca y en tierra recién regada, y usa el punto medio como límite: por encima, enciende el LED rojo; por debajo, el verde. Las puntas se corroen si pasan semanas enterradas con corriente, así que sácalas de la maceta entre una medición y otra.
5. Alarma con sensor de movimiento
Nivel: 5.º de primaria a 2.º de secundaria. Dificultad: fácil.
Qué demuestra: que todo cuerpo caliente emite radiación infrarroja, aunque no la veamos. El sensor PIR detecta los cambios de esa radiación cuando alguien se mueve delante de él. Una prueba que sorprende en la feria: pongan una lámina de vidrio delante del sensor y verán que deja de detectar, porque el vidrio común bloquea casi todo el infrarrojo que emite el cuerpo humano.
| Componente | Conexión | Pin del Arduino |
|---|---|---|
| Sensor PIR HC-SR501 | VCC | 5V |
| Sensor PIR HC-SR501 | OUT | D2 |
| Sensor PIR HC-SR501 | GND | GND |
| LED rojo | Pata larga, con resistencia de 220 Ω | D7 |
| Buzzer pasivo | Positivo, con resistencia de 220 Ω | D8 |
| LED y buzzer | Negativo | GND |
El programa lee D2: si está en HIGH, enciende el LED y hace sonar tone(8, 2000); si está en LOW, apaga ambos con noTone(8). El PIR necesita alrededor de un minuto después de conectarlo para estabilizarse. Tiene dos tornillos de ajuste: uno cambia la distancia de detección y el otro cuánto tiempo se mantiene activa la salida.

Proyectos intermedios (secundaria)
Estos proyectos con Arduino para secundaria usan sensores digitales, librerías o un actuador externo. Funcionan bien para 2.º a 4.º de secundaria y dan para un informe con tablas y gráficos.
6. Medir la velocidad del sonido con ultrasonido
Nivel: 3.º a 5.º de secundaria. Dificultad: intermedia.
Qué demuestra: que el sonido viaja a una velocidad que se puede medir en el aula. El sensor HC-SR04 emite un pulso de ultrasonido y mide cuánto tarda en volver después de rebotar en una pared. Si la distancia la mides con wincha, puedes calcular la velocidad: v = 2d / t (el 2 es porque el sonido va y vuelve). En aire seco a 20 °C el valor esperado ronda los 343 m/s. Repetir la medición a 20, 40, 60, 80 y 100 cm y graficar tiempo contra distancia da una recta; con su pendiente se calcula la velocidad.
| Componente | Conexión | Pin del Arduino |
|---|---|---|
| HC-SR04 | VCC | 5V |
| HC-SR04 | Trig | D9 |
| HC-SR04 | Echo | D10 |
| HC-SR04 | GND | GND |
const int TRIG = 9, ECHO = 10;
const float DISTANCIA_M = 0.50; // medida con wincha hasta la pared, en metros
void setup() {
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH); // pulso de 10 microsegundos
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
unsigned long t = pulseIn(ECHO, HIGH, 30000UL); // ida y vuelta, en microsegundos
if (t > 0) {
float v = 2.0 * DISTANCIA_M / (t / 1000000.0); // metros por segundo
Serial.print("Tiempo: ");
Serial.print(t);
Serial.print(" us Velocidad: ");
Serial.print(v);
Serial.println(" m/s");
}
delay(500);
}
No esperes exactamente 343 m/s. Discutir por qué sale distinto (la temperatura del aula, la precisión del sensor, dónde está el "cero" de la wincha) es justamente lo que el jurado quiere escuchar.
7. Estación meteorológica con pantalla
Nivel: 2.º a 4.º de secundaria. Dificultad: intermedia.
Qué demuestra: la relación entre temperatura y humedad relativa a lo largo del día. Con la estación en el aula se puede registrar cada hora y comparar un aula con ventanas abiertas y otra cerrada, o el aula llena y vacía. El DHT11 tiene una precisión de ±2 °C, suficiente para ver tendencias, y conviene mencionarlo en el informe.
| Componente | Conexión | Pin del Arduino |
|---|---|---|
| DHT11 (módulo de 3 pines) | VCC | 5V |
| DHT11 | DATA | D2 |
| DHT11 | GND | GND |
| Pantalla OLED | VCC | 5V |
| Pantalla OLED | GND | GND |
| Pantalla OLED | SDA | A4 |
| Pantalla OLED | SCL | A5 |
Desde el gestor de librerías del Arduino IDE instala "DHT sensor library" y "Adafruit SSD1306" (con sus dependencias). La pantalla suele usar la dirección I2C 0x3C. Si tu DHT11 viene suelto, con cuatro patas y sin placa, agrega una resistencia de 10 kΩ entre DATA y 5V. Este es uno de los proyectos del ebook del Kit Inventor, que trae el código completo.
8. Ley de enfriamiento de Newton
Nivel: 3.º a 5.º de secundaria. Dificultad: intermedia.
Qué demuestra: que un líquido caliente se enfría rápido al principio y cada vez más lento a medida que se acerca a la temperatura ambiente. Es la ley de enfriamiento de Newton, y la curva que sale es una exponencial. El experimento compara la misma agua caliente en una taza de vidrio, una de cerámica y un termo, o en la misma taza con y sin tapa.
| Componente | Conexión | Pin del Arduino |
|---|---|---|
| DS18B20, cable rojo | VDD | 5V |
| DS18B20, cable negro | GND | GND |
| DS18B20, cable amarillo | DATA | D2 |
| Resistencia de 4.7 kΩ | Entre DATA (D2) y 5V | — |
Los colores de cable son los más comunes, pero revisa los de tu sensor. Instala las librerías "OneWire" y "DallasTemperature".
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire bus(2);
DallasTemperature sensor(&bus);
void setup() {
Serial.begin(9600);
sensor.begin();
Serial.println("segundos,temperatura");
}
void loop() {
sensor.requestTemperatures();
float t = sensor.getTempCByIndex(0);
Serial.print(millis() / 1000);
Serial.print(",");
Serial.println(t);
delay(10000); // una medicion cada 10 segundos
}
El Monitor Serie muestra los datos separados por comas: cópialos a Excel o Google Sheets y grafica. Usen agua caliente de la tetera, no hirviendo, y que un adulto la sirva.
9. Riego automático
Nivel: 3.º a 5.º de secundaria. Dificultad: intermedia.
Qué demuestra: un sistema de control en lazo cerrado. El sensor mide, el Arduino decide y la bomba actúa, y el resultado vuelve a medirse. Para la feria se puede medir cuánta agua usa el riego automático durante una semana frente a regar "a ojo" todos los días, un tema que conecta con el cuidado del agua en Lima.
| Componente | Conexión | Pin del Arduino |
|---|---|---|
| Módulo FC-28 | VCC, GND, AO | 5V, GND, A0 |
| Módulo relé | VCC | 5V |
| Módulo relé | GND | GND |
| Módulo relé | IN | D7 |
| Portapilas 4 AA (+) | Borne COM del relé | — |
| Bomba (+) | Borne NO del relé | — |
| Bomba (−) | Negativo del portapilas | — |
La bomba se alimenta con las pilas, no con el Arduino. El relé funciona como un interruptor que el Arduino abre y cierra, y mantiene separados los dos circuitos.
const int SENSOR = A0, RELE = 7;
const int UMBRAL_SECO = 700; // ajustalo con tus propias mediciones
void setup() {
digitalWrite(RELE, HIGH); // primero HIGH para que la bomba no arranque sola
pinMode(RELE, OUTPUT);
Serial.begin(9600);
}
void loop() {
int humedad = analogRead(SENSOR); // mas alto = mas seco
Serial.println(humedad);
if (humedad > UMBRAL_SECO) {
digitalWrite(RELE, LOW); // enciende la bomba 3 segundos
delay(3000);
digitalWrite(RELE, HIGH);
}
delay(30000); // espera a que el agua se absorba
}
La mayoría de módulos de relé se activan con LOW, como en este código. Si el tuyo se activa con HIGH, invierte los dos valores. Prueba primero sin agua: debes escuchar el "clic" del relé.
10. Detector de gas y alcohol
Nivel: 3.º a 5.º de secundaria. Dificultad: intermedia.
Qué demuestra: cómo un material semiconductor (dióxido de estaño) cambia su resistencia cuando hay gases combustibles en el aire. El MQ-2 detecta GLP, propano, metano y vapores de alcohol. Para probarlo en clase, acerquen un algodón con alcohol medicinal, nunca un balón de gas abierto ni un encendedor.
| Componente | Conexión | Pin del Arduino |
|---|---|---|
| MQ-2 | VCC | 5V |
| MQ-2 | GND | GND |
| MQ-2 | AO | A0 |
| LED rojo | Pata larga, con resistencia de 220 Ω | D7 |
| Buzzer pasivo | Positivo, con resistencia de 220 Ω | D8 |
| LED y buzzer | Negativo | GND |
El sensor tiene un calefactor interno: déjalo encendido unos minutos antes de medir y anota el valor del aire limpio del aula. La alarma se activa cuando la lectura supera ese valor con margen. Las lecturas sirven para comparar, no para medir concentraciones exactas, y el prototipo no reemplaza a un detector de gas certificado para casa.
Proyectos avanzados (3.º a 5.º de secundaria)
Combinan varios sensores, un actuador y más física o matemática en el análisis. Son los que mejor encajan cuando la feria pide proyectos innovadores, porque responden un problema real con datos propios.
11. Seguidor solar
Nivel: 3.º a 5.º de secundaria. Dificultad: avanzada.
Qué demuestra: que una superficie recibe más energía cuando la luz le llega de frente. Es la razón por la que los paneles solares grandes giran durante el día. Dos LDR separadas por un tabique de cartón comparan la luz que llega a cada lado, y un servomotor gira la base hasta que las dos reciben lo mismo.
| Componente | Conexión | Pin del Arduino |
|---|---|---|
| LDR izquierda | Entre 5V y A0 | A0 |
| Resistencia de 10 kΩ | Entre A0 y GND | GND |
| LDR derecha | Entre 5V y A1 | A1 |
| Resistencia de 10 kΩ | Entre A1 y GND | GND |
| Servo SG90, cable marrón | Tierra | GND |
| Servo SG90, cable rojo | Alimentación | 5V |
| Servo SG90, cable naranja | Señal | D9 |
#include <Servo.h>
Servo motor;
int angulo = 90;
void setup() {
motor.attach(9);
motor.write(angulo);
}
void loop() {
int izquierda = analogRead(A0);
int derecha = analogRead(A1);
int diferencia = izquierda - derecha;
if (diferencia > 30 && angulo < 180) angulo++; // mas luz a la izquierda
else if (diferencia < -30 && angulo > 0) angulo--; // mas luz a la derecha
motor.write(angulo);
delay(15);
}
Si el servo gira hacia el lado contrario, intercambia los cables de A0 y A1. El margen de 30 evita que tiemble cuando la luz es pareja. Para el informe, comparen la lectura de una LDR fija con la de una montada en el seguidor, cada media hora durante la mañana.
12. Sismógrafo y mesa vibratoria
Nivel: 3.º a 5.º de secundaria. Dificultad: avanzada.
Qué demuestra: cómo se mide un movimiento sísmico con un acelerómetro y cómo un aislamiento en la base reduce lo que siente un edificio. Perú está en una zona de alta actividad sísmica, así que el tema conecta con cualquier jurado. El experimento: dos maquetas iguales de palitos de helado sobre una mesa vibratoria (dos tablas con canicas en medio), una fija a la tabla y otra apoyada sobre bolitas o esponjas. El sensor va en el último piso.
| Componente | Conexión | Pin del Arduino |
|---|---|---|
| MPU-6050 | VCC | 5V |
| MPU-6050 | GND | GND |
| MPU-6050 | SDA | A4 |
| MPU-6050 | SCL | A5 |
El código lee el sensor directamente, sin librerías externas:
#include <Wire.h>
const int MPU = 0x68;
int16_t leer16() {
uint8_t alto = Wire.read();
uint8_t bajo = Wire.read();
return (int16_t)(((uint16_t)alto << 8) | bajo);
}
void setup() {
Wire.begin();
Wire.beginTransmission(MPU);
Wire.write(0x6B); // registro de energia
Wire.write(0); // despierta el sensor
Wire.endTransmission();
Serial.begin(115200);
}
void loop() {
Wire.beginTransmission(MPU);
Wire.write(0x3B); // primer registro de aceleracion
Wire.endTransmission(false);
Wire.requestFrom(MPU, 6);
int16_t ax = leer16();
int16_t ay = leer16();
int16_t az = leer16();
Serial.print(ax);
Serial.print(",");
Serial.print(ay);
Serial.print(",");
Serial.println(az);
delay(10);
}
Abre el Serial Plotter a 115200 baudios para ver las tres ondas en vivo. Con la configuración de fábrica, 16384 unidades equivalen a 1 g (9.8 m/s²), así que en reposo el eje vertical marca cerca de 16384. Comparen la amplitud máxima de las dos maquetas con el mismo empujón.

13. Robot seguidor de línea
Nivel: 3.º a 5.º de secundaria. Dificultad: avanzada.
Qué demuestra: que las superficies oscuras absorben la luz infrarroja y las claras la reflejan. Cada sensor emite infrarrojo y detecta cuánto rebota. Con esa información el robot corrige su rumbo, que es la base de cualquier sistema de control.
| Componente | Conexión | Pin del Arduino |
|---|---|---|
| Sensor izquierdo | OUT | D2 |
| Sensor derecho | OUT | D3 |
| Ambos sensores | VCC y GND | 5V y GND |
| L298N | ENA (sin el puente) | D5 |
| L298N | IN1 e IN2 (motor izquierdo) | D7 y D8 |
| L298N | IN3 e IN4 (motor derecho) | D9 y D10 |
| L298N | ENB (sin el puente) | D6 |
| L298N | Borne de 12V | + del portapilas |
| L298N | GND | − del portapilas y GND del Arduino |
La línea negra (cinta aislante sobre cartulina blanca) queda entre los dos sensores. La lógica es simple: si los dos ven blanco, el robot avanza; si el izquierdo ve negro, el robot se desvió a la derecha y debe frenar el motor izquierdo para girar; si el derecho ve negro, al revés. Ajusta el tornillo de cada sensor mirando su LED indicador sobre blanco y sobre negro.
Alimenta el Arduino con su cable USB conectado a un power bank y no olvides unir los GND. Con 4 pilas AA el L298N entrega unos 4 V a los motores, suficiente para una pista en el piso del aula. El Kit Inventor trae la versión con control PID, que sigue la línea más rápido y con menos zigzag.
14. Monitor del aula con ESP32 y WiFi
Nivel: 4.º y 5.º de secundaria. Dificultad: avanzada.
Qué demuestra: el concepto de Internet de las cosas (IoT) aplicado a una pregunta concreta: ¿cuándo hace más calor en nuestro salón y cuánto ayuda abrir las ventanas? El ESP32 mide con el DHT11 y publica una página web que cualquiera abre desde su celular, conectado a la misma red.
| Componente | Conexión | Pin del ESP32 |
|---|---|---|
| DHT11 | VCC | 3V3 |
| DHT11 | DATA | GPIO 4 |
| DHT11 | GND | GND |
El ESP32 trabaja a 3.3 V. Alimenta el DHT11 desde 3V3 para que su señal no supere ese voltaje, y nunca conectes una salida de 5 V a sus pines. En el Arduino IDE instala el soporte para ESP32 desde el gestor de placas y la librería "DHT sensor library".
#include <WiFi.h>
#include <WebServer.h>
#include <DHT.h>
const char* RED = "NombreDeTuRed";
const char* CLAVE = "TuClave";
DHT dht(4, DHT11);
WebServer server(80);
void pagina() {
float t = dht.readTemperature();
float h = dht.readHumidity();
String html = "<meta name='viewport' content='width=device-width'>"
"<meta http-equiv='refresh' content='10'>"
"<h1>Nuestra aula</h1><p>Temperatura: " + String(t, 1) +
" °C</p><p>Humedad: " + String(h, 0) + " %</p>";
server.send(200, "text/html", html);
}
void setup() {
Serial.begin(115200);
dht.begin();
WiFi.begin(RED, CLAVE);
while (WiFi.status() != WL_CONNECTED) delay(500);
Serial.println(WiFi.localIP()); // abre esta direccion en el celular
server.on("/", pagina);
server.begin();
}
void loop() {
server.handleClient();
}
El ESP32 solo se conecta a redes de 2.4 GHz. Muchas redes de colegio piden iniciar sesión en una página, y con ellas no funciona: en la feria es más simple compartir internet desde un celular.
15. Péndulo para medir la gravedad
Nivel: 4.º y 5.º de secundaria. Dificultad: avanzada.
Qué demuestra: que con un hilo, una masa y un sensor se puede calcular la aceleración de la gravedad. Para oscilaciones pequeñas (menos de 15°), el periodo de un péndulo es T = 2π√(L/g), así que g = 4π²L / T². El valor esperado en Lima ronda los 9.78 m/s². El experimento clásico es cambiar el largo del hilo y comprobar que el periodo no depende de la masa.
| Componente | Conexión | Pin del Arduino |
|---|---|---|
| Sensor FC-51 | VCC | 5V |
| Sensor FC-51 | GND | GND |
| Sensor FC-51 | OUT | D2 |
Coloca el sensor debajo del punto más bajo del recorrido, a 2 o 3 cm de la masa, y ajusta su tornillo hasta que el LED del módulo se encienda solo cuando pasa la masa. La salida se pone en LOW mientras detecta algo.
const int SENSOR = 2;
const float L = 0.50; // largo en metros, del punto de giro al centro de la masa
unsigned long pasos[3];
int n = 0;
int anterior = HIGH;
void setup() {
pinMode(SENSOR, INPUT);
Serial.begin(9600);
}
void loop() {
int actual = digitalRead(SENSOR);
if (anterior == HIGH && actual == LOW) { // la masa entra al sensor
unsigned long ahora = millis();
if (n == 0 || ahora - pasos[n - 1] > 150) { // ignora lecturas dobles
pasos[n++] = ahora;
if (n == 3) { // 3 pasadas = 1 periodo completo
float T = (pasos[2] - pasos[0]) / 1000.0;
float g = 4 * PI * PI * L / (T * T);
Serial.print("T = ");
Serial.print(T, 3);
Serial.print(" s g = ");
Serial.print(g, 2);
Serial.println(" m/s2");
pasos[0] = pasos[2];
n = 1;
}
}
}
anterior = actual;
}
La masa pasa por el centro dos veces en cada oscilación, por eso un periodo completo va de la primera pasada a la tercera. Midan con al menos cuatro largos distintos y grafiquen T² contra L: debe salir una recta.
Cómo convertir el circuito en un proyecto de feria
Un circuito que funciona todavía no es un proyecto de feria de ciencias. Lo que lo convierte en uno es la pregunta y los datos. Este orden les sirve a primaria y secundaria:
- Pregunta. Concreta y medible: "¿Qué tipo de suelo retiene más agua?" funciona; "¿Cómo funciona el Arduino?" no.
- Hipótesis. Lo que creen que va a pasar y por qué, escrito antes de medir.
- Variables. Qué cambian (el tipo de suelo), qué miden (la lectura del sensor) y qué mantienen igual (la cantidad de agua, la maceta, el lugar).
- Mediciones repetidas. Al menos tres repeticiones por condición. Un solo dato no prueba nada.
- Tabla y gráfico. Hechos con sus datos, no con datos de internet.
- Conclusión. ¿Se cumplió la hipótesis? ¿Qué falló? ¿Qué harían distinto?
Para el día de la feria, lleven el proyecto funcionando, una laptop o celular con el código abierto y una bitácora con las mediciones a mano. Cada integrante debe poder explicar una parte del circuito y una línea del código. Graben también un video corto del proyecto funcionando, por si algo falla el día de la presentación.
Errores que arruinan un proyecto el día de la feria
- Cables sueltos en el traslado. La protoboard se mueve en la mochila. Fijen la placa a una base de cartón o madera y revisen todo al llegar.
- Pilas de 9 V para motores. Se descargan en minutos. Usen 4 pilas AA o un power bank.
- Olvidar el GND común. Si el Arduino y el driver de motores no comparten tierra, el robot hace cosas raras.
- 5 V en un ESP32. Sus pines trabajan a 3.3 V. Revisen cada sensor antes de conectarlo.
- Copiar el código sin entenderlo. El jurado pregunta. Comenten cada línea con sus propias palabras.
- No llevar repuestos. Un LED, una resistencia y un cable extra caben en un sobre.
Qué kit conviene según el proyecto
Si van a hacer más de un proyecto, o si el colegio quiere que toda la sección participe, un kit sale más barato que las piezas sueltas y trae el ebook con el código y los diagramas.
| Kit | Precio por alumno | Proyectos de esta lista que cubre |
|---|---|---|
| Explorador | S/ 55 | 1 y 3 (más un pulsador); 2, 4, 5, 6, 8, 10, 12 y 15 sumando su sensor |
| Inventor | S/ 120 | Todo lo anterior, más el 7 completo y la base del 13 (sensor de línea, motor y L298N) |
| Ingeniero | S/ 200 | Todo lo anterior, más el ESP32 del 14 y el chasis 2WD para el 13 |
Para colegios que quieren llevar Arduino a toda una sección, el paquete Aula Explorador trae 30 kits con capacitación docente por S/ 1,200. En la guía para implementar un aula de robótica explicamos cómo elegir equipos por nivel y armar el presupuesto, y en educación STEAM con ejemplos por grado mostramos cómo un proyecto como estos se trabaja junto con otras áreas. Para los grados menores de primaria, los 6 proyectos con kit tipo WeDo 2.0 se arman con piezas y se programan por bloques.
Los componentes de esta lista están en nuestras tiendas de Surco y San Miguel. Si tienes dudas con un circuito, escríbenos por WhatsApp al 923 692 807 con el número del proyecto.
Preguntas frecuentes
¿Qué proyecto con Arduino es fácil para una feria de ciencias?
El medidor de tiempo de reacción y el semáforo con cruce peatonal se arman en una tarde con el Kit Explorador. El medidor de reacción tiene ventaja en la feria porque permite hacer un experimento real: medir a varios compañeros, comparar la mano derecha con la izquierda y sacar promedios.
¿Arduino sirve para alumnos de primaria?
Sí, desde 5.º y 6.º de primaria con acompañamiento de un adulto, empezando por los proyectos fáciles de esta lista, que usan pocos cables y un código corto. Para grados menores recomendamos el kit compatible tipo WeDo 2.0, que se arma con piezas y se programa por bloques.
¿Cuánto cuesta hacer un proyecto con Arduino para la feria?
La base (Arduino Nano, protoboard, cables y resistencias) cuesta S/ 51 en piezas sueltas, o S/ 55 en el Kit Explorador, que además trae LEDs, buzzer y el ebook. A eso se suman los componentes de cada proyecto: la mayoría de sensores de esta lista cuesta entre S/ 5 y S/ 14.
¿Qué hace innovador a un proyecto de feria de ciencias?
Que responda una pregunta concreta de tu entorno y que tenga datos medidos por ustedes. Un sismógrafo casero que compara maquetas con y sin aislamiento, o un riego automático que mide cuánta agua ahorra, pesan más ante el jurado que un robot que solo se mueve.
¿Necesito saber programar para hacer estos proyectos?
No para los fáciles: el código viene completo y cada línea está comentada. Lo importante es entender qué hace cada parte, porque el jurado lo va a preguntar. Para los intermedios y avanzados ayuda haber hecho antes uno o dos proyectos fáciles.
¿Dónde compro los materiales en Lima?
En nuestras tiendas de Surco (Av. Primavera 2261, stand 217) y San Miguel (Av. La Marina 2910, stand E1), o por WhatsApp al 923 692 807. Todos los componentes de esta lista tienen precio de nuestro catálogo.
