Envío de señales de audio al dispositivo de salida a través de relé

Creé un altavoz de papel a través de este tutorial , excepto que en lugar de hilo conductor usé cinta de cobre para la bobina. Cuando lo conecto a un dispositivo que emite mucho sonido, el altavoz funciona bastante bien.

Mi problema es que cuando conecto el altavoz a mi Arduino Uno y ejecuto el boceto de tono de ejemplo proporcionado en el programa arduino, el sonido sale muy tenue. Apenas puedo oírlo. Creo que esto se debe a que el arduino no le estaba dando suficiente energía al parlante para que sonara lo suficientemente alto porque cuando usé una batería de 2.5v y 9v para encenderlo, era muy ruidoso. También probé la potencia que llega al altavoz y, si leo correctamente en el multímetro, apenas emite potencia.

Sé que puedo usar un relé conectado a un paquete de baterías grande (como 9v) para dar más potencia y obtener un sonido más fuerte. Pero no estoy seguro de cómo enviaría las señales de audio desde el pin digital del arduino al altavoz a través del relé. ¿Sería apropiado incluso usar un relé en este caso? O tendria que usar algo mas?

EDITAR: Aquí hay una foto de cómo creo que se vería al final. Soy un n00b total con esto, me disculpo si no lo dibujé con las conexiones correctas o algo así. Nunca he tenido ningún tipo de formación en EE.

esquemático

...Avísame si algo de eso no tiene sentido. ¡Gracias!

Tiene algo de sentido. Al mismo tiempo, si publica su esquema previsto, aclarará las cosas, incluso si es solo un boceto. No hay problemas con el envío de la señal de audio a través de un relé mecánico. Siempre que pueda manejar la corriente y el voltaje que tiene la señal de su altavoz. Por cierto, ¿tienes el amplificador de audio en tu circuito? El pin de salida digital no está diseñado para controlar un altavoz magnético. Sospecho que es por eso que no tienes suficiente sonido.
¡Gracias! Acabo de publicar una foto. Creo que lo adjunté a un pin digital porque así es como se describió en el tutorial de Arduino. Pero en cuanto a si puede o no conducir un altavoz magnético, realmente no lo sé.
Bonita espiral dibujada a mano. Permítanme retroceder un poco y preguntar: ¿por qué quieren tener un relevo? No puedes hacer un amplificador de audio con un relé. Solo puede conectarse/desconectarse con un relé, y hacerlo con bastante lentitud. Los relés suelen tener un tiempo de establecimiento del orden de 10 ms.
En una nota diferente, un relé tiene una bobina y lengüetas (el interruptor real). Al dibujar relés, debe dibujar la bobina y las lengüetas por separado y mostrar los detalles de cómo se conecta cada uno. De lo contrario, hay ambigüedades: ¿la batería está conectada a las cañas oa la bobina? la misma pregunta para la señal digital?
Más preguntas para ti. Su imagen muestra que está usando el pin 8 en el UNO, pero cuando acabo de mirar su lista de funciones, el pin 8 no se muestra como un pin pwm. El ejemplo de tono puede hacer el pwm en el software, pero solo verifique que el pin sea el correcto. Probablemente podría hacer que funcione con un relé, pero ¿por qué no usar un fet? Algo como el FDV301N podría ser un buen punto de partida. Eso te permitirá conducir más corriente a través de él.

Respuestas (2)

Es probable que su problema fundamental sea que la impedancia (principalmente la resistencia) de este "altavoz" casero es demasiado baja para la capacidad de transmisión de corriente limitada del pin Arduino. Es probable que su sustitución de la cinta de cobre por el hilo conductor típicamente algo resistivo empeore esto (al menos en términos de presentar una sobrecarga para el controlador).

Como han mencionado otros, usar un relé como amplificador de audio no es realmente viable. En realidad, un relé está bastante cerca de ser un zumbador electromecánico; condúzcalo con una señal de frecuencia adecuada y probablemente obtendrá más salida de sonido del relé en sí que de este altavoz suyo. En las condiciones adecuadas, es posible que incluso obtenga una voz inteligible al usar un relé como altavoz, pero no será agradable.

