Guías · 18 min de lectura

Experimentos de ciencias con Arduino: datos, tablas y gráficas

Experimentos de ciencias con Arduino: 3 prácticas con DS18B20, LDR y HC-SR04, código que genera CSV, Serial Plotter, tabla, gráfica y plan de 2 sesiones.

Hacer experimentos de ciencias con Arduino se resume en seis pasos: los alumnos escriben una pregunta medible y una hipótesis, conectan el sensor adecuado al Arduino; la placa escribe cada medida con su marca de tiempo en el puerto serie con el formato "zaman_ms,deger" (tiempo en ms y valor), la curva se sigue en directo en el Serial Plotter, las líneas del monitor serie se copian y se pasan a una hoja de cálculo como archivo CSV, con la tabla se dibuja una gráfica y la conclusión sale de comparar esa gráfica con la hipótesis. A diferencia de la medición manual con termómetro y cronómetro, Arduino toma 60 puntos en 10 minutos a intervalos iguales, sin cansarse y sin errores de lectura. Así el trabajo del alumno deja de ser apuntar valores y pasa a ser interpretar datos.

En este artículo tienes tres prácticas listas para física, química y biología: la curva de enfriamiento del agua caliente con un DS18B20, la variación de la intensidad de la luz con la distancia con una LDR y el movimiento en un plano inclinado con un HC-SR04 (más una medición de la velocidad del sonido). Cada práctica trae su pregunta, sus variables, el material, un resumen de conexiones, código que compila, una plantilla de tabla de datos y el resultado esperado. Después vienen los pasos para usar el Serial Plotter y pasar los datos a una hoja de cálculo, una tabla de errores de medida y calibración, el desarrollo de dos sesiones de 40 minutos, una plantilla breve de informe de laboratorio y notas de seguridad. Los ejemplos parten de un supuesto: imagina que tienes una clase de 24 alumnos que trabajan en 6 grupos de 4 y que cada grupo dispone de un Arduino Uno y un ordenador. No entramos aquí en el detalle de las conexiones de cada sensor; enlazamos su guía propia en cada caso.

Experimentos de ciencias con Arduino en 6 pasos: de la pregunta a la conclusión

  1. Pregunta e hipótesis: Elige una pregunta medible ("¿El agua caliente se enfría más rápido en los primeros 5 minutos o en los 5 siguientes?") y pide que la hipótesis siga el modelo "Si … entonces … porque …". La hipótesis debe indicar una dirección o un número; decir "cambia" no basta.
  2. Variables: Haz que anoten en una tabla la variable independiente (la que cambias tú: tiempo, distancia, inclinación), la dependiente (la que mide el sensor: temperatura, luz, posición) y las variables controladas (cantidad de agua, la misma linterna, la misma tabla). Cuando un experimento falla, la causa suele ser una variable que no se mantuvo constante.
  3. Sensor y código: Conecta el sensor y carga el código. El código escribe cada línea con el formato "zaman_ms,deger"; la primera es una línea de cabecera con los nombres de las columnas. La placa lleva el tiempo con su propio contador millis(), así que no hace falta cronómetro.
  4. Seguimiento en directo: Antes de la toma definitiva, observa una prueba corta en el Serial Plotter. Si la curva da saltos inesperados (un cable suelto, una sombra, la mano cerca), corrige el problema en ese momento; descubrirlo al terminar es demasiado tarde.
  5. Datos y tabla: Copia las líneas del monitor serie, guárdalas como archivo .csv, impórtalas en la hoja de cálculo y añade la conversión de unidades (ms → s) y las columnas de cálculo.
  6. Gráfica y conclusión: Dibuja una gráfica XY (de dispersión), pon nombre y unidad a los ejes, compárala con la hipótesis y escribe la conclusión con una frase basada en los datos: "Nuestra hipótesis se confirmó o no se confirmó, porque …".

Lista de material y resumen de conexiones

MaterialPor grupoTotal de la clase (6 grupos)Práctica
Arduino Uno + cable USB16Todas
Ordenador (con Arduino IDE instalado)16Todas
Protoboard + 10 cables jumper macho-macho1 juego6 juegosTodas
Sonda DS18B20 sumergible + resistencia de 4,7 kΩ1 + 16 + 61 Enfriamiento
Taza resistente al calor (unos 250 mL) + vaso medidor1 + 16 + 61 Enfriamiento
Agua caliente (unos 60 °C, la reparte el docente)200 mL1,2 L + reserva1 Enfriamiento
LDR + resistencia de 10 kΩ1 + 16 + 62 Luz
Linterna LED pequeña o linterna del móvil + cinta métrica1 + 16 + 62 Luz
Sensor de distancia HC-SR04163 Movimiento
Tabla recta de 1–1,5 m, 2–3 libros, coche de juguete + cartón de 10 × 10 cm1 juego6 juegos3 Movimiento
Termómetro de laboratorio (para comparar)—1Calibración
PrácticaSensorConexión al Arduino UnoComponentes extra y notas
1 EnfriamientoSonda DS18B20Rojo → 5V, negro → GND, amarillo (DQ) → D2Resistencia de 4,7 kΩ entre el cable amarillo y 5V; librerías OneWire y DallasTemperature
2 LuzLDRUna patilla → 5V, la otra → A0Resistencia de 10 kΩ entre A0 y GND (divisor de tensión); no hace falta librería
3 Movimiento y sonidoHC-SR04VCC → 5V, GND → GND, Trig → D9, Echo → D10Sin componentes extra; el cono de unos 15° delante del sensor debe quedar libre

