Hice una serie de PCB para alimentar algunas válvulas solenoides que usan una fuente de alimentación externa. Los cambio con MOSFET BS170 usando un Arduino como señal de puerta. Me basé una solución por Jason S .
Esta es una ilustración de cómo se ve mi circuito:
Al probar los PCB, noté que la mayoría de ellos funcionan bien, pero algunos no. No hay problema, probablemente una cosa de soldadura.
¡Sin embargo, esos defectuosos lograron destruir dos pines digitales Arduino! En uno, obtengo un voltaje constante de 5 V, y el otro genera 0.2 V cuando le envío una señal ALTA, y 0.5 V cuando envío una señal BAJA. Cosas extrañas
Así que supongo que los circuitos defectuosos de alguna manera causaron que (algunos de) los 16 V fluyan a través del Arduino, destruyéndolos.
¿Cómo protejo el Arduino en este escenario de una corriente demasiado alta?
Sé acerca de los diodos zener , pero no tengo idea de cómo colocarlos para proteger las entradas.
Información técnica:
...When MOSFETs fail they often go short-circuit drain to gate...
Citado desde aquí .Respuestas:
El circuito está bien en teoría.
Se requiere una mejora en la práctica.
Agregar un diodo zener de fuente de puerta de digamos 12V (> Vgate_drive) es una muy buena idea en todos los circuitos con carga inductiva. Esto evita que la compuerta sea conducida destructivamente a un nivel alto mediante el acoplamiento de "capacitancia Miller" al drenaje durante variaciones inesperadas o extremas en el voltaje del drenaje.
Monta el zener cerca del MOSFET.
Conecte el ánodo a la fuente y el cátodo a la puerta para que el Zener no conduzca.
La resistencia de accionamiento de la puerta de 10k (como se muestra) es grande y provocará un apagado y encendido lentos y una mayor disipación de energía en el MOSFET. Esto probablemente no sea un problema aquí.
El MOSFET elegido es muy marginal en esta aplicación.
Los MOSFET disponibles mucho mejores de fábrica en Digikey incluyen:
Para 26c / 10 Digikey IRLML6346 SOT23 paquete, 30V, 3.4A, 0.06 Ohm, Vgsth = 1.1V = voltaje de umbral de puerta.
NDT3055 48c / 10 TO251 con plomo 60V, 12A, 0.1 Ohm, Vgsth = 2V
RFD14N05 71c / 10 TO220 50V, 14A, 0.1 Ohm, 2V Vgsth.
ADICIONAL
MOSFETS ADECUADOS PARA UNIDAD DE PUERTA DE 3V:
Sistema acaba destrozado mi respuesta ya :-( Por lo tanto -. MOSFET DEBE tener V (tensión de umbral) de no más de 2V para trabajar correctamente con los controladores de 3V3 de suministro.
Ninguno de los FET sugeridas cumple con este requisito.
Ellos pueden trabajar en cierto modo en el carga actual, pero están sobrecargados y con demasiada pérdida, y la solución no se extiende bien a cargas más grandes
Parece que IRF FETS en el rango de tamaño en cuestión tiene Vth (de Vgsth) <= 2 voltios TODOS tienen códigos numéricos de 4 dígitos que comienzan con 7 excepto IRF3708 .
OK FET incluyen IRFxxxx donde xxxx = 3708 6607 7201 6321 7326 7342 7353 7403 7406 7416 7455 7463 7468 7470
Habrá otros, pero todos los sugeridos parecen tener Vth = 4V o 5V y son marginales o peores en esta aplicación.
Vgsth o Vth debe ser al menos un Volt menos e idealmente varios voltios menos que el voltaje de accionamiento de puerta real.
fuente
Su válvula tiene una capacidad de 500 mA a 12V. Si suministra 16V, consumirá algo más de 500mA. Asumiendo que es una resistencia, consumirá 667mA.
La corriente máxima absoluta para el MOSFET que usó es de 500 mA continuos. Cualquier cosa por encima de las clasificaciones máximas absolutas puede destruir el dispositivo. Esta es probablemente la razón por la que está viendo problemas de confiabilidad.
No hay modo de falla garantizado para MOSFET, por lo que no me sorprende que pueda fallar de tal manera que dañe las salidas de Arduino.
Como Jason mencionó en la respuesta vinculada, BS170 es una mala elección de MOSFET. Necesitas uno mejor. Elija uno en una caja TO-220 que tenga una clasificación de varios amperios. También debe asegurarse de que el Vgs esté clasificado para una unidad de nivel lógico de 5V.
¿Qué diodo estás usando?
fuente
Su válvula está clasificada para ~ 500 mA. Un BS170 también tiene una capacidad de 500 mA, pero esa es la cifra de ventas. Usaría un FET (mucho) más alto aquí, 500 mA a través de un TO92 me pone nervioso. Y tiene una resistencia de compuerta de 1k, lo cual es una buena idea en la mayoría de los casos, pero podría causar que el FET pobre cambie demasiado lentamente para sobrevivir al 0.5A.
¿Qué diodo estás usando? Debe estar clasificado para 0.5A, por lo que un 1n4148 no funcionará. No estoy seguro, pero en realidad podría obtener más de 0.5 porque la parte móvil del valor podría causar un pico aún mayor que una bobina simple.
En su imagen tiene el valor de la corriente de retorno que fluye más allá de la conexión a tierra Arduino. Diría eso a una estrella: conecta el suelo arduino directamente a la fuente de alimentación. O mucho mejor: use un optoacoplador para aislar el circuito de alta corriente del Arduino (y use dos fuentes de alimentación separadas).
fuente
Debe tener una resistencia de fuente de compuerta en su MOSFET para que la compuerta no pueda flotar si la salida de Arduino es de alta impedancia. Dado que la fuente de alimentación del solenoide y la fuente de alimentación Arduino están separadas, este escenario podría ocurrir (a menos que garantice por diseño que el Arduino siempre está encendido primero)
¿El MOSFET está realmente tan lejos del solenoide? Si es así, debe moverse mucho más cerca. Muévalo de modo que el drenaje se conecte directamente a la tira de protoboard donde el cable rojo va al solenoide y al diodo. Luego haga una conexión de fuente corta a la tira GND. Es mejor tener un bucle de señal de puerta más largo (a baja potencia) frente a un bucle largo que transporta energía. También podría mover el Arduino más cerca del solenoide, manteniendo todos esos bucles cortos.
fuente
El circuito como se ilustra se ve bien, siempre que la única conexión a tierra entre la placa Arduino y el terminal negativo del suministro +16 sea el cable azul corto. Por otro lado, es posible que los cortos accidentales puedan causar cosas malas. Es difícil adivinar exactamente lo que podría haber sucedido sin ver cómo se presentaron los tableros problemáticos reales.
Si está presionando las especificaciones de su MOSFET, podría fallar fácilmente de tal manera que envíe +16 por la puerta, pero si las resistencias son como se ilustra, esperaría que el Arduino esté bastante bien protegido.
fuente
En primer lugar, necesita diodos de conmutación ultrarrápidos, no estos diodos 2n4001-4 baratos, cuando utiliza motores o bobinas. Cuanto más rápido sea el cambio, mayor BEMF se crea. También use un diodo de conmutación 914 a la puerta mosfet desde el arduino, y una resistencia pull / down de 10k desde la puerta a tierra.
fuente