Conversión de pulsos a entrada analógica para micrófono

1

Una continuación de esta pregunta .

Estoy intentando leer dos medidores de flujo a través del puerto de micrófono de un teléfono / tableta. Las clavijas de pulso de los medidores de flujo alternan entre + 0V y + 5V a medida que giran sus molinetes. Uso un R-2R para combinar los pulsos de los medidores de flujo. Mi primer intento fue simplemente enviar la salida digital del R-2R directamente al puerto del micrófono, de esta forma:

simular este circuito : esquema creado usando CircuitLab

Esto funcionó muy bien en mi PC. Pude buscar bordes en la señal y (según la magnitud del cambio de amplitud) determinar desde qué medidor de flujo se envió el pulso. Aquí hay una captura de pantalla de mi programa que detecta pulsos en mi PC:

Lectura de señal sin procesar desde el puerto de micrófono de la PC: señal del medidor de flujo de PC http://s3.awesomebox.net/Flow%20Meter%20Reader/FlowMeterReaderRaw.png

El programa resalta los cambios en el estado del medidor de flujo: Detección de cambio de estado de señal del medidor de flujo de PC http://s3.awesomebox.net/Flow%20Meter%20Reader/FlowMeterReaderDetected .png

Como puede ver, el programa está identificando con éxito los cambios en el estado del medidor de flujo; los cambios de amplitud más pequeños son causados por el medidor de flujo 1 y los cambios de amplitud más grandes son causados por el medidor de flujo 2.

Los problemas comienzan cuando se envía la misma señal a mi tableta Android Galaxy Note 8. Así es como se ve la señal cuando uno de los medidores de flujo está girando y cambiando de estado, lea a través del puerto de micrófono de mi PC: medidor de flujo único a través de la PC http://www.awesomebox.net/share/androidReadingExpected.png

Aquí es cómo se ve la misma señal cuando se lee a través del puerto de micrófono de la tableta: señal del medidor de flujo de tabletas http://www.awesomebox.net/share/androidReadingReal.png

Debido al acoplamiento de CA (más fuerte?) en la tarjeta de sonido de la tableta y la cancelación de ruido y otros procesamientos realizados a la señal, no es posible utilizar el mismo método de detección de bordes.

@DwayneReid me sugirió que no intentara forzar una señal digital a través. En su lugar, debería convertir la señal digital a una analógica y transmitirla. Sugirió este esquema para convertir la señal digital en una analógica:

simular este circuito

Combiné este esquema con el mío y se me ocurrió:

simular este circuito

Por lo que yo entiendo, el temporizador 555 debe generar una señal analógica constante y enviarla al puerto del micrófono. Los cambios de voltaje causados por los cambios de estado del medidor de flujo deberían causar cambios de frecuencia en la señal analógica. Entonces podré leer los cambios de frecuencia de la señal analógica y saber cuándo ocurre un pulso, y en función del cambio en la frecuencia, de qué medidor de flujo proviene el pulso.

Así se ve la señal ahora cuando uno de los medidores de flujo está girando y cambiando de estado, lea a través del puerto de micrófono de mi PC: leyendo con 555 http://www.awesomebox.net/share/ReadingWith555.png

Como puede ver, ahora hay una ligera oscilación presente en la señal. Sin embargo, la señal general no cambia y ninguna de mis expectativas se cumple. La constante señal analógica es tan leve que podría considerarse ruido. Los cambios en el voltaje parecen no afectar la señal de manera diferente que antes.

¿Dónde está mal mi esquema? ¿Cómo puedo obtener y generar una señal analógica constante que cambia en amplitud o frecuencia cuando cambia el voltaje combinado de los medidores de flujo?

Gracias,
 - Mike

    
pregunta Mike

2 respuestas

1

Dadas las limitaciones desconocidas de las entradas de micrófono de varios dispositivos, debe diseñar de forma conservadora.

Si siempre va a enviar solo los pulsos de dos medidores de flujo, puede utilizar técnicas de modulación especializadas de pertty.

Sabiendo que necesitará descodificar la señal en el dispositivo que desea mantener un esquema de modulación relativamente simple.

Dado que el ancho de banda debe ser bajo, tiene cierta flexibilidad.

Le sugiero que utilice la modulación de amplitud y el cambio de frecuencia (FM y AM juntos) en estos anchos de banda bajos, es probable que pueda tener sistemas de modulación simples. Yo especificaría un microcontrolador de 8 pines para el modulador.

Si tiene el sensor de flujo uno conectado para generar 1300Hz y 2100Hz para los dos estados y el sensor de flujo dos está conectado para modificar la amplitud entre 30% y 70% del máximo, debería poder enviar los datos a través de casi cualquier tipo de la ruta de la señal de audio.

enlace

Si no desea confiar en la modulación de amplitud, puede usar un sistema de tono dual como un teléfono DTMF y usar los dos sensores de flujo para las selecciones de fila y columna en las filas superior e inferior y las columnas izquierda y derecha. Esto requerirá un poco más de inteligencia en la decodificación, pero incluso un micro PIC puede hacerlo, por lo que un teléfono inteligente debería estar bien con el trabajo. Los tonos para un sensor serían 1209 y 1633 HZ y el otro tendría 697 y 941 Hz, estos no están relacionados armónicamente y están bien dentro de la banda de audio y se pueden separar entre sí fácilmente. Generar estas señales en un micro es posible, pero un poco más difícil, aunque hay ejemplos por ahí. Solía haber IC que hacían esto por ti desde entradas digitales que requieren unos pocos pasivos y un cristal.

enlace

Solo para agregar a tus resultados hasta ahora. Todas las entradas de micrófono serán diferentes. Los condensadores de acoplamiento de CC harán que la entrada digital de baja velocidad sea un problema, y convertir su sistema analógico de 4 niveles inicial a AFSK con un 555 o similar también es una solución viable.

    
respondido por el KalleMP
0

Muchas gracias por publicar tu esquema. Esto hace las cosas mucho más fáciles.

1) Puedes eliminar R8. Lo incluí porque no sabía cuál era la impedancia de salida de su red R-2R.

2) Optimizar la frecuencia 555.

a) reemplace temporalmente los medidores de flujo con interruptores SPDT para que obtenga Vdd & Vss en el limpiaparabrisas del interruptor al girar el interruptor de una forma u otra.

b) configura la salida del medidor de flujo # 2 HI.

c) Observe la forma de onda en el dispositivo de destino. Varíe la frecuencia 555 hasta que la amplitud no se reduzca en el extremo alto. Supuse que 10KHz - 20 KHz sería bueno, pero no lo sé.

Básicamente, comience con la frecuencia alta y observe la amplitud a medida que cambia la frecuencia hacia abajo. Desea elegir la frecuencia tal que la respuesta de amplitud sea plana en ese punto.

Es posible que tenga que atenuar la señal si va a entrar en una entrada de micrófono en lugar de una entrada de nivel de línea. Eso es fácil: solo agregue una resistencia de derivación a través de la entrada a la computadora hasta que la amplitud esté en el nivel adecuado.

Cuando las cosas están optimizadas, al presionar el interruptor del medidor de flujo n.º 2 se debe cambiar la amplitud: nada en absoluto.

Ahora pruebe el medidor de flujo # 1. Debería ver un cambio de amplitud más pequeño pero completamente reproducible.

Por favor, publique sus resultados - voy a ofrecer más comentarios.

    
respondido por el Dwayne Reid

Lea otras preguntas en las etiquetas