Práctica 1: curva de enfriamiento del agua caliente (DS18B20)

Sonda sumergible de temperatura DS18B20 con punta de acero inoxidable
La punta metálica de la sonda DS18B20 sumergible puede ir directamente en el agua; con sus cables rojo, negro y amarillo se conecta a un solo pin digital del Arduino.

Pregunta: ¿El agua caliente se enfría lo mismo cada minuto o el enfriamiento se va haciendo más lento? Ejemplo de hipótesis: "Cuando la diferencia de temperatura entre el agua y el aula es grande, el agua se enfría rápido; a medida que la diferencia disminuye, se enfría más despacio." Variable independiente: el tiempo; variable dependiente: la temperatura del agua; variables controladas: cantidad de agua (200 mL), tipo de recipiente, su sitio en la mesa y la temperatura del aula. También puedes plantear una segunda pregunta a los grupos: ¿hay diferencia entre una taza con tapa y otra sin tapa, o entre un vaso de vidrio y uno de cartón? Entonces la variable independiente es el tipo de recipiente, dos grupos miden a la vez y comparan sus curvas. Para la conexión y la instalación de las librerías consulta la guía del DS18B20. Si solo tienes un DHT11, no lo metas nunca en agua: la práctica equivalente y segura con un DHT11 consiste en calentar el sensor un minuto en la mano, dejarlo sobre la mesa y medir cómo se enfría al aire (guía del DHT11).

C++ (Arduino IDE)
1// Deney 1: Sıcak suyun soğuma eğrisi / Experiment 1: cooling curve of hot water
2// Kütüphaneler: OneWire + DallasTemperature / Libraries: OneWire + DallasTemperature
3#include <OneWire.h>
4#include <DallasTemperature.h>
5
6const int ONE_WIRE_PIN = 2;                // DS18B20 veri (DQ) pini / data (DQ) pin
7const unsigned long INTERVAL_MS = 10000;   // 10 saniyede bir ölçüm / one reading every 10 s
8const bool PLOTTER_MODE = false;           // true: Serial Plotter için yalnız değer / value only for Serial Plotter
9
10OneWire oneWire(ONE_WIRE_PIN);
11DallasTemperature sensors(&oneWire);
12unsigned long startMs = 0;
13unsigned long lastMs = 0;
14
15void setup() {
16  Serial.begin(9600);
17  sensors.begin();
18  if (!PLOTTER_MODE) {
19    Serial.println("zaman_ms,sicaklik_C");  // CSV başlık satırı / CSV header line
20  }
21  startMs = millis();
22  lastMs = startMs - INTERVAL_MS;           // ilk ölçüm hemen / first reading right away
23}
24
25void loop() {
26  unsigned long now = millis();
27  if (now - lastMs < INTERVAL_MS) {
28    return;                                 // daha zamanı gelmedi / not time yet
29  }
30  lastMs += INTERVAL_MS;                    // kaymayan zamanlama / drift-free timing
31
32  sensors.requestTemperatures();            // ölçümü başlat (~750 ms) / start conversion (~750 ms)
33  float tempC = sensors.getTempCByIndex(0);
34  if (tempC == DEVICE_DISCONNECTED_C) {     // sensör yanıt vermedi / sensor did not respond
35    return;
36  }
37
38  if (PLOTTER_MODE) {
39    Serial.print("sicaklik_C:");
40    Serial.println(tempC, 2);
41  } else {
42    Serial.print(now - startMs);            // deney başından beri ms / ms since start
43    Serial.print(",");
44    Serial.println(tempC, 2);
45  }
46}
Tiempo (s)Temperatura del agua T (°C)Temperatura del aula T_aula (°C)Diferencia ΔT = T − T_aula (°C)Fracción restante ΔT / ΔT₀
0………1,00
60…………
120…………
300…………
600…………
900…………
1200…………

El código escribe una línea cada 10 segundos; una medición de 20 minutos son 120 líneas. El tiempo viene del contador millis() de la placa y, como a la variable lastMs se le suma exactamente 10 000 cada vez, las medidas no se desplazan con el tiempo; tienes el detalle de esta técnica en el artículo sobre millis() y delay(). Si cambias a true el valor de PLOTTER_MODE al principio del código, desaparece la columna de tiempo y el Serial Plotter dibuja solo la temperatura (sicaklik_C). La plantilla de arriba es la tabla resumen para el informe; los datos completos quedan en el archivo CSV. Mide la temperatura del aula al principio con el mismo sensor al aire y anótala. Resultado esperado: La curva no es una recta, sino una curva que se va aplanando: en los primeros minutos la temperatura baja deprisa y después el descenso se frena. La razón es la ley de enfriamiento de Newton: la velocidad de enfriamiento es proporcional a la diferencia de temperatura entre el cuerpo y el entorno. Los alumnos que calculan la última columna ven que la diferencia se reduce aproximadamente en la misma proporción en tiempos iguales; si, por ejemplo, la diferencia se reduce a la mitad en los primeros 8 minutos, en los 8 siguientes vuelve a reducirse a la mitad. La taza con tapa se enfría más despacio porque se pierde menos calor por evaporación. En biología, la misma práctica repetida con recipientes pequeños y grandes sirve para comentar por qué los animales pequeños pierden calor más rápido.

