
Plantilla cómo lo arreglo “¿Qué está mal y cómo lo arreglo?”: Claude vs Claude Code depurando error
Seguimos con la serie de plantillas de prompts, y en este vídeo toca la plantilla de depuración: "¿Qué está mal y cómo lo arreglo?". La pongo a prueba con un código real, con un fallo intencionado, para un sensor de luz (LDR) en Arduino.
El código con el error
El síntoma: el Monitor Serie solo muestra 0, siempre, por mucho que cambie la luz que le llega al sensor.
Este es el sketch de partida, el que se le pasó a Claude:
int pinLDR = A0; // el LDR está conectado al pin analógico A0
int valorLuz;
void setup() {
Serial.begin(9600);
pinMode(pinLDR, INPUT);
}
void loop() {
valorLuz = digitalRead(pinLDR); // leemos el valor del sensor
Serial.print("Nivel de luz: ");
Serial.println(valorLuz);
delay(500);
}
El prompt, sin ser perfecto
El prompt que usé fue deliberadamente sencillo, casi mínimo, para comprobar si funcionaba igual de bien sin pulirlo demasiado: "Para un sensor de luz en Arduino, pero falla y no sé por qué. Revisa bien cada línea de código y cuando encuentres el error, dímelo." No es el prompt perfecto, como digo en el propio vídeo, pero es exactamente el tipo de prompt que un alumno real escribiría la primera vez.
Primer intento: Claude en el chat
La respuesta encuentra el error correcto: la línea usa digitalRead en vez de analogRead. digitalRead solo puede devolver 0 o 1 (hay tensión o no la hay por encima de un umbral fijo), mientras que un LDR necesita un rango de valores (0 a 1023) para saber cuánta luz hay, no solo si hay o no hay. Por eso el resultado es casi siempre 0.
La explicación está bien y el diagnóstico es correcto, pero se queda ahí: no reescribe el sketch completo ya corregido. Para un alumno que solo quiere entender el error y corregirlo él mismo, esto está bien; para llevarlo al aula como material ya terminado, falta un paso.
Segundo intento: el mismo prompt en Claude Code
Para comparar, pasé exactamente el mismo prompt y el mismo código a Claude Code. La respuesta hace un repaso línea a línea de todo el sketch (confirmando qué partes están correctas: la declaración del pin, el Serial.begin, el pinMode, el delay), señala el mismo error exacto (digitalRead en vez de analogRead), y esta vez sí entrega el sketch completo, ya corregido y comentado, listo para copiar y comparar:
int pinLDR = A0; // el LDR está conectado al pin analógico A0
int valorLuz;
void setup() {
Serial.begin(9600);
// pinMode no es necesario para analogRead, pero no molesta si se deja
}
void loop() {
valorLuz = analogRead(pinLDR); // lectura analógica: rango 0-1023
Serial.print("Nivel de luz: ");
Serial.println(valorLuz);
delay(500);
}
Qué plantilla usar según el momento
La conclusión que me llevo del vídeo, y que creo que vale para cualquier profesor que quiera usar esta plantilla en clase: si el objetivo es que el alumnado piense el error y lo corrija por sí mismo, el chat normal de Claude ya es suficiente, y quizás incluso mejor, porque no da la solución completa servida, obliga a completar el razonamiento. Pero si el objetivo es que el propio profesor tenga rápido el código ya corregido y comentado para explicarlo en la pizarra o repartirlo tal cual, Claude Code hace la vuelta completa de una sola vez, sin tener que pedir el sketch entero como paso aparte.
Dos formas de aplicar la misma plantilla de depuración, según lo que realmente necesitas en ese momento de la clase.



