diff --git a/lsn50-v2-xkc-y25-v-drainage/docs/circuito-funcional.md b/lsn50-v2-xkc-y25-v-drainage/docs/circuito-funcional.md new file mode 100644 index 0000000..2ed4910 --- /dev/null +++ b/lsn50-v2-xkc-y25-v-drainage/docs/circuito-funcional.md @@ -0,0 +1,63 @@ +# Circuito funcional + +## Objetivo + +Conectar la salida `OUT` del `XKC-Y25-V` a `PA12` del `LSN50 v2` sin: + +- inyectar `5V` directamente al GPIO +- dejar la entrada flotante +- degradar la lectura digital durante la ventana válida + +## Alimentación del XKC + +- `XKC VCC` -> pin `14` del LSN50 (`+5V`) +- `XKC GND` -> pin `15` del LSN50 (`GND`) + +## Entrada digital objetivo + +- `PA12` -> pin `24` + +## Estado por defecto y protección + +Se dejó validado este enfoque: + +### Pull-up fijo +- resistencia `47k` +- entre pin `24 (PA12)` y pin `13 (VDD)` + +### Diodo de bloqueo +- diodo recomendado: `1N4148` +- alternativa equivalente: `1N914` +- schottky válida si se prefiere: `BAT54` o `1N5819` + +### Orientación +- cátodo del diodo hacia `OUT` del XKC +- ánodo del diodo hacia `PA12` + +## Qué consigue este circuito + +- `PA12` queda alto por defecto por el pull-up +- si el `XKC` fuerza bajo, el diodo conduce y baja `PA12` +- si `OUT` sube a `5V`, el diodo queda inverso y bloquea la inyección hacia `PA12` +- se elimina el riesgo de meter `5V` directos al GPIO +- se reducen estados intermedios por flotación + +## Validación observada + +### Detectando agua +- `raw_hex: "0e5f7fff003802ffffffff"` +- `byte6 = 0x02` +- `PA12 = 1` +- `drenaje = 1` +- medida observada en `PA12`: aproximadamente `3.6 V` + +### Sin detectar agua +- `raw_hex: "0e5f7fff003900ffffffff"` +- `byte6 = 0x00` +- `PA12 = 0` +- `drenaje = 0` +- medida observada en `PA12`: aproximadamente `0.47 V` + +## Observación importante + +Fuera de la ventana de alimentación pueden observarse tensiones intermedias o comportamientos parciales. Lo importante en este kit es que durante la ventana real de muestreo el bit se comporta de forma estable y correlacionada. \ No newline at end of file