Estoy tratando de contar pulsos/seg. en un pin de microcontrolador en el rango de ~ 5 a 100 Hz. El µC puede funcionar con una entrada de 5 V, por lo que tengo que bajar el nivel de voltaje de forma segura.
Me viene a la mente una resistencia simple, pero eso deja cualquier sobretensión abierta directamente al pin µC - meh .
Me encontré con esta respuesta, pero la pregunta sigue siendo si ese circuito es capaz de cambios "rápidos" de 100Hz.
¿Existe una forma comprobada y confiable (¿por medio de un IC tal vez?) De contactar pines de 5V o 3.3V a entradas de 12V "sucias" ? Tengo 12V y 5V disponibles para manejar cualquier IC "preparado".
Usa un circuito como este:
simular este circuito : esquema creado con CircuitLab
R1 y R2 determinan el rango de voltaje y realizan la división inicial. Estas resistencias deben ser capaces de generar cierta potencia. Típico es MELF 0.4W. Todos los demás pueden ser resistencias de chip/condensador.
R3 evita que las sobretensiones causen daños al gatillo Schmitt. R4 y R5 son opcionales para evitar señales flotantes.
Sin embargo, la combinación R3/R4 también se puede utilizar para ajustar el umbral, si es necesario.
C1 y C2 determinan la velocidad máxima. La combinación R3/C2 puede filtrar lentamente. C1 filtra transitorios.
Se usa un gatillo Schmitt separado ya que puede obtenerlos realmente pequeños y baratos. Y evita el enrutamiento de una señal débil en pistas largas. Mientras que también es una parte de sacrificio en grandes oleadas.
He diseñado este circuito basado en lo que he visto dentro de los PLC. El circuito anterior es para 24V. Ajuste las resistencias para que coincidan con 12 V según IEC61131-2.
El concepto del estándar es garantizar que la entrada tenga que absorber una cantidad mínima de corriente antes de considerarla un '1'. Los tres tipos especifican cuánto y se aplican en función del ruido ambiental. Esto evita que los fallos lo toquen o los relés cercanos. El inconveniente es que R1/2 tiene que tener una potencia nominal decente y baja resistencia.
Probaría una solución de divisor de resistencia como se muestra a continuación.
Seleccione la relación de resistencia para que el voltaje dividido esté en el nivel adecuado para la MCU cuando la entrada esté en su voltaje nominal. El voltaje del diodo zener se selecciona para sujetar la entrada de MCU cuando la entrada supera la entrada máxima. El zener también protegerá la MCU si la entrada se vuelve negativa.
Esta solución funcionará muy bien para el rango de frecuencia relativamente bajo que ha especificado.
Si los niveles de señal son GND y 12V (o >5V), la forma más sencilla y 100% segura es esta:
simular este circuito : esquema creado con CircuitLab
Si realmente sirve para su propósito, depende de la impedancia real de la señal de 12 V (debe estar muy por debajo de R1) y de lo que quiere decir con "sucio".
Además, como señala correctamente @MichaelKaras, el nivel bajo en la entrada de µC puede desplazarse hasta el nivel bajo de la señal de 12 V más Vf del diodo (hasta aproximadamente 0,7 V). Debe comprobar si esto es un problema en su caso o no. Si es así, aún puede intentar usar un diodo Schottky con un Vf de aproximadamente 0.35V.
Usaría un divisor de resistencia y luego protegería el uC con un Zener de 5.1v
Si coloca el zener entre el pin y tierra en paralelo con, digamos, una resistencia desplegable de 10k, luego alimenta su señal dividida de voltaje entonces ... zener es más que lo suficientemente rápido y barato / fácil.
A menudo hago esto y divido la señal antes del bit zener con un potenciómetro.
Otra opción es la vinculada, si realmente le preocupa que se pueda usar un opto, si no es un problema de seguridad, iría con lo anterior o tendría el pin normalmente alto de 5V Vcc y lo bajaría con un fet (fuera de la parte superior de mi cabeza 2N7000 debería funcionar), pero es menos simple que la opción zener.
Usaría un optoaislador, 100 Hz está fácilmente dentro del rango de cualquier decente. 4n25 me viene a la mente como un número de parte común, y sé que es mucho mejor que 100Hz.
El método seleccionado depende parcialmente de lo que hace la señal de entrada, cómo se comporta y cómo podría afectar eso al circuito de entrada y al código que lo lee.
por ejemplo, ¿siempre es de 12V? ¿Tiene picos o ruido? ¿Cuánta corriente puede conducir? ¿Se puede conducir corriente en él? ¿Tomar corriente de él afectará algo más? ¿Es crítico para la seguridad?....
Debido a esto, nunca puede haber una respuesta universal a esta pregunta, ya que la solución "correcta" depende de lo que haga el resto del sistema. La solución elegida que cumpla con los requisitos tendrá un costo y una complejidad diferentes.
Dicho esto, como nadie más lo ha sugerido todavía, optaré por una entrada FET.
Se puede usar un JFET o un MOSFET y pueden ser modos de fuente común o de drenaje común. Por ejemplo, drenaje común:
simular este circuito : esquema creado con CircuitLab
La ventaja del modo de drenaje común es que permite conectar la entrada a un pin analógico (por ejemplo, ADC) o digital. Si la señal es verdaderamente digital, habilitaría el disparador schmitt en la entrada de la CPU (si tiene uno), o agregaría un búfer schmitt externo al pin de entrada de la CPU.
Ventajas
simular este circuito : esquema creado con CircuitLab
Figura 1. Interfaz optoaislada. Use pull-up interno en GPIO.
Un optoaislador resuelve varios problemas.
simular este circuito : esquema creado con CircuitLab
R1, R2 y C1 forman un divisor de tensión con un filtro de paso bajo de 1 kHz. Cualquier señal de alta frecuencia no deseada que viaje en 12 V puede filtrarse. El cálculo de la frecuencia del filtro es 1/(2 pi R2 C1). Nota: La Base requiere al menos 0,7 V para funcionar correctamente, tenga cuidado al ajustar la resistencia.
BJT se está utilizando porque es muy común en comparación con mosfet. En el caso de que los 12 V todavía estén activos pero los 5 V de su uC estén caídos, el BJT no pasará corriente al pin y causará daños.
Para la programación uC, use un disparador de alto a bajo para contar su pulso. Como este circuito invertirá el pulso.
Puede optar por un regulador de voltaje LM7805/LM7803 para 5 V y 3,3 V respectivamente. Supongo que el uC está aislado de una carga exigente de corriente, si corresponde.
wesley lee
Ale..chenski
cristiano
Wayne Conrado
usuario253751