Puede ser posible obtener sonido de su parlante casero de una de dos maneras bastante simples:

  • podría intentar usar un transformador de salida de audio para cambiar el voltaje comparativamente alto (casi 5v) pero la salida de arduino de baja corriente, a una salida de voltaje más bajo y alta corriente para impulsar su altavoz de baja impedancia. No recuerdo si Radio Shack todavía los tiene, pero puedes rescatar uno de una vieja radio a batería. El conteo de vueltas más alto, típicamente el lado de 3 terminales iría al arduino (ignore el terminal central) mientras que el lado de conteo de vueltas más bajo iría al altavoz.

  • Dado que su salida Arduino es digital todo o nada, en realidad no necesita un amplificador de audio lineal. En cambio, puede hacer un circuito de conmutación con un transistor npn que cambie el suministro negativo a la bobina y una resistencia entre la base del transistor y el pin de salida de arduino. No es sorprendente que este sea exactamente el mismo circuito que normalmente construiría para controlar un relé con una salida de arduino, ya que también es una bobina. Dada su probable resistencia de bobina muy baja, es probable que desee agregar una resistencia en serie para limitar la corriente a lo que puede manejar el suministro y un transistor de caja de plástico barato. Es probable que dicho circuito tenga suficiente ancho de banda para intentar la modulación de ancho de pulso si desea intentar generar una salida casi analógica desde su software arduino. Dado que eres digital hasta el altavoz,

Si bien es cierto que la unidad bipolar podría ser más beneficiosa para este tipo de altavoz tosco que para los tradicionales, la complejidad de construir eso (mientras se evita el problema de los disparos) probablemente no sea algo que desee abordar en un primer intento. Montar el sustrato del altavoz tensado en algo así como un pequeño bastidor de bordado (o pegarlo a un anillo portador) para aumentar su fuerza de restauración podría ser un experimento que vale la pena.

Resumen

Necesitas un amplificador, en concreto, un amplificador de audio. Te enfrentas a dos grandes retos:

  1. Está utilizando una salida "digital" de Arduino para generar su "audio"

  2. Está utilizando un diseño de elemento de altavoz dinámico (estilo de bobina de voz)

Hay muchas maneras de hacer esto. De hecho, se han escrito muchos libros de texto sobre amplificación de audio y diseño de amplificadores. Le daré una (de muchas posibles) soluciones a su problema y le explicaré la teoría de la operación y el cálculo de decisiones de diseño.

cálculo de diseño

El tipo de elemento de altavoz que está construyendo es dinámico (lo que significa que se basa en fuerzas electromagnéticas, en lugar de electrostáticas, para generar movimiento en el diafragma). El efecto que tiene aquí es que necesita generar una señal de control bipolar para maximizar su salida de audio.

El diseño de tela/papel de su parlante no proporciona mucha fuerza de restauración, por lo que para que vibre de manera óptima, debe jalarlo hacia su imán permanente, pero luego empujarlo activamente (no solo dejar de jalarlo ) . Para hacerlo, deberá invertir la dirección de la corriente que fluye en el electroimán (la bobina unida al diafragma textil).

Esto plantea un problema para el Arduino porque, como la mayoría de las cosas digitales, se ejecuta desde una fuente de alimentación unipolar: solo puede conducir sus pines digitales "alto" al riel de alimentación, o "bajo" a la referencia ("tierra") . La corriente solo puede fluir en una dirección ("alta" a "baja", estoy simplificando la física aquí, no dispare).

Además, los pines de salida de Arduino no pueden suministrar mucha energía y usarlos directamente cerca de su SOR máximo es una mala idea para la confiabilidad a largo plazo, especialmente con un elemento dinámico que proporciona EMF (la bobina del altavoz almacena energía que puede devolver). a la "salida", temporalmente haciendo que la salida lo acepte de nuevo -- a las salidas, como a los matones, no les gusta eso).

