Audio estéreo con Arduino (4 / 7 paso)

Paso 4: Salida de Audio estéreo con DAC de 8 bits y frecuencia de muestreo de 44,1 kHz

En este código estoy enviando una onda sinusoidal a DACA y una onda de sierra a DACB al mismo tiempo y a una tasa de 44.1 kHz. Se trata de audio estéreo, dos canales independientes de audio. Para conseguir que funcione, había combinado seno elementos y VI código mono desde el último paso y utiliza los pernos WR y DACA/DACB para alternar entre las dos salidas DAC.

Configurar una interrupción como en el ultimo paso, pero esta vez la puse a una velocidad de 2 * 44.1 = 88,2 kHz. Entonces cada vez que la interrupción que se ejecuta, alternaba entre mandando algo a DACA y DACB, por lo que cada uno recibió una muestra durante cada interrupción de otros. Esto hace que la frecuencia de muestreo en ambas las salidas 44.1 kHz. El contenido de la rutina de interrupción se copia a continuación:

digitalWrite (WR, alto); //hold salidas-para que nuevos datos de CAD no Haz enviados hasta que estemos listos
Si {} (canal)
PORTD = seno [índice]; seno //send a los pines digitales 0-7
digitalWrite (outputSelector, LOW); //select DACA
Índice ++; valor de índice de //increment por uno
Si (índice == 100) {índice de //reset si llega a 100
índice = 0;
}
}
Else {}
PORTD = Sierra; //send vio a los pines digitales 0-7
digitalWrite (outputSelector, HIGH); //select DACB
Sierra ++; //increment Sierra valor por uno
Si (VI == 255) {//reset vio si llega a 256 (salida mantiene dentro siempre de 0-255)
VI = 0;
}
}
digitalWrite (WR, LOW); //enable la salida otra vez
canal ^ = 1; //toggle canal

Cuando las interrupciones, los conjuntos de Arduino el WR perno alto, temporalmente tiene las salidas DAC en sus tensiones actuales y nos permite enviar datos en CAD sin necesidad de cambiar la salida DAC seleccionado actual. La variable "canal" alterna entre valores de 0 y 1 cada vez que la interrupción se ejecuta alternando el seno y salida de la sierra. Cuando el "canal" = 1, se establece un valor de la matriz "seno" a la DAC por PORTD. La siguiente línea establece el outputSelector pin (pin DACA/DACB) bajo, que DACA que se seleccionarán. Entonces WR se encuentra baja, causando el nuevo valor del seno a través de DACA. En la siguiente rutina de interrupción, una serie similar de eventos provoca un valor de sierra a la salida de la DACB.

 <pre>//stereo audio out, sampling rate <=44.1kHz //by Amanda Ghassaei //Nov 2012 

Como en el ultimo paso, mi tasa de muestreo no fue precisamente 88.2 kHz, fue realmente 88,398 kHz (ligeramente mejor que 88.2), así que usaré ese número en los siguientes cálculos:

duración de cada muestra = 2 * 1/velocidad de muestreo
duración de cada muestra = 2 * 1/88398 Hz = 22.6us

al igual que en el último paso el período de los seno y la sierra son las siguientes:

VI periodo = 22.6us * 256 = 5.8ms
período de seno = 22.6us * 100 = 2.3ms

pero si observas higos 2 y 3 veremos en que la duración de la muestra y período de las ondas de salida es mucho más largo. Esto es porque el código en la rutina de interrupción es ineficiente y está tomando más de 22.6us para ejecutar. Para solucionarlo tuve que reemplazar el comando Arduino de la biblioteca "digitalWrite" con comandos de manipulación directa pin mucho más eficientes en el código siguiente. Puedes leer más sobre como funcionan aquí, también puede leer los comentarios me he puesto en el código siguiente. Higos 4 y 5 muestran las salidas de este código optimizado, se puede ver que la duración del período y muestra es lo que esperamos de los cálculos.

 <pre>//stereo audio out with 44.1kHz sampling rate //by Amanda Ghassaei //Nov 2012 

Te observo también, que desde el CS pin se mantiene baja para la duración de este código (ajuste alto se desactivará escribir datos nuevos en cada salida), puede liberar un pin adicional de Arduino por CS a tierra permanentemente y eliminar las instancias del CS en el código de Arduino.

Artículos Relacionados

Amplificador Audio estéreo con IC TEA2025

Amplificador Audio estéreo con IC TEA2025

¿Estás pensando hacer un amplificador estéreo? Si usted es, es el lugar correcto! Este proyecto trata de hacer un amplificador de audio estéreo de 5 vatios usando el IC TEA2025.Agradecimiento especial a este sitio.NOTA: LA MAYORÍA DE LAS FOTOS NO PER
Cómo construir un interruptor de audio estéreo de 1/8 de pulgada (3,5 mm) con Legos

Cómo construir un interruptor de audio estéreo de 1/8 de pulgada (3,5 mm) con Legos