Práctica 2: intensidad de la luz y distancia (LDR)

Sensor de luz LDR (fotorresistencia)
La resistencia de la LDR baja cuando aumenta la luz. Con una resistencia de 10 kΩ formando un divisor de tensión, la entrada A0 del Arduino convierte ese cambio en un número entre 0 y 1023.

Pregunta: ¿Cómo disminuye la intensidad de la luz al alejarnos de la fuente? Si la distancia se duplica, ¿la luz baja a la mitad o a la cuarta parte? Ejemplo de hipótesis: "Si la distancia se duplica, la intensidad de la luz baja a la cuarta parte." Variable independiente: la distancia de la linterna a la LDR (10, 15, 20, 30, 40 y 50 cm); variable dependiente: el valor leído en A0; variables controladas: la misma linterna, las mismas pilas, la linterna apuntando perpendicular a la LDR y la luz ambiente. Haz la práctica con las cortinas cerradas y, si es posible, con las luces del aula atenuadas; con mucha luz ambiente, la aportación de la linterna se pierde a distancias grandes. Con esta conexión, el valor leído sube cuando aumenta la luz; la lógica del divisor de tensión está en la guía de la LDR. Desplaza la linterna a lo largo de la cinta métrica, espera 5 segundos en cada distancia hasta que el valor se estabilice y anota en la tabla tres valores seguidos del monitor serie. Al empezar, toma una medida con la linterna apagada: es el valor de fondo del ambiente. Si el valor a la distancia mayor queda muy cerca del fondo, no incluyas esa distancia en la gráfica.

C++ (Arduino IDE)
1// Deney 2: Işık şiddeti ve mesafe / Experiment 2: light intensity and distance
2// Bağlantı: 5V - LDR - A0 - 10 kΩ - GND / Wiring: 5V - LDR - A0 - 10 kΩ - GND
3const int LDR_PIN = A0;                    // bölücünün orta noktası / divider midpoint
4const unsigned long INTERVAL_MS = 500;     // yarım saniyede bir satır / one line every 0.5 s
5const int SAMPLES = 16;                    // ortalama için örnek sayısı / samples per average
6const bool PLOTTER_MODE = false;           // true: Serial Plotter için yalnız değer / value only for Serial Plotter
7
8unsigned long startMs = 0;
9unsigned long lastMs = 0;
10
11int readAverage() {
12  long sum = 0;
13  for (int i = 0; i < SAMPLES; i++) {
14    sum += analogRead(LDR_PIN);             // 0 (karanlık) ... 1023 (aydınlık) / dark ... bright
15    delay(2);
16  }
17  return (int)(sum / SAMPLES);              // gürültüyü azaltır / reduces noise
18}
19
20void setup() {
21  Serial.begin(9600);
22  if (!PLOTTER_MODE) {
23    Serial.println("zaman_ms,ldr_ham");     // CSV başlık satırı / CSV header line
24  }
25  startMs = millis();
26  lastMs = startMs - INTERVAL_MS;           // ilk ölçüm hemen / first reading right away
27}
28
29void loop() {
30  unsigned long now = millis();
31  if (now - lastMs < INTERVAL_MS) {
32    return;
33  }
34  lastMs += INTERVAL_MS;
35
36  int raw = readAverage();
37  if (PLOTTER_MODE) {
38    Serial.print("ldr_ham:");
39    Serial.println(raw);
40  } else {
41    Serial.print(now - startMs);            // deney başından beri ms / ms since start
42    Serial.print(",");
43    Serial.println(raw);
44  }
45}
Distancia d (cm)1 / d² (1/cm²)Medida 1Medida 2Medida 3Media en brutoResistencia de la LDR (Ω)
Linterna apagada—……………
100,0100……………
150,0044……………
200,0025……………
300,0011……………
400,0006……………
500,0004……………

El código escribe cada medio segundo la media de 16 lecturas, de modo que se suavizan las pequeñas oscilaciones de cada analogRead. Para calcular la resistencia de la LDR, si la media en bruto está en la columna F, escribe en la columna G la fórmula =10000*(1023-F3)/F3 y arrástrala hacia abajo (válida para una resistencia fija de 10 kΩ y la LDR conectada a 5V). Resultado esperado: Al aumentar la distancia, el valor leído baja, y baja deprisa cerca y despacio lejos. Pero el valor en bruto no cae a la cuarta parte al pasar de 10 a 20 cm, porque ese número no es la intensidad de la luz, sino el equivalente de la tensión del divisor. Para ver la ley del inverso del cuadrado, lleva la distancia y la resistencia de la LDR a una gráfica con los dos ejes logarítmicos: los puntos quedan aproximadamente sobre una recta. La intensidad de la luz es inversamente proporcional al cuadrado de la distancia y la resistencia de la LDR es inversamente proporcional, aproximadamente, a la intensidad elevada a γ; por eso la pendiente de la recta no sale 2, sino 2 × γ. En las LDR habituales γ suele estar entre 0,5 y 0,9, así que cabe esperar una pendiente entre 1 y 1,8. En física de bachillerato es una buena ocasión para debatir cómo influye el comportamiento del propio instrumento en el resultado.

