les vencimos · offline
L31. Cuando algo no responde
Maestro
Cuando un módulo calla, el orden de las preguntas ahorra una tarde. Primero alimentación. Luego masa. Luego dirección o pin. Luego tensión de la familia, 5 o 3,3. El programa va el último, no el primero. Casi siempre el cable tenía razón y el código era inocente.
Alimentación: el módulo tiene tensión en su pin de VCC, medida de verdad o al menos un LED de placa encendido. Muchos se quedan mudos a 0 voltios con el programa perfecto. Masa: un GND del módulo al GND del Uno. Si solo juntaste las alimentaciones y no las masas, no hay circuito de vuelta.
En I2C, SDA y SCL en A4 y A5, no al revés a ver qué pasa. Dirección: la que trae el módulo, no la de otro tutorial. Dos módulos con la misma dirección parecen una avería intermitente. En SPI, el cable de selección tiene que ser el que el programa cree. Un pin de selección flotando deja el chip medio despierto.
Familia de tensión. Un eco de ultrasonidos a 5 voltios contra una placa de 3,3, o un módulo nuevo de 3,3 alimentado con el pin de 5V del Uno, no va más o menos. O no responde, o responde una vez y muere. El catálogo Hardware tiene la ficha. Mírala antes de insistir.
Solo entonces el programa: begin que coincida con el cable, velocidad Serial, biblioteca instalada. Cambia una cosa cada vez. Si cambias el cable, la dirección y el sketch a la vez, no sabrás cuál era.
Montaje
Pines de esta lección
Por qué
Cuando no responde, el impulso es tocar todas las cosas. Eso borra la pista. El orden de esta lección es cerrado: primero, ¿hay alimentación? El LED de encendido de la placa, el USB firme, el 5 V que de verdad sale. Segundo, ¿la masa del sensor es la masa de la placa? Tercero, ¿el número del cable es el número del sketch, y el pinMode es el que toca? Cuarto, ¿el programa llegó a cargarse, o el entorno se quedó en un error? Quinto, el cable suelto de una fila.
Se cambia una sola cosa y se prueba. Si cambias el pin, la resistencia y el umbral, y de pronto funciona, no sabes qué era y mañana repites el rato. Anota la cosa. Un papel al lado de la protoboard es parte del instrumento.
El monitor serie, cuando ya lo conoces, dice si el programa vive: un println al entrar en setup sale una vez por RESET. Si no sale, no estás hablando con ese programa, o el puerto no es el de la placa, o los pines 0 y 1 están ocupados. Si sale y el LED no, el fallo es de cable o de pin, no de carga.
Interrupciones, fusibles y registros no son el siguiente paso de un principiante. Están en Software para cuando el orden de arriba ya se cumplió y el fallo sigue. Saltar a eso antes es esconder un GND suelto debajo de una palabra difícil.
Práctica
- Provoca a propósito un fallo: saca el cable de GND del LED. Aplica la lista antes de volver a mirar el sketch.
- Anota en qué paso lo habrías encontrado. Tiene que ser la masa, el paso dos.
- Devuelve el cable. Saca ahora el pin del sketch, cambia 13 por 12 sin mover el cable. Recorre la lista. Tiene que caer en el paso del número.
- Devuelve el sketch. Cierra el monitor y desenchufa a medias para ver un fallo de carga. Reconócelo.
- Escribe la lista de cinco pasos en un papel y déjala en la mesa.
- En el siguiente proyecto no la saltes porque creas que ya es otra cosa.
- Una modificación, una prueba. Dilo en voz alta antes de tocar el segundo cable.
Anota el montaje
Escribe qué cable va a qué pin, o qué has entendido del paso. Se guarda en este aparato.
Ejemplos resueltos
Se reescribió todo y sigue igual
Había un GND del sensor en una fila vecina. En el camino se cambió el umbral, el pin y la librería. Sigue igual, y ahora hay tres dudas nuevas.
Se vuelve al último sketch que cargaba. Se revisa solo la masa. Cuando enciende, se rehacen los cambios de uno en uno, si aún hacen falta.
El puerto no es la placa
Hay otro aparato USB en el ordenador. El entorno carga en el sitio equivocado y dice que fue bien, pero esta placa sigue con el programa viejo.
Se elige el puerto de esta placa, se pulsa RESET al cargar si hace falta, y se comprueba con un println de setup que es este programa el que habla.
En la mesa
Provoca el fallo del cable de masa y recorre la lista sin saltarte el primer paso, aunque creas saber la respuesta. Decir en voz alta alimentación, masa, pin, carga, fila. El día del fallo de verdad vas a querer saltar al paso que te apetece. El entrenamiento es no saltarlo cuando el fallo es de mentira. Anota en qué número caíste. Si no caíste en la masa, la lista todavía no es tuya.
Devuelve el circuito y provoca el fallo del puerto: elige mal la placa en el entorno, intenta cargar, lee el error, vuelve a elegir bien. Tienes que reconocer el mensaje, aunque sea feo. Un error de carga no se cura con un umbral nuevo.
Deja la lista escrita a mano, cinco líneas, encima de la protoboard, no dentro de un archivo que no abrirás. El papel se ve cuando el LED no se ve.
Ejercicio
Elige un fallo imaginario o uno real. Escribe el orden en que lo mirarías: alimentación, masa, pines o dirección, tensión 5 o 3,3, y al final el programa. Una sola causa por paso.
Autoevaluación
1. ¿Qué se comprueba antes que el sketch?
Alimentación y masa. Luego pines o dirección, y la tensión de la familia.
2. ¿Por qué no cambias cable y programa a la vez?
Porque entonces no sabes cuál de los dos lo arregló, ni cuál lo rompió.
3. Dos módulos I2C con la misma dirección, ¿qué parece?
Una avería. No se entienden. Hay que separar las direcciones.