se me ocurrió esta idea cuando estaba configurar de mi nueva computadora.  Tengo dos ordenadores, y quise ejecutar el audio en un set de altavoces.  Mi primer pensamiento fue a comprar una simple 2 hembra a 1 hembra conector de 'Y', pero que al parec
Visualizador de espectro de Audio estéreo 3D

Visualizador de espectro de Audio estéreo 3D

En uno de nuestros anteriores instructables, hemos construido un Arduino basado en visualizador de espectro de Audio con nuestros módulos de matriz de LED bicolor para la pantalla. Usted puede sacar enHace unos meses diseñamos jolliCube, un 8 x 8 x 8
Amplificador de Audio estéreo de 32W

Amplificador de Audio estéreo de 32W

Agradecimientos ALAMGIR NASIRhttps://www.Facebook.com/profile.php?id=100001497433614Que me ayudaron a hacer este proyectoIntroducciónEl objetivo del proyecto fue hacer un amplificador de audio estéreo. Además deben ser características adicionales que
Micrófono estéreo con amplificador pequeño en una caja de lápices

Micrófono estéreo con amplificador pequeño en una caja de lápices

micrófono estéreo con amplificador pequeño en una caja de lápices, construyo esto para mi proyecto http://www.archivosonoro.org es un proyecto sin fines de lucro sobre las grabaciones de campo y paisajes sonoros. Este uso de la caja con una grabadora
Mod tu amplificador estéreo con fans de PC

Mod tu amplificador estéreo con fans de PC

bien por eso he querido hacer este Instructable porque yo uso mi Technics SU-600 para un montón de trabajo pesado uso estéreo y lo planeaba Mod con ventiladores para refrescarse abajo, pero yo no tenía la intención de hacer este impresionante. Así qu
Altavoces estéreo con iluminación LED sincronizados

Altavoces estéreo con iluminación LED sincronizados

esta es una guía paso a paso al edificio de un par de altavoces estéreos de dos vías, con LED de sincronizar con el audio. El LED puede apagarse cuando se desea música sin iluminación. En estos altavoces, claro de acrílico se utiliza así que todo el
Manera más fácil de obtener Audio estéreo de micrófonos Mono entradas (sin Software)

Manera más fácil de obtener Audio estéreo de micrófonos Mono entradas (sin Software)

comprarlo: http://amzn.to/ncofO1Episodio 1 - www.thoughtgrenades.comUna forma rápida y práctica para obtener sonido estéreo de micrófonos Mono entradas.Software utilizado para editar: After Effects y Sony VegasCompilado de música de fondo: youtube.co
Refrigerador estéreo con altavoces de torre de Wakeboard (paquete pequeño... gran golpe)

Refrigerador estéreo con altavoces de torre de Wakeboard (paquete pequeño... gran golpe)

Descargo de responsabilidadPido disculpas... no se trata de un detallado paso a paso instructable. En cambio, es un intento de pasar de una idea alrededor. Hasta la fecha, he construido varios al aire libre stereo refrigerador tipo gizmos (fibra de c
Simple de amplificador de Audio estéreo 6283

Simple de amplificador de Audio estéreo 6283

Hola a todos este es mi primer instructivo y en esto voy a decirte cómo hacer un simple, barato (máximo 3$ o 180 INR) y buen amplificador estéreo para escuchar buen sonido. Para ello estoy usando 6283 IC amplificador la Junta que está fácilmente disp
Hackear y actualizar tu sistema estéreo con un módulo bluetooth

Hackear y actualizar tu sistema estéreo con un módulo bluetooth

Tengo este amplificador estéreo que tiene un gran sonido pero sin conectividad inalámbrica.Con unos cuantos dólares y un poco de paciencia es posible que sea un sistema estéreo bluetooth gran!Paso 1: Comprar algunos componentes Se necesita:Un xs3868
Bolsillo estéreo con built-in MP3 Player y fuente de alimentación

Bolsillo estéreo con built-in MP3 Player y fuente de alimentación

siempre estoy tratando de hacer una mejor, más pequeño mini estéreo que se adapta cómodamente en el bolsillo, pero también saca al menos un nivel medio de sonido. Esta es mi última creación...Es una pequeña lata que tiene no sólo un amplificador inco
BRICOLAJE hogar estéreo con un amplificador de coche.

BRICOLAJE hogar estéreo con un amplificador de coche.

Por que estaba muy aburrido un día y también enfermos con el frío. Yo no tenía nada que ver por lo que me refiero bueno, deja lío con cierta electrónica de desecho que tenía en mi armario. Terminé haciendo un pequeño sistema de sonido que consiste de
MRETV - Video, sonido estéreo y mucho más desde un Arduino estándar!

MRETV - Video, sonido estéreo y mucho más desde un Arduino estándar!

MRETV - Video, sonido estéreo y mucho más desde un Arduino estándar!Ahora actualizado para Arduino 1.6.6 noviembre de 2015!Utilizar sólo dos resistencias y dos diodos para generar vídeo en pantalla completa. Texto 47 x 29 de 8 x 8 caracteres, doble l