La LDR no es un instrumento lineal y dos LDR pueden dar valores distintos con la misma luz. No presentes los valores en bruto como si fueran lux ni los compares directamente entre grupos; que cada grupo dibuje su propia curva con su propia LDR. Además, la ley del inverso del cuadrado solo se cumple con una fuente pequeña (puntual) y a distancias mucho mayores que el tamaño de la fuente: no midas a 5 cm de un flexo grande, trabaja con una linterna LED pequeña a 10 cm o más.

Práctica 3: movimiento en un plano inclinado y velocidad del sonido (HC-SR04)

Sensor de distancia por ultrasonidos HC-SR04
El HC-SR04 emite un pulso de sonido y mide cuánto tarda en volver el eco. Con unas 16 medidas por segundo se obtiene la gráfica posición-tiempo de un objeto que se acerca.

Pregunta: Un coche que se suelta en un plano inclinado, ¿baja a velocidad constante o va cada vez más rápido? ¿Cómo cambia la aceleración al aumentar la inclinación? Ejemplo de hipótesis: "El coche recorre cada vez más distancia en tiempos iguales, es decir, acelera; si aumenta la inclinación, también aumenta la aceleración." Variable independiente: el tiempo (en una segunda ronda, la inclinación: 1, 2 y 3 libros); variable dependiente: la distancia del coche al sensor; variables controladas: el coche, el punto de salida y la tabla. Montaje: levanta un extremo de una tabla recta de 1–1,5 m con libros y coloca el HC-SR04 en el extremo bajo, mirando hacia la tabla. Pega en la parte trasera del coche de juguete un cartón de 10 × 10 cm; el sensor no recibe un eco fiable de objetos pequeños y redondos, mientras que un cartón plano devuelve un eco fuerte. Sujeta el coche a unos 100 cm del sensor, suéltalo y pon un libro delante del sensor para que el coche no choque con él. El principio de funcionamiento y el alcance del sensor están en la guía del HC-SR04.

C++ (Arduino IDE)
1// Deney 3: Eğik düzlemde hareket ve ses hızı / Experiment 3: motion on a ramp and speed of sound
2const int TRIG_PIN = 9;                    // tetik / trigger
3const int ECHO_PIN = 10;                   // yankı / echo
4const unsigned long INTERVAL_MS = 60;      // ölçümler arası en az ~60 ms / at least ~60 ms between pings
5const bool PLOTTER_MODE = false;           // true: Serial Plotter için yalnız değer / value only for Serial Plotter
6const bool RAW_ECHO_US = false;            // true: ses hızı deneyi için yankı süresi (µs) / echo time for speed of sound
7
8unsigned long startMs = 0;
9unsigned long lastMs = 0;
10
11void setup() {
12  pinMode(TRIG_PIN, OUTPUT);
13  pinMode(ECHO_PIN, INPUT);
14  digitalWrite(TRIG_PIN, LOW);
15  Serial.begin(9600);
16  if (!PLOTTER_MODE) {
17    Serial.println(RAW_ECHO_US ? "zaman_ms,yanki_us" : "zaman_ms,mesafe_cm");  // CSV başlığı / CSV header
18  }
19  startMs = millis();
20  lastMs = startMs - INTERVAL_MS;           // ilk ölçüm hemen / first reading right away
21}
22
23void loop() {
24  unsigned long now = millis();
25  if (now - lastMs < INTERVAL_MS) {
26    return;
27  }
28  lastMs += INTERVAL_MS;
29
30  digitalWrite(TRIG_PIN, LOW);
31  delayMicroseconds(2);
32  digitalWrite(TRIG_PIN, HIGH);             // 10 µs tetik darbesi / 10 µs trigger pulse
33  delayMicroseconds(10);
34  digitalWrite(TRIG_PIN, LOW);
35
36  unsigned long echoUs = pulseIn(ECHO_PIN, HIGH, 25000UL);  // en fazla 25 ms (~4 m) / max 25 ms (~4 m)
37  if (echoUs == 0) {                        // yankı yok, satırı atla / no echo, skip the line
38    return;
39  }
40  float distanceCm = echoUs * 0.0343 / 2.0; // 343 m/s, gidiş-dönüş / round trip
41
42  if (PLOTTER_MODE) {
43    Serial.print("mesafe_cm:");
44    Serial.println(distanceCm, 1);
45  } else {
46    Serial.print(now - startMs);            // deney başından beri ms / ms since start
47    Serial.print(",");
48    if (RAW_ECHO_US) {
49      Serial.println(echoUs);
50    } else {
51      Serial.println(distanceCm, 1);
52    }
53  }
54}
ColumnaCabeceraContenido o fórmula¿Qué muestra?
Azaman_msViene del CSVTiempo transcurrido desde el inicio
Bmesafe_cmViene del CSVDistancia del coche al sensor
Czaman_s=A2/1000Eje horizontal de la gráfica
Dyol_cm=B$2-B2Distancia recorrida desde el punto de salida
Ehiz_cm_s=(D7-D2)/(C7-C2), empieza en E7Velocidad media en un intervalo de unos 0,3 s
Fkosul1, 2 o 3 librosA qué intento pertenece la fila