Propuesta

Para solucionar estos problemas, recomiendo esto:

esquema propuesto

TENGA EN CUENTA:

Este circuito se simplifica para mejorar la claridad. Hay algunos detalles de construcción y características omitidas. A pedido de la comunidad, elaboraré:

  • El esquema que propuse por primera vez contenía dos BJT sin polarización ni posicionamiento. Tenía la intención de ilustrar la naturaleza push-pull de la implementación de clase C requerida por su escenario. Sin embargo, no se pudo (y no se pretendía) construir exactamente como se dibujó. Resultó no ser una buena idea, ya que aterrizó en algún lugar entre un diseño de referencia y un diagrama de bloques sin estar claramente en ninguno de los campos. Esto, obviamente, llevó a la confusión.

  • Entonces, el esquema se ha actualizado a algo que se puede construir como se dibuja. Sin embargo, al elegir transistores, baterías, etc. específicos, es posible que sea necesario ajustar los valores de R1 y R2. Quiere ayuda, solo envíeme un mensaje con las partes que eligió.

  • También debe tener en cuenta el hecho de que este circuito siempre está impulsando el elemento del altavoz. Si detiene la oscilación de su salida de "audio", el altavoz se atascará y extraerá energía. Puede aislar el elemento del altavoz con un condensador en serie o se puede agregar una función de activación/desactivación explícita para manejar este caso, pero no me molestaré a menos que se solicite específicamente.

  • Dada la amplia gama de enfoques de este circuito, opté por centrarme en los conceptos en lugar de los detalles. Si solo desea un diseño de referencia que pueda crear por diversión, hágamelo saber y se lo proporcionaré.

Utilice dos baterías para crear una fuente de alimentación bipolar. Ahora, desde la perspectiva del hablante, una batería produce un voltaje positivo y la otra negativa. Realmente todo es cuestión de perspectiva (donde defines "cero").

  • Desde el punto de vista de Arduino V2 = 3V (digamos que es una batería de 3V); V1=V2; la parte superior de V1 parece 6V

  • Desde el punto de vista del hablante, la parte superior de V1 parece 3V; la parte superior de V2 parece 0V; la parte inferior de V2 parece -3V

El resto del circuito entre el altavoz y el Arduino es un amplificador de dos etapas.

Nivel 1

Este amplificador es una configuración de fuente común (un amplificador de clase A si debe saberlo ;-)). Sirve para amplificar el voltaje de salida del Arduino desde su rango unipolar hasta el rango bipolar del parlante (las dos baterías en serie). Si quieres más detalles solo pregunta y te daré más detalles.

Etapa 2

Este es un amplificador de potencia de clase C que sirve para amplificar la corriente que conduce al altavoz. La corriente es proporcional a la fuerza. Más corriente --> más fuerza tirando del diafragma --> más aceleración del diafragma --> más presión de aire generada --> sonido "más fuerte".

Una nota sobre su señal de "audio"

Una salida digital del Arduino solo tiene dos estados. El audio humano es un fenómeno analógico que tiene un número infinito de estados. La señal que generaría naturalmente si simplemente cambiara el pin de salida a la frecuencia deseada es una onda cuadrada que necesariamente contiene muchas frecuencias adicionales (armónicos). Esto hará que su altavoz suene áspero (o, a veces, se describe como "chirriante"). Si desea un sonido más agradable, deberá implementar la modulación de clase D en su firmware.

  • Puede obtener más información sobre la clasificación de amplificadores de potencia aquí .

  • Puede obtener más información sobre la modulación de audio digital aquí .

Una nota sobre "disparar"

La unidad cuadrada (dos estados) del Arduino en esta aplicación es significativa. Muchos han notado correctamente que una configuración de controladores apilados necesariamente presenta un riesgo de que ambos dispositivos puedan (se encenderán) durante la transición de la señal de entrada. Este es un comportamiento bien conocido. Dado que el dispositivo superior se conecta al alto voltaje en el sistema y el dispositivo inferior se conecta al bajo voltaje en el sistema, si ambos están encendidos al mismo tiempo, la fuente de alimentación puede estar en corto ("puede" porque "en corto", aparte del 0 absoluto, tiene un significado relativo con respecto al tamaño y las capacidades del suministro, el circuito y los componentes).

