Con el propósito de medir partículas (PM) en el aire, estoy tratando de configurar un sistema DAC para el sensor PM Shinyei PPD42NJ ( información aquí y hoja de datos aquí ).
He estado tratando de usar un filtro de paso bajo para obtener un voltaje analógico, pero no estoy seguro de cómo calcular la capacitancia y la resistencia adecuadas. Preocupación: si uso el filtro de paso bajo, ¿las mediciones anteriores afectarán las mediciones actuales (a menos que el capacitor pueda restablecerse cada vez que se muestrea el voltaje)? ¿Con qué frecuencia probaría el voltaje si la frecuencia de los pulsos BAJOS es a veces tan baja como 0,5 Hz?
Los parámetros del PWM son Lógica negativa, Salida digital, Hola: más de 4,0 V (Rev.2) Lo: menos de 0,7 V. Aquí hay una imagen con el Canal 1 que muestra el comportamiento habitual de la señal en función del tiempo.
Aunque uno podría usar un filtro RC simple, creo que sería mejor usar algún tipo de filtrado digital. Las escalas de tiempo que está viendo se ven bien dentro del rango de lo que podría manejar un procesador. Sugeriría que su mejor apuesta probablemente sea hacer algo como probar el pin de entrada una vez por milisegundo y realizar un seguimiento de cuántas veces la entrada ha sido baja durante cada intervalo de tiempo algo más largo (tal vez un segundo o cinco segundos), y luego usar un filtro FIR digital para sumar esas lecturas. Una forma simple de realizar el filtro FIR es escalar cada lectura para estar un poco por debajo del rango completo de un entero de 16 o 32 bits, y luego hacer algo como (pseudo-código):
temp = nueva_lectura para cada elemento en una matriz new_temp = (temp + array_item)/2 elemento_array = temporal temperatura = nueva_temp bucle
El valor final de new_temp representará un valor filtrado de paso bajo de la entrada; se puede variar el número de segundos por lectura y la longitud de la matriz para ajustar las características del filtro. Tenga en cuenta que si se usa, por ejemplo, un intervalo de muestreo de dos segundos y una matriz de 16 elementos de largo, solo se considerarán los últimos 32 segundos de entrada para producir la salida (lo que significa que la salida responderá completamente a cualquier cambio en las condiciones de entrada dentro de los 32 segundos). segundos), pero las condiciones de entrada relativamente "estables" producirán una salida relativamente estable (mucho más estable que con un filtro RC que converge razonablemente rápido).
Si los pulsos cuentan, pero la amplitud y la duración no, entonces puede activar un multivibrador monoestable con ellos. Luego, puede cambiar a medir el tiempo, lo cual es razonablemente fácil de lograr con un contador (en un microcontrolador) en contraste con medir picos muy cortos a través de un filtro de paso bajo.
Mirando la hoja de datos, la "unidad de tiempo" es de 30 segundos.
No estoy seguro de por qué , sin más detalles, desea convertir esto en una señal analógica solo para luego muestrearlo nuevamente.
Sin embargo, si está comprometido a convertir esto en una señal analógica, necesitará un filtro con una constante de tiempo muy larga del orden de la "unidad de tiempo".
Otra opción sería integrar la señal con un circuito integrador de amplificador operacional que se muestrea y se reinicia cada 30 segundos. Esto suena como lo que tiene en mente cuando pregunta sobre la memoria de "medidas" anteriores.
Si proporciona más contexto, puedo ser más específico con mi respuesta.
Por cierto, ¿has mirado esto ? El autor conecta este sensor a un Arduino.
Para saber qué valor de condensador y resistencia desea, deberá pensar en la velocidad de respuesta que necesita alcanzar. Mirando la forma de onda, parece que obtienes un pulso cada pocos segundos, y los pulsos duran decenas de milisegundos. Esto es bastante lento, así que:
Como está buscando algo del orden de un minuto, comenzaría con 12k ohmios y 4700uF. Mira cómo funciona. Si necesita una respuesta más lenta, use una resistencia más grande.
Así es como se ve con 12k y 4700uF:
Hay pulsos de 0,1 s cada 2 segundos en el transcurso de 2 minutos. Como puede ver, no se ha asentado realmente, incluso después de dos minutos, y la variación en la señal analógica sigue siendo de alrededor del 5 %.
Con una resistencia más pequeña, puede tener un tiempo de asentamiento más rápido, pero más variación.
Con una resistencia más grande, puede tener un tiempo de establecimiento más lento, pero menos variación.
No sé si esta es una opción, pero ¿ha considerado usar un microcontrolador para leer estas señales? ¿Cuál será la lectura del voltaje analógico? Si fuera a ser un ADC y un microcontrolador, me olvidaría del ADC y dejaría que la MCU se encargara de eso. Estos pulsos son tan lentos que incluso una computadora hecha con ruedas dentadas podría muestrearlos de manera confiable.
stevenvh
Tony Estuardo EE75
Tony Estuardo EE75
sherrellbc