El código escribe una línea cada 60 ms, es decir, unas 16 por segundo; se recomienda dejar ese margen entre medidas para que los ecos del HC-SR04 no se mezclen. Si no llega eco (el objeto está fuera de alcance o inclinado), esa línea se omite. Calcula la velocidad no con dos líneas consecutivas, sino con 5 líneas de separación; con intervalos de 60 ms, incluso una oscilación de medida de 1–2 mm hace bailar mucho la velocidad. Resultado esperado: La gráfica posición-tiempo no es una recta, sino una curva cada vez más empinada (una parábola); la gráfica velocidad-tiempo, en cambio, es aproximadamente una recta, es decir, el coche acelera con aceleración constante y la pendiente de esa recta da la aceleración. En un plano inclinado sin rozamiento la aceleración sería g × sen θ: con una tabla de 1,5 m levantada 10 cm, sen θ ≈ 0,067 y la aceleración ronda los 65 cm/s². Que el valor medido salga menor se debe al rozamiento y al giro de las ruedas, y se anota en el informe como fuente de error. Variante de la velocidad del sonido: pon RAW_ECHO_US a true, coloca un cartón plano frente al sensor a 20, 40, 60, 80 y 100 cm y calcula la media del tiempo de eco en cada distancia. En una gráfica con el recorrido de ida y vuelta (2 × d) en el eje horizontal y el tiempo en el vertical, la pendiente es 1/v; v sale alrededor de 340 m/s a temperatura ambiente y aumenta con la temperatura (aproximadamente v ≈ 331 + 0,6 × T m/s). El método de la pendiente elimina además por sí solo el retardo fijo interno del sensor.

Serial Plotter y cómo pasar los datos a una hoja de cálculo

  1. Después de cargar el código, abre Herramientas > Monitor Serie y elige 9600 baudios, igual que en el código. El botón de marca de tiempo debe estar desactivado; si está activo, se añade la hora del ordenador al principio de cada línea y el CSV se estropea.
  2. Antes de empezar a medir, borra la salida y pulsa el botón RESET de la placa. Así el tiempo empieza en 0 y la primera línea es una cabecera como zaman_ms,sicaklik_C.
  3. Para la gráfica en directo, cambia PLOTTER_MODE a true en el código, vuelve a cargarlo y abre Herramientas > Serial Plotter. El Serial Plotter no guarda los datos, solo los muestra; por eso úsalo en la ronda de prueba, y en la ronda de registro deja PLOTTER_MODE en false.
  4. Al terminar, selecciona con el ratón las líneas del monitor serie desde la cabecera hasta la última y cópialas con Ctrl+C (Cmd+C en macOS). Pégalas en un editor de texto plano y guarda el archivo con un nombre que incluya grupo, práctica y fecha, como grupo2-enfriamiento-0411.csv.
  5. Importa el archivo en la hoja de cálculo: en Excel con Datos > Desde el texto/CSV, en Hojas de cálculo de Google con Archivo > Importar y en LibreOffice Calc abriendo el archivo directamente. Elige la coma como separador.
  6. Atención al separador decimal: Arduino escribe con punto, como 23.50, mientras que las hojas de cálculo configuradas en español esperan coma. Al importar, elige la configuración regional Inglés (Estados Unidos) o sustituye los puntos por comas; si no, 23.50 se leerá como texto o como fecha y la gráfica saldrá vacía.
  7. Añade las columnas de cálculo (ms → s, diferencia, fracción, velocidad) y dibuja la gráfica como gráfico de dispersión XY. Un gráfico de líneas trata el eje horizontal como categorías equiespaciadas, y en las filas omitidas el eje de tiempo queda falseado.

Una buena gráfica de laboratorio se reconoce por cuatro cosas: la variable independiente en el eje horizontal, la dependiente en el vertical, nombre y unidad en los dos ejes ("Tiempo (s)", "Temperatura (°C)") y un título que diga lo que muestra ("Enfriamiento de 200 mL de agua en una taza sin tapa"). Mostrar dos condiciones en la misma gráfica con colores distintos (con tapa y sin tapa, 1 y 3 libros) permite compararlas de un vistazo. Antes de mirar la gráfica, pide a los alumnos que respondan con un boceto a mano a la pregunta "si nuestra hipótesis es correcta, ¿cómo debería verse la gráfica?"; poner el boceto junto a la gráfica real es la forma más sencilla de redactar la conclusión. La frase de conclusión debe apoyarse siempre en un número: "En los primeros 5 minutos el agua se enfrió … °C y en los 5 siguientes, … °C." Las reglas para fijar la escala y poner etiquetas en el Serial Plotter están en la guía del monitor serie. Si no quieres copiar a mano mediciones largas, puedes guardar los datos directamente en un archivo con Python y, para medir sin ordenador, hacer un registro CSV con un módulo de tarjeta SD.

Errores de medida y calibración

