Multiplexor para enrutar audio

Hola! como estan?
Estoy desarrollando un sistema para enrutar audio dentro de una guitarra electrica y ´tengo varias dudas de como hacerlo.
Trato de resumir el proyecto:
Tengo 3 microfonos en mi guitarra y dependiendo de algunas variables de como ejecuto la guitarra voy a enviar solo la señal de uno de estos hacia el equipo que amplifica.
Para esto tengo un aurdino mini pro y un multiplexor que irían dentro de la guitarra.
mi idea es que el multiplexor funcione como un conmutador del audio y que el arduino le indique que conmutar, pero el audio debería entrar y salir solo en el multiplexor y no pasar por el arduino. Y ahi esta mui principal duda de como hacerlo. Bueno quedo a la espera de alguna orientación. Mil gracias! Mario

Si usas un multiplexor tipo 4067 no tienes ningún problema, usas el arduino solo para direccionar el puerto que quieres seleccionar.
Algo así
viola

En el esquema conecté los 4 pines de dirección (A/B/C/D) pero con A y B alcanza, C y D los puedes poner directamente a masa.

Saludos

No deberias agregar un desplazamiento de la seña a 2.5V para tener 1Vpp sin problemas.
No se como se comporta el CD4067 con señales negativas. Esta claro que las va a recortar.
Este es el esquema que encontré pero la idea es con 1 solo

Solo para que tengan presente.
Si no polarizan entrada o salida a VCC/2 el circuito va a recortar.

Y si no amplifica mínimamente la señal de los captores, tampoco va a tener una señal útil que se pueda llegar a recortar. :grimacing:

Bueno pone los mic asi y luego hablamos, jaja.

1 Like

Ey amigos! gracias por las respuestas
@anon90500195 Ese es el esquema que creo voy a armar, gracias!
Una consulta mas sobre el codigo, me podrían pasar un ejemplo del codigo haciendo un loop swichando los 3 mics, con esa data ya podria avanzar en todo.
Con respecto a las otras dudas de señal de audio, etc, a cada mic le armé un pre, para tener buena señal.
Les paso unas imagenes, con multiplexor que estoy usando, y un para de la viola para que vean de que se trata
uh, no me dejó subir las imagenes porque soy nuevo...
a ver si me deja poner un link https://malabaristadigital.com.ar/guit/ ahi estan las imagenes de proyecto

Puedes hacerlo de varias formas.
Suponiendo que conectas los pines "S2" y "S3" del multiplexor a masa (GND) ya que no son necesarios en este caso que solo direccionamos 3 puertos y es suficiente con 2 bits, y que conectas "S0" y "S1" a D2 y D3 respectivamente

La mas elemental

#define S0 2
#define S1 3

void setup() {
  pinMode(S0, OUTPUT);
  pinMode(S1, OUTPUT);
}

void loop() {
  digitalWrite(S0, LOW); // direcciona el puerto 0 ("C0")
  digitalWrite(S1, LOW);
  delay(loquehagafalta);

  digitalWrite(S0, HIGH); // direcciona el puerto 1 ("C1")
  digitalWrite(S1, LOW);
  delay(loquehagafalta);

  digitalWrite(S0, LOW); // direcciona el puerto 2 ("C2")
  digitalWrite(S1, HIGH);
  delay(loquehagafalta);
}  

Un poquito más elaborada

#define S0 2
#define S1 3

void setup() {
  pinMode(S0, OUTPUT);
  pinMode(S1, OUTPUT);
}

void loop(){
  for (byte i = 0; i < 3; i++) {
    digitalWrite(S0, i % 2);
    digitalWrite(S1, i / 2);
    delay(loquehagafalta);
  }
}

Y lo deseable ya que escribe en ambos pines al mismo tiempo

#define S0 2
#define S1 3

void setup() {
  pinMode(S0, OUTPUT);
  pinMode(S1, OUTPUT);
}

void loop(){
  for (byte i = 0; i < 3; i++) {
    PORTD = (PORTD & 0b11110011) | (i << 2);
    delay(loquehagafalta);
  }
}

Agrego: Te dejo un ejemplo en wokwi para que veas el último código en funcionamiento

