simular este circuito : esquema creado usando CircuitLab
Se puede utilizar un controlador Mosfet estándar, y con una pequeña modificación hará lo que quiera. Si tomamos como ejemplo un solenoide de 12V que dibuja 1A.
El mosfet Q1 del canal N se enciende al aplicar una señal de 5 V a su puerta a través de R3. R3 no siempre es necesario, pero previene un pico de corriente cuando se enciende el mosfet debido a la carga de la capacidad de la compuerta.
Con Q1 encendido, y sin un circuito corto o abierto en el cableado, 1A debe fluir a través de R1 produciendo 1V a través de él. Alimente esto a una entrada ADC (convertidor analógico a digital) en el procesador para medir el voltaje. Debería esperar una medición de alrededor de 1 V si todo está bien, pero debe tener en cuenta las tolerancias, así que busque un rango de, por ejemplo, 0,8 V a 1,2 V.
Si mide significativamente menos de 1 V, es probable que haya una interrupción en el cableado del solenoide.
Si mide significativamente más de 1 V, es probable que haya un cortocircuito. En este caso, debe apagar el Q1 rápidamente para evitar el sobrecalentamiento. Deberá apagarlo en unos 10 ms, y mientras el Q1 está activado, debe verificar constantemente la sobrecorriente.
El siguiente circuito limitará la corriente de cortocircuito a aproximadamente 3A. El STD12NF06L tiene un Vgs (th) (el voltaje de umbral de la fuente de la puerta) entre 1 y 2V. Digamos que es 2V. Cuando la tensión en R1 aumenta a 3V (equivalente a 3A), la tensión entre la puerta y la fuente ya no es lo suficientemente alta como para mantener el mosfet completamente encendido. Entrará en un modo lineal y limitará la corriente a aproximadamente 3A. Debe apagar el Q1 rápidamente, y no dejarlo en el límite actual durante un período de tiempo prolongado, ya que sufrirá pérdidas térmicas.
R2 / C1 forman un filtro de paso bajo para eliminar el ruido y los picos que pueden regresar de su cable largo al solenoide. Y si eso falla, entonces D2 sujetará los picos a 5V.