AspectoLo que debes saber¿Qué hacer en clase?
Precisión del DS18B20±0,5 °C entre −10 y +85 °C; con 12 bits cada medida tarda unos 750 ms.Antes de medir, mete todas las sondas en el mismo recipiente con agua y hielo; anota su diferencia respecto a 0 °C y corrígela en la tabla.
Precisión del DHT11±2 °C entre 0 y 50 °C; como máximo 1 medida por segundo y respuesta lenta.No lo metas en agua, úsalo solo en prácticas con aire; no bajes el intervalo de medida de 1 segundo.
LDRNo es lineal, varía de una pieza a otra y tarda en estabilizarse cuando cambia la luz.Usa la misma LDR durante toda la práctica, espera 5 s en cada distancia e interpreta el resultado solo dentro de los datos del propio grupo.
HC-SR042–400 cm, resolución de unos 3 mm; la velocidad del sonido cambia unos 0,6 m/s por cada 1 °C; cono de unos 15°.Compruébalo con la cinta métrica a 20 y 50 cm; el objetivo debe ser plano y perpendicular al sensor, sin otros objetos en el camino.
Frecuencia de muestreoMedir muy poco a menudo se pierde la forma de la curva; medir demasiado a menudo genera ruido y archivos innecesariamente grandes.Elígela según la duración del fenómeno: enfriamiento 10 s, luz 0,5 s, movimiento 60 ms. Busca al menos 20–30 puntos durante el fenómeno.
RepeticiónUna sola medida puede ser casualidad; repetir muestra lo fiable que es el resultado.Mide cada condición al menos 3 veces; anota en el informe la media y la diferencia entre el valor mayor y el menor (dispersión).
TiempoCon un cronómetro manual, el tiempo de reacción humano ronda los 0,2 s.Deja el tiempo al contador millis() de la placa; usa el cronómetro solo para comprobar.

Desarrollo de la clase: 2 sesiones de 40 minutos

El desarrollo que sigue sirve para las tres prácticas. Para la primera vez te recomendamos dar la práctica 1 a todos los grupos: es la de montaje más sencillo y, mientras la medida avanza sola, los grupos pueden preparar sus tablas. Cuando la clase ya tenga soltura, puedes repartir los 6 grupos en tres estaciones de dos; si cada práctica la hacen dos grupos, además podrán comparar sus resultados. Cargar los códigos en las placas antes de la clase ahorra 8–10 minutos de la primera sesión. Para tarjetas de roles y organización por estaciones en clases numerosas, consulta el artículo sobre clases numerosas, y para el material y la distribución de las mesas, la guía del laboratorio escolar.

Sesión y minutoDocenteGruposProducto
Sesión 1, 0–5Abre la pregunta con una observación cotidiana: "¿Por qué el té se enfría tan rápido en los primeros minutos?"Anotan la pregunta en el cuaderno y dicen sus primeras predicciones.Pregunta de investigación
Sesión 1, 5–12Explica el modelo de hipótesis y los tipos de variables y reparte los roles: experimentador, tiempo y control, responsable de datos, redactor.Escriben la hipótesis y la tabla de variables.Hipótesis y tabla de variables
Sesión 1, 12–20Muestra la tabla de conexiones; puede tener el código ya cargado.Montan el circuito y ven en el monitor serie la cabecera y los primeros valores.Circuito funcionando
Sesión 1, 20–35Recorre los grupos y comprueba las variables controladas.Realizan la medida: 15 minutos en el enfriamiento, 7 condiciones × 3 repeticiones en la luz, 3 inclinaciones × 3 intentos en el movimiento.Datos en bruto
Sesión 1, 35–40Recuerda la norma para nombrar los archivos.Copian los datos, los guardan como .csv y los dejan en la carpeta común.Archivo CSV
Sesión 2, 0–10Muestra en la pizarra el separador decimal y los pasos de importación.Importan el CSV en la hoja de cálculo y añaden las columnas de cálculo.Tabla ordenada
Sesión 2, 10–22Recuerda la norma de nombres de ejes, unidades y título.Dibujan la gráfica XY y la comparan con el boceto de la hipótesis.Gráfica
Sesión 2, 22–32Pregunta qué filas de la tabla de errores corresponden a la práctica de cada grupo.Redactan la frase de conclusión y las fuentes de error.Párrafo de conclusión y errores
Sesión 2, 32–37Dirige la ronda de gráficas.Explican su gráfica al grupo de al lado en 1 minuto y responden una pregunta.Retroalimentación entre iguales
Sesión 2, 37–40Hace dos de las preguntas de salida de abajo.Escriben respuestas breves en un papel.Tarjeta de salida
  • ¿Cuáles eran la variable independiente y la dependiente, y qué variable mantuviste constante?
  • ¿En qué parte de la gráfica es más rápido el cambio y cómo lo ves en la gráfica?
  • ¿Se confirmó tu hipótesis? ¿En qué dos números te basas para decirlo?
  • Si hubieras medido cada 60 segundos en lugar de cada 10, ¿cómo habría cambiado tu gráfica?
  • ¿Cuál fue la mayor fuente de error y qué cambiarías si repitieras la práctica?

Evaluación: plantilla breve de informe de laboratorio

  • Título y pregunta: Nombre de la práctica, miembros del grupo, fecha y la pregunta de investigación en una frase.
  • Hipótesis: Con el modelo "Si … entonces … porque …", tal como se escribió antes de medir; no se corrige después.
  • Variables: Independiente, dependiente y al menos dos variables controladas.
  • Material y método: Sensor, resumen de conexiones, intervalo de medida y número de repeticiones; con la claridad suficiente para que otro grupo pueda repetir la práctica, en 6 pasos como máximo.
  • Datos: Tabla resumen como la de la plantilla y, como anexo, el nombre del archivo CSV.
  • Gráfica: Gráfica XY con nombres de ejes, unidades y título.
  • Conclusión: ¿Se confirmó la hipótesis? 2–3 frases apoyadas en uno o dos números.
  • Fuentes de error y mejoras: Al menos dos fuentes de error y qué cambiarías si repitieras la práctica. Para calificar puedes adaptar a estos apartados los criterios del artículo sobre la rúbrica para clases de Arduino.

