Detectar sonido de audio de Google Chromecast

5

Recientemente, traje un audio de Google Chromecast y la señal de audio se transmite directamente a mi estéreo. Quiero detectar el nivel de sonido para encender y apagar el estéreo. Luego logré decodificar la señal de datos en la interfaz que conecta dispositivos de audio B & O como reproductores de CD y Tape a sus amplificadores.

A continuación, he utilizado un enfoque ingenuo para conectar una entrada analógica de un Arduino para detectar el sonido.

En general, el proyecto está funcionando bien. Pero el problema es que el sonido, especialmente el bajo, se distorsiona / se degrada cuando se conecta el Arduino. ¿Cómo se puede evitar esto?

Tengo una experiencia muy limitada en electrónica analógica y no tengo osciloscopio ni ningún otro equipo. Mi conjetura es que una gran cantidad de corriente debe fluir a través del Arduino. En segundo lugar, el Chromecast podría ofrecer niveles de voltaje superiores a 5v.

    
pregunta Jens Joachim

1 respuesta

11

La señal de audio proveniente del dispositivo Chromecast es AC; es decir, la tensión varía entre tensiones positivas y negativas. Cualquier señal negativa probablemente excederá las especificaciones de la entrada de arduino. Conectar directamente una señal de audio a los pines de arduino es una mala idea , y puede resultar en un arduino roto dependiendo de la amplitud de la señal y la impedancia de la fuente.

La distorsión que escucha se debe a los diodos de protección de entrada incorporados en los pines IO del microcontrolador:

Eldiodoatierraseencenderácuandolaseñaldeaudioseencuentrepordebajodecero,cargandoloscapacitoresdebloqueodeCCdentrodelasalidadecromadoylaentradadelamplificadorycreandoundesplazamientodeCClocalenelaudio.Cuandolaseñaldeaudiosevuelvepositiva,sielvolumeneslosuficientementealto,encenderáeldiododeproteccióndelafuenteydescargaráloscondensadoresdebloqueodeCC.Estorecortaefectivamentelospicosdelaseñaldeaudioycolocaunacargarelativamentegrandeenlasalidadecromado,distorsionandolaseñal.

Elarduinononecesitarealmenterecibirlaseñaldeaudiocompleta(negro)parahacereltrabajoquedesea.Saberquétanaltoeselpicodeamplitud(rojo)seríasuficiente.Estosehacefácilmenteconuncircuitosimpleconocidocomodetectordeenvolventeodetectordepicos.

Lo que debe hacer es agregar un condensador a la CA acoplar el audio, agregar un detector de picos para detectar fácilmente la presencia de una señal de audio y agregar un divisor de voltaje para garantizar un nivel de entrada seguro para el arduino.

simular este circuito : esquema creado usando CircuitLab

Tenga en cuenta que este circuito no funcionará para señales de audio por debajo de aproximadamente 1.4 V pico a pico . Si su señal es más débil que eso, puede:

  • Reemplace el D1 y el D3 con diodos schottky, que tienen un voltaje directo más bajo. Si lo hace, el circuito podría funcionar para señales de alrededor de 0,4 V.

  • Use un detector de picos basado en amplificadores operacionales

  • Acondicione la señal no modificada (sin detección de picos) para el arduino ADC y realice todo el procesamiento requerido en el software:

simular este circuito

Este circuito atenúa la amplitud a un tercio y desvía la señal a 2,5 V, de modo que las señales por debajo de 15 V pk-pk están siempre dentro del rango de entrada del ADC.

    
respondido por el jms

Lea otras preguntas en las etiquetas