En mi pregunta aquí: Revisión de mi primer diseño de PCB para un robot de control de riego. se señaló que probablemente debería proteger la LEVEL_ALERT
línea.
Básicamente, tengo una señal de entrada externa digital (5 V) que comparte el conector con un cable de alta potencia de 12 V (hasta 5 A) y está cerca del agua. Por lo tanto, existe un riesgo real de que los 12 V hagan un cortocircuito con la señal de entrada. Me gustaría evitar el humo mágico ... El circuito exacto está en la pregunta vinculada anteriormente, pero reproduciré los bits relevantes aquí:
simular este circuito : esquema creado con CircuitLab
Los valores de los componentes no son correctos. Acabo de agregar los componentes, los valores no deberían importar. Le he añadido el fusible, no estaba en el original.
Como puede ver en el cuadro grande en la parte superior que representa un conector que se ejecuta fuera de la placa. Y existe el riesgo de que los 12 V que salen del relé hagan un cortocircuito con el cable que va al LEVEL
pin del ATmega y se produzca humo mágico.
Si fuera solo una ESD o un transitorio menor, estoy seguro de que los diodos ESD en el pin GPIO podrían manejar eso. Pero esto puede ser un corto continuo a 12V que estoy seguro freiría el micro.
Estas son las opciones que he considerado:
LEVEL
la línea donde el punto de división está vinculado a la puerta del PMOS para que cualquier valor superior a 5 V en NIVEL corte la alimentación del relé y rompa el cortocircuito. No estoy seguro de si esto será lo suficientemente rápido para evitar daños en el ATmega. También es al menos tres componentes más. La velocidad puede ser resuelta por el filtro RC en la línea LEVEL. Si el interruptor de nivel se activa debido a un nivel bajo mientras la salida está en cortocircuito, no será un problema ya que el relé apagará la bomba de todos modos.LEVEL
tiene el mismo efecto que 1. pero creo que no corre el riesgo de explotar el regulador o elevar Vcc.¿Podría indicar si alguno de estos métodos es adecuado para proteger los circuitos integrados? O si uno es mejor que el otro?
El otro lado del SW1 está conectado a GND, lo que significa que LEVEL está abierto o conectado a GND. Cuando el NIVEL está abierto, esa parte del circuito es de alta impedancia. La resistencia pullup interna de 50k sigue siendo un valor alto. Sugiero agregar una resistencia de 4k7 o 10k de LEVEL a 5V.
Es una mala idea agregar diodos de sujeción a una entrada de un ATmega. Serán paralelos a los diodos ESD internos. La forma correcta de agregar diodos de sujeción es con una resistencia adicional entre los diodos de sujeción y la entrada del chip ATmega.
La forma más común de proteger una entrada es agregar una resistencia en serie entre la señal y la entrada. Por ejemplo 4k7 o 10k. Se permite empujar o extraer 1 mA en los diodos ESD internos de un pin. Eso significa que con 12V y una resistencia de 10k, la corriente en el pin del ATmega es (12-5.5)/10k = 0.6mA, está bien. Con 4k7 todavía está lo suficientemente cerca.
Hay muchas otras formas de resolver esto, pero mi solución es agregar una resistencia pullup de 4k7 o 10k de LEVEL a 5V y una resistencia de 4k7 o 10k de LEVEL al pin de entrada del ATmega.
Cuanto más pensaba en el problema, más me daba cuenta de que necesito poder distinguir entre tres estados en la LEVEL
línea:
Después de mucho rascarme la cabeza, se me ocurrió este esquema:
simular este circuito : esquema creado con CircuitLab
Simulación: Aquí .
El valor en ADC3 será:
ADC3 se sondeará continuamente siempre que el relé que proporciona los +12 V al depósito esté activado. Si el valor es menor/mayor que 1,3 V -/+ 0,2 V, el relé que proporciona +12 V se desactivará (o nunca se activará). Puedo escalar los valores de resistencia para cumplir con la impedancia de salida esperada en la línea ADC para un sondeo rápido.
También quiero que el sistema sea seguro para operar, por lo que debo considerar todos los escenarios breves posibles:
emily l
Jota
emily l
Jota