@anon90500195 Buenisimo! mil gracias, me pongo a cablear todo y a codear en cuanto lo tenga mas o menos funcionando les muestro Gracias Gracias Gracias!!! Gracias totales!! :slight_smile:

De nada!
Tené en cuenta lo que comentó @Surbyte sobre la señal, fijate que en la hoja de datos del 4067 también está ese detalle sobre las señales alternas.
Esperamos novedades sobre el avance del proyecto, no te olvides.

Saludos

La verdad que no entendí nada de esa parte... pensaba armar todo y ver como funciona, en mi mente me imaginé un conmutador físico tipo relay... y al averiguar un poco opte por el multiplexor pensando que es algo similar, supuse que el audio pasaba sin problemas... que puede pasar? que pierda ganancia la señal? osea el recorte sería en la intensidad de la señal?

Si solo tenes 3 entradas no se para que usar un CD4067 que además creo es o será parte del problema.
Cual es el problema? Tenes una señal que tiene picos positivos y negativos.
Los positivos pasan, los negativos se quedarán en la entrada. De hecho x debajo de 0 no debería pasar nada, porque el multiplexor no tiene como hacerlo ya que la fuente va de 0 a VCC.

Un CD4052 en cambio también es un multiplexor de 4 entradas 1 salida doble.
O sea que para tu ejemplo alcanza.
Que diferencia sustancia tiene con el cD4067, buen primero la obvia, menos entradas.
Pero si miras su esquema aparence VDD, VSS y VEE.

TIene VDD VSS y VEE para que son ?
VCC a VDD
GND a VSS
y VEE es la que deberias poner a una señal -VCC o como minimo algo que te garantice que no recortaras la señal de entrada.
Segun este hilo -2.7V son suficientes asi que supongamos -3.3V por ejemplo
Lee el hilo sugerido, tiene buenas observaciones a alguien que lo llevó adelante practicamente. Siempre apóyate en cosas hechas. Hay de todo en la web. No solo hay que consultar como hacer algo, ve mas allá y piensa que alguien YA lo ha hecho.

@Surbyte Gracias!
Si, vengo googleando pero no encontraba nada, por eso pregunté. Vi el hilo que me indicaste, la verdad me cuesta mucho entender la parte electrica...
A las 3 entradas del multiplexor le va a esta llegando señal todo el tiempo, solo que el arduino va a decidir cual de estas sale en función de la ganancia de cada una que tiene que ver con la intensidad que yo toque esa cuerda, pero todas van a tener algo de ganancia. Osea las 3 entradas son de 3 mics que uso para las 3 cuerdas mas graves de la guitarra. un mic por cada cuerda. Como te decía opte por un multiplexor porque me lo imaginé como un interruptor fisico que conmuta que señal va a la salida ( con una palanquita interna , eso me imagino ) . Pero lo que me estas diciendo es que esta señal va a ser afectada...
Entonces la solucion no sería un multiplexor? debería usar relays? solo necesito conmutar. Me mareeeeeeeeeee....

@Surbyte Osea si el problema son los multiplexores, en vez de estos, puedo usar relays que son lo que se usan en las pedaleras de guitarras, las que swichean los efectos... son relays a los que le agregan resistencias pull down y funcionan para evitar el ruido de conmutacion y listo. Eso no interfiere nada en el audio.

Todo depende de a que velocidad pensas hacer el switcheo. Si es cada algunos segundos, podría ser, pero si es varias veces por segundo, ya no va a funcionar, va a zumbar a lo loco y los reles van a durar nada.
A mi no me parece una buena idea.

ah ah, entonces sigo con el multiplexor porque podría ser varias veces por segundo...
Bueno, en principio ya tengo comprado el multiplexor de 16 canales... voy a conectar todo y ver que pasa. Gracias! conecto y les cuento :raised_hands:

Tal vez compre el CD4052 para hacer lo que me indica @Surbyte No entiendo mucho todavía pero veo que con el CD4052 si llega a recortar el audio, tendría una solución, o una mejora. voy a hacer eso, porque justamante el sonido del mic tiene que llegar con buena calidad... antes igual voy a testear con el que tengo a mano. Gracias! les cuento en cuanto lo haga

