No soy muy competente en lo que respecta al hardware, así que tengan paciencia conmigo.
Intenté buscar en Google para descubrir cómo elegir valores para un filtro de paso bajo para reducir el ruido en un potenciómetro. La mayoría de los artículos que he leído explican cómo elegir valores en función de las características de frecuencia. Ese es un enfoque razonable cuando tienes esa información.
En esta situación, mi entrada digital en un arduino está modulada por un potenciómetro y veo que los valores rebotan mucho entre 1 y cero cuando está cerca del umbral. Me gustaría implementar un filtro de paso bajo, pero no estoy seguro de cómo elegir mis valores ya que no tengo claro cuál es la banda de frecuencia que quiero filtrar (no tengo un osciloscopio).
Este problema parece bastante simple, y hasta ahora he visto un montón de tutoriales de arduino para 'simplemente implementar un filtro de paso bajo'. Pero lo que estoy buscando es, ¿cómo abordaría un ingeniero eléctrico la elección de los valores correctos para R y C dado que están viendo una entrada analógica ruidosa?
Además, esta no es una pregunta sobre ningún circuito específico que haya construido, es más una pregunta general sobre cómo construir filtros de paso bajo en la práctica.
Editar: Aquí hay un poco más de información.
Estoy usando un sensor LM35, que operó en el rango. La temperatura del sensor es entonces 400mV serían 40.0 grados C. Quería usar el potenciómetro para modular un valor de 0-450 mV para alimentar a un comparador (LM393) para determinar si la temperatura es mayor que algún umbral ajustable. Para configurar el pin Vcc del potenciómetro, usé un divisor de voltaje
El circuito se ve así, y va a una de las entradas digitales de arduino . También paso las entradas de los comparadores a las entradas analógicas para su inspección, y la entrada del potenciómetro rebota bastante.
Los ADC tendrán una impedancia de entrada máxima específica mencionada en la hoja de datos (para la mayoría de las MCU). Incluso se pueden encontrar la resistencia en serie recomendada y el condensador.
Dado que la señal proviene de un potenciómetro, es una señal de cambio lento. Un capacitor de valor 10nF o incluso 100nF en la entrada del capacitor ayudará a reducir la falla de muestreo. El condensador interno de muestreo y retención se cargará fácilmente con el condensador externo.
El condensador interno será de un valor muy pequeño en 10s de pF. Por lo tanto, una capacitancia externa de 10 nF o 100 nF no verá ninguna carga cuando el capacitor de muestra y retención entre en contacto con la línea ADC.
En el software, también puede emplear un promedio móvil para reducir aún más el ruido.
Los R y C externos juntos definen la constante de tiempo. Esperar varias constantes de tiempo RC (10x o incluso más) antes de leer el valor del registro ADC produce un resultado más preciso.
Si el potenciómetro agrega una impedancia de entrada más alta que el valor esperado de ADC, se puede usar opamp en un modo seguidor de voltaje, sería factible, reduciendo la impedancia de salida de la fuente de señal.
En esta situación, mi entrada analógica en un arduino está modulada por un potenciómetro y veo que los valores rebotan mucho. Me gustaría implementar un filtro de paso bajo
Dado el esquema que publicó, parece poco probable que la salida del potenciómetro sea tan ruidosa, a menos que tenga algunos problemas con la fuente de alimentación. De todos modos, podría poner un condensador en la salida.
No está claro cuando dices "los valores rebotan mucho": ¿usas el arduino para leer desde el potenciómetro o para leer la salida del comparador? ¿Y está seguro de que su rutina es correcta (deje suficiente tiempo para muestrear la entrada y suficiente tiempo para que el ADC realice la conversión)?
Dicho esto, creo que los comparadores son muy sensibles al ruido, es posible que pueda usar su arduino para leer directamente la salida del sensor, tal vez amplificada a través de una operación. Al hacerlo, puede crear un filtro en el software que le otorgará mucho más control; debería ser fácil porque normalmente la temperatura varía muy lentamente, por lo que el software debería tener mucho tiempo para filtrar. Y también puedes agregar algo de histéresis; o alguna predicción: si ves que la temperatura sube rápidamente, puedes predecir - antes de tiempo - que llegará al setpoint o lo que sea (siempre hay algo de inercia).
1Kohm y 1uF deberían funcionar bien. ¿Por qué?
Considere la corriente de entrada equivalente del ADC.
I = frecuencia * cargo_por_muestra
yo = F * (C * V)
A una frecuencia de muestreo de 1 MHz, 10pF Csample (dentro del ADC), tiene
yo = 1e6 * 1e-11 * 5voltios = 5 e-5 = 50 uA
Se pueden invertir 50 uA para encontrar que el Rerror es de 20 000 ohmios por voltio. Así, para una caída de 1 milivoltio, la serie R solo puede ser de 20 ohmios.
Sin embargo, ajustará el potenciómetro, por lo que no hay requisitos de precisión.
Y su voltaje no es de 5 voltios, sino de 0,5 voltios.
Simplemente coloque un 1Kohm en serie con la entrada ADC y coloque 1uF desde la entrada ADC a tierra.
Esto proporciona un filtro de entrada de 159 Hz, suficiente para eliminar la mayoría de la basura de registro de interruptores de radio AM y de ladrillo negro.
keith
broma
Sólo yo
éter azul
Sólo yo
éter azul