Proyectos de sensores listos en la app, Entender el código y herramientas

Para todos los sensores de estas prácticas hay en BlueGrays proyectos listos con esquema del circuito, lista de componentes y código; los alumnos pueden usarlos para conocer el sensor antes de la práctica. Los gratuitos son Medir la intensidad de luz con LDR, HC-SR04 Medición de distancia (pantalla en serie) y Temperatura y humedad con DHT11; si usas ESP32, también son gratuitos Lectura de la intensidad luminosa con el módulo LDR del ESP32, ESP32 HC-SR04 Medidor de distancia por ultrasonidos y ESP32 DHT22 Temperatura y humedad (con pantalla LCD). En los proyectos gratuitos también están abiertos los bloques y la sección Entender el código: el alumno lee paso a paso qué hace el código y en la tarea Pruébalo tú hace él mismo un pequeño cambio; cómo usar esta sección en clase lo cuenta el artículo sobre Entender el código. Para calcular la tensión del divisor en la práctica de la LDR te sirve la herramienta Divisor de tensión (Premium), y para comprobar las resistencias, las herramientas gratuitas Código de colores y Ley de Ohm. Si quieres abrir a toda la clase proyectos Premium con sensores, como Medición de temperatura con NTC y pantalla LCD 2x16, que muestra la temperatura en un LCD, o Registrador de Temperatura ESP32 (DHT22 + DS1307 RTC + microSD + OLED), que guarda los datos en una tarjeta microSD, para eso están los paquetes para educadores de pago único, con los que los alumnos pasan a Premium sin añadir ninguna tarjeta.

Seguridad: agua caliente, electricidad y agua cerca de los circuitos

  • Agua caliente: No uses agua hirviendo; con unos 60 °C basta y la curva sale igual de clara. Que el agua la reparta el docente y que las tazas estén en el centro de la mesa, donde nadie pueda engancharse con los cables. Durante la medida, la taza no se sujeta con la mano ni se mueve.
  • Agua y electricidad: En el agua solo entra la punta metálica de la sonda sumergible. El Arduino, la protoboard y el ordenador deben estar al menos a 30 cm del recipiente, mejor en una bandeja aparte. Si se derrama agua en la mesa, primero desconecta el cable USB y luego seca.
  • Solo alimentación USB: Todas estas prácticas se alimentan desde el USB del ordenador; ningún aparato conectado a la red eléctrica (hervidor, lámpara, calefactor) se conecta al circuito del Arduino.
  • Cableado: Haz y cambia las conexiones con el USB desconectado. Si un componente se calienta o huele raro, desconecta el USB de inmediato.
  • Luz: No apuntes con la linterna a los ojos de nadie; mirar de cerca una linterna LED potente molesta a la vista.
  • Plano inclinado: La tabla no debe sobresalir de la mesa, el coche se detiene con un libro antes de chocar con el sensor y los libros de debajo de la tabla se colocan de forma que no resbalen.

Un sensor, una salida CSV ordenada y una pregunta bien planteada convierten la práctica de ciencias en algo más que repetir el resultado del libro: en un trabajo de medición real. Los alumnos dibujan sus propias gráficas, discuten sus propias fuentes de error y defienden la conclusión con sus propios números. Si antes de la práctica quieres que conozcan los sensores y monten los circuitos paso a paso desde el móvil, puedes empezar con los proyectos gratuitos de LDR, HC-SR04 y DHT11 de la app BlueGrays.

Preguntas frecuentes

¿Qué experimentos de ciencias se pueden hacer con Arduino?

Cualquier magnitud que pueda medir un sensor se puede convertir en una práctica: temperatura (enfriamiento, calentamiento, aislamiento), luz (distancia, filtros de colores), distancia y movimiento (plano inclinado, péndulo), humedad del suelo (experimentos con plantas), sonido y presión. Para empezar, la curva de enfriamiento, la relación luz-distancia y el plano inclinado son las tres prácticas más fáciles de montar y con el resultado más claro.

¿Cómo pasar los datos de Arduino a Excel?

La forma más sencilla es que el código escriba los datos en el puerto serie como líneas separadas por comas con el formato "zaman_ms,deger". Copias las líneas del monitor serie, las guardas como archivo .csv y las importas en Excel con Datos > Desde el texto/CSV. Con Excel en español, no olvides elegir el punto como separador decimal al importar; si no, los números se leen como texto.

¿El Serial Plotter de Arduino guarda los datos?

No, el Serial Plotter solo muestra una gráfica en directo y no escribe los datos en ningún archivo. Para guardarlos tienes que copiar las líneas CSV del monitor serie, guardarlas en un archivo con un script de Python o usar un módulo de tarjeta SD.

¿Es mejor usar DS18B20 o DHT11 en un experimento de ciencias?