Sin embargo, la salida de Arduino pasa muy rápidamente por el rango intermedio entre sus dos niveles de salida de conducción. Para cuantificar mejor el análisis, veamos el borde:

Elijamos los NFET para que sean Si4836Dy y dupliquemos esos números para producir un PFET teórico en el peor de los casos que lo acompañe. Este sistema podría manejar> 22 A desde una salida Arduino> 2.7V (los de Arduino suelen ser más altos, por lo que este es el peor de los casos). El manejo de corriente más grande implica un transistor grande, que cambiará más lentamente (lo que es peor para nuestra situación).

El peor caso absoluto para los transistores es 75 nC de carga total de puerta, reduzcamos a 100 nC. La carga total de la puerta para la segunda etapa es entonces 300 nC (dada nuestra duplicación en el peor de los casos para el PFET). Sacar la segunda etapa baja es mucho más lento que subirla, debido a la falta de un componente activo (R2) en el lado alto del amplificador de la etapa 1.

Tomando este caso, tau = RQ/V, donde R es R2; Q es 300nC, la carga total de la puerta; y V es 5 (elegido para ser incluso peor que antes). Informática, tau = 25uS. Nuevamente, dupliquémoslo para que el escenario sea aún más desfavorable: 2tau = 50uS.

Digamos que estamos trabajando con un total de 12V (+/-6V). Para empeorar las cosas, usemos un montón de AA (EE91) en serie. Una buena (mala) estimación de la ESR para esta configuración es de 20 ohmios de resistencia interna

Ahora determinamos a qué riesgo (si lo hay) nos enfrentamos. Una vez más, seamos ridículamente duros con nosotros mismos. Asumiremos un cortocircuito completo (0 ohmios) aunque no sea físicamente posible (los canales del transistor de transición tienen una resistencia sustancialmente mayor que 0). Eso significa que las baterías deben absorber V^2/R Watts por 50uS o 360uJ en cada ciclo. Ahora elijamos una señal de audio de alta frecuencia a 10kHz. Eso es 3.6J cada segundo, pero hay ocho baterías --> 450mJ/batería cada segundo.

Una batería típica EE91 "AA" está diseñada para disipar de forma segura 5076J durante una hora (la condición 1-C)... o 1,41 en un segundo. Eso equivale a aproximadamente un margen de seguridad de 3X después de que aprovechamos todas las oportunidades para hacer que el escenario fuera poco realista y desfavorable.

Para un proyecto de aficionado, este enfoque ofrece una serie de ventajas sobre otros esquemas de Clase C: utiliza menos componentes, produce una fuerte salida bipolar, requiere menos ajustes, es sustancialmente más tolerante a la variación de componentes y es más simple de construir.

En conclusión...

Sé que este es un tema denso y puede ser confuso en un primer encuentro. Si todavía tiene preguntas, por favor haga un seguimiento e intentaré elaborar.

Vaya, ya veo por qué te haces llamar Fried Parts. Si el suministro es mayor que las caídas de BE de Q2 y Q3, ambos se encenderán y efectivamente cortarán el suministro.
Cambió a FET de bipolares, pero todavía tiene el mismo problema. Es probable que ambos FET estén encendidos en una buena parte del rango de voltaje de la puerta. Si dibuja algo para que parezca detallado, debe incluir los detalles. Si solo quería mostrar un controlador de baja impedancia y no entrar en detalles, podría haber usado dos BJT en modo seguidor de emisor. Al menos eso no explotará si alguien lo construye como se muestra.
@Olin: sí, estoy de acuerdo contigo en que fue un mal enfoque de dibujo. Con la unidad cuadrada del Arduino, pasa por el rango intermedio tan rápido que no causa mucho problema.