A ver!! El CD4052 es similar a lo que @anon90500195 te sugirió con el CD4067. A veces nosotros tiramos una idea y se nos escapa algo. A mi me pasa todo el tiempo.
He puesto varios ejemplos de como hacerlo
Te puse un link donde esta conversado y resuelto. No entiendo que dudas tienes?


Eso es algo que ya puse antes.
Tambien te sugieren usar chips dedicados al audio como estos

Creo que esto te puede dar un buen empujón. Toma solamente la parte de entrada y salida a cada entrada y salida de tu CD4052
Fuente: http://www.geofex.com/article_folders/cd4053/cd4053.htm
image

Observa que en este caso podrias incluso usar el CD4067 si fuera el caso, en realidad cualquiera. Porque polarizan con VCC/2 o sea ponen un desacople capacitivo pero a la mitad de la tensión o sea.. no puedes tener señales pico a pico digamos de 2.5Vpp porque mas alla o digamos en ese limite ya tendras distorsión y yo diría que antes tmb.

@Surbyte Gracias por toda la data! con respecto a las dudas que tengo... son mil, pero tienen que ver mas por ignorancia que por otra cosa. Soy musico y programador php, javascript, etc, pero de electronica no se nada... voy a leer bien todo lo que pusiste y el hilo que me pasaste y voy a googlear definiciones como polarizacion, etc, etc a ver si termino de entender bien. Me agarra mucha impotencia cuando no entiendo de que hablan y realmente el proyecto lo necesito para tocar en vivo la musica que hago, esa es la finalidad que me impulsa a hacerlo. Basicamente lo que haría el sistema es ejecutar una linea de bajo que sale de lo que yo toco en la guitarra.
Bueno, tengo para estudiar un rato con toda la data que me pasaste, paralelamente voy a seguir soldando y terminando el circuito. Estoy muy agradecido por la ayudan que dan! es muy importante lo que hacen! gracias gracias!

La situación es esta.
Una señal de audio tiene picos positivos y negativos.
Generalmente todo lo que usamos lo alimentamos entre VCC = 5V y GND = 0V
Entonces solo para entenderlo rápidamente todo lo que sea positivo pasará por un multiplexor que tenga esa alimentación.
Pero que pasa con lo negativo... pues que se queda trucado y tu escuchas distorsión.
Como se resuelve?
Fácil de dos modos. Una con fuente partida. Se llama fuente partida aquella que alimenta con tensión positiva y negativa respecto de una referencia GNR o sea 0V. Alimentas con +5V y con -5V.
En los post anteriores te hablé que no necesitas mucho mas que la tensión máxima de tus pickups (supongo) o micrófonos para la guitarra
Ahora bien, esta la opción ingeniosa!!!
Cuál es.. pues desplazo la señal alterna de 0 con un offset (tal como se dice en electrónica). Dicho offset es con una tensión contínua. O sea. Si alimento con 5V el offset será de 2.5 o sea VCC/2 que lo creo de manera muy simple con dos resistencias del mismo valor 10k o 100k y un capacitor que estabilice (solo por ser cuidadosos).
Ahora cuando la señal ingresa luego de pasar por un capacitor porque no debo **comprometer ** la fuente (mic o pickup) esta termina movida en lugar de 0V en 2.5V y con capacidad de expandirse hasta 2.5V positivo y 2.5V negativo.
Cuando la señal de entrada tenga 2.5V positivo sumada a los 2.5V de polarización contínua llegamos a los 5V de la fuente.
Cuando la señal de entrada sea un pico negativo de 2.5V se resta a los 2.5V de la polarización contínua y tendras 0V a la entrada del multiplexor.
Ahora el multiplexor alimentado solo con fuente simple 0 y 5V puede dejar pasar sin distorsión la señal de audio gracias al truco de desplazar la señal que ingresa.

Espero ahora lo entiendas.

ahhhh, , ahi voy entendiendo, entonces podria usar el 4067 que tengo y hacer el desplazamiento con las resistencias y el capacitor. Genial! tengo a mano resistencias de 150K, me servirían? si no me sirven cual decis que compre? y el capacitor de cuanto tendría que ser? tengo un par de 10uF