Si vas a medir agua u otro líquido, usa el DS18B20 en versión de sonda sumergible; su precisión de ±0,5 °C y su punta que puede ir en el agua lo hacen adecuado para prácticas de enfriamiento. El DHT11 mide la temperatura y la humedad del aire con una precisión de ±2 °C, no se puede sumergir y responde despacio; úsalo solo en prácticas con aire.

¿Cómo medir la velocidad del sonido con Arduino?

Haces que el HC-SR04 escriba el tiempo de eco en microsegundos y colocas un cartón plano frente al sensor a distintas distancias. Representas el recorrido de ida y vuelta (2 × distancia) frente al tiempo de eco; de la pendiente de la recta sale la velocidad del sonido, que a temperatura ambiente ronda los 340 m/s.

¿Cuántas sesiones hacen falta para un experimento con Arduino?

Para una práctica bastan dos sesiones de 40 minutos: en la primera, hipótesis, montaje y medida; en la segunda, tabla, gráfica, conclusión e informe. Si los códigos se cargan en las placas antes de la clase, queda más tiempo para medir en la primera sesión.

Ver todos los proyectos
Medir la intensidad de luz con LDR
#11Principiante

Medir la intensidad de luz con LDR

¿Quieres ver en números cuánta luz hay en tu habitación? El LDR, una pequeña pieza sensible a la luz, mide la luz ambiente y el Arduino escribe el valor en la pantalla del ordenador cada medio segundo

4.6(81)
138
HC-SR04 Medición de distancia (pantalla en serie)
#27Principiante

HC-SR04 Medición de distancia (pantalla en serie)

El sensor HC-SR04 funciona igual que un murciélago que se orienta en la oscuridad: emite un sonido que no puedes oír, escucha el eco y mide a qué distancia está el objeto que tiene delante. El Arduino

4.6(46)
71
Temperatura y humedad con DHT11
#55Intermedio

Temperatura y humedad con DHT11

¿Qué temperatura hace en tu habitación, y el aire está húmedo o seco? El sensor DHT11 mide la temperatura y la humedad, y el Arduino escribe los valores en una pantalla LCD de dos líneas, actualizándo

4.7(47)
73
Lectura de la intensidad luminosa con el módulo LDR del ESP32
#113Principiante

Lectura de la intensidad luminosa con el módulo LDR del ESP32

Visualización en tiempo real en el monitor serie del valor bruto del ADC del módulo LDR y del porcentaje relativo de luz calculado a partir de referencias de oscuridad y claridad. Este porcentaje no es una medición en lux. Explica el funcionamiento de la calibración del módulo. Es recomendable realizarlo antes del Proyecto 10, ya que se utiliza para determinar el valor umbral.

4.6(36)
55
ESP32 HC-SR04 Medidor de distancia por ultrasonidos
#116Intermedio

ESP32 HC-SR04 Medidor de distancia por ultrasonidos

El sensor ultrasónico HC-SR04 calcula la distancia midiendo el tiempo de vuelo (Time of Flight) de la onda sonora que emite al chocar contra un objeto y rebotar. En este proyecto, enviaremos un pulso de 10 microsegundos desde el ESP32 al pin TRIG del sensor y leeremos el tiempo de eco procedente del pin ECHO mediante pulseIn(). Mostraremos la distancia calculada en centímetros en una pantalla LCD I2C de 16x2. Dado que el HC-SR04 funciona a 5 V, es obligatorio utilizar un divisor de tensión

4.9(28)
45
ESP32 DHT22 Temperatura y humedad (con pantalla LCD)
#117Intermedio

ESP32 DHT22 Temperatura y humedad (con pantalla LCD)

Se trata de un proyecto que mide la temperatura y la humedad ambientales mediante el sensor DHT22 y las muestra en tiempo real en una pantalla LCD I2C 16x2. Los datos del sensor se leen mediante el protocolo de un solo cable (one-wire) utilizando la biblioteca DHT de Adafruit. Este proyecto constituye la base para estaciones meteorológicas IoT, sistemas de automatización doméstica inteligente o sistemas de monitorización ambiental en invernaderos.

4.8(38)
56
Medición de temperatura con NTC y pantalla LCD 2x16
#44Principiante
Premium

Medición de temperatura con NTC y pantalla LCD 2x16

Mide la temperatura del ambiente con un sensor que parece una pequeña cuenta. Esta pieza, llamada NTC, deja pasar la electricidad con más facilidad cuanto más se calienta; el Arduino lee ese cambio, l

4.5(33)
44
Registrador de Temperatura ESP32 (DHT22 + DS1307 RTC + microSD + OLED)
#144Avanzado
Premium

Registrador de Temperatura ESP32 (DHT22 + DS1307 RTC + microSD + OLED)

¡Construye un registrador de temperatura con marca de tiempo con ESP32! Lee temperatura/humedad del DHT22 cada minuto, obtén la hora real del DS1307 RTC y registra en tarjeta microSD como CSV. El OLED muestra en vivo la temperatura (fuente grande), porcentaje de humedad, marca de tiempo y contador de registros. El archivo /temp_log.csv en la tarjeta SD se abre en Excel, Google Sheets o Python pandas para análisis — perfecto para monitoreo de invernadero, seguimiento de temperatura del hog

4.7(7)
12