Salida de Arduino Audio (9 / 10 paso)

Paso 9:40 kHz frecuencia de muestreo

Para aquellos de ustedes que están interesados en la producción de audio en la frecuencia de muestreo de 40kHz, aquí está algo de código que utiliza interrupciones del temporizador para que pueda hacer eso.  Interrupciones de timer de Arduino permiten hacer una pausa en lo que está haciendo en la función loop() principal y saltan a una función especial llamada una "rutina de interrupción".  Una vez hecha esta rutina vuelves donde la dejaste en el loop().  Puede configura y especifica la frecuencia de estas interrupciones en la parte de setup() de su código.  Usted puede aprender los detalles de configuración de interrupciones aquí, pero si sólo estás interesado en interrupciones de 40kHz, puede solo copia partes del código de abajo.

Para configurar la interrupción es necesario copiar las siguientes líneas en la función setup():

cli (); //disable interrupciones
interrupción de timer0 sistema a 40kHz
TCCR0A = 0; / / todo TCCR0A registro para 0
TCCR0B = 0; / / única para TCCR0B
TCNT0 = 0; //initialize valor de contador a 0
compara Set match registrarse incrementos de 40khz
OCR0A = 49; / / = (16 * 10 ^ 6) / (40000 * 8) - 1 (debe ser < 256)
Activar modo de CTC
TCCR0A | = (1 << WGM01);
Establezca el bit CS11 para 8 prescaler
TCCR0B | = (1 << CS11);
habilitar interrupción de timer en comparación
TIMSK0 | = (1 << OCIE0A);
SEI (); //enable interrupciones

el contenido de la rutina de interrupción se encapsula en la siguiente función:

ISR(TIMER0_COMPA_vect) {//40kHz rutina de interrupción
}

Desea mantener la rutina de interrupción más corta posible, solamente las necesidades.  Puede hacer todas sus otras tareas (comprobación de botones, encendido de leds, etc.) en el loop().  También tenga en cuenta que configurar interrupciones puede afectar otras funciones de Arduino como analogWrite y retraso.

En el código a continuación, utilizar la función de interrupción para enviar un nuevo valor de seno [] a PORTD a una velocidad de 40 kHz e incrementar la variable "t".  Higos 1 y 2 muestran la salida (sin filtrar) del código en un osciloscopio.  Podemos calcular la frecuencia como sigue:

frecuencia = (frecuencia de muestreo) / (pasos por ciclo)
frecuencia = 40.000 / 100 = 400 hz

a una frecuencia de muestreo de 40kHz que esperamos la duración de cada paso a ser:

duración de cada paso de la muestra = 1 / (frecuencia de muestreo)
duración de cada paso de la muestra = 1/40.000 = 25us

 //Sine out w/ 40kHz sampling rate //by Amanda Ghassaei 

Artículos Relacionados

Generador de código para menús personalizados de Android/Arduino activar salidas de Arduino y apagado. Andriod/Arduino para principiantes. Absolutamente ninguna programación requerida

Generador de código para menús personalizados de Android/Arduino activar salidas de Arduino y apagado. Andriod/Arduino para principiantes. Absolutamente ninguna programación requerida

Actualización: un usuario pidió menú apoyo. pfodApp siempre admite submenús pero he agregado submenús al pfodDesigner. El instructable diseño un sistema de menú Custom muestra cómo utilizar pfodDesigner para crear un menú con submenús que mostrará en
Pulso de salida de Arduino del móvil Android. Ninguna programación requerida

Pulso de salida de Arduino del móvil Android. Ninguna programación requerida

IntroducciónEste Instructable muestra cómo utilizar la aplicación gratuita, pfodDesigner, para diseñar un menú en tu móvil Android que se pulsará una salida en tu placa Arduino sin tener que escribir ningún código en absoluto. El pfodDesigner genera
Registro de salida de Arduino para días con un BeagleBone

Registro de salida de Arduino para días con un BeagleBone

Aquí es un hack rápido para la depuración de proyectos de Internet de las cosasVamos a decir usted construido un bonito, conectados a Internet Arduino proyecto con una elegante interfaz Web servida por, por ejemplo, el escudo de la Ethernet. Después
RegisterWrite - extender las salidas del Arduino/microcontrolador con los registros de cambio

RegisterWrite - extender las salidas del Arduino/microcontrolador con los registros de cambio

Registrar escriba es un ejemplo de programa para ampliar las salidas de Arduino usando un registro de cambio.He escribí un bosquejo sencillo que usa 3 salidas de Arduino para manejar el registro de desplazamiento.Escribí esto como no pude encontrar n
Shield Arduino Audio

Shield Arduino Audio

En este vídeo mostramos los pasos para el montaje de su caso de audio shield Arduino. Para adquirir uno de estos casos, solo volver a mi proyecto de kickstarter: Arduino Audio escudoPaso 1: Cómo montar tu caso de Shield Arduino Audio DSPEl primer pas
Escudo de Arduino Audio DSP

Escudo de Arduino Audio DSP

El escudo de Arduino Audio DSP tiene modulación de anillo, eco, reverb, un oscope, oscilador, generador de forma de onda arbitraria, etc.. Es un sistema de software y hardware, un hombre sano, en una lata!Paso 1: Conseguir un escudo audio de arduinoL
Entrada de Arduino Audio

Entrada de Arduino Audio

Enviar sonido a tu Arduino. Este Instructable le mostrará cómo preparar el audio para que puedan ser muestreado y procesada por un Arduino para hacer proyectos sensibles sonidos y efectos de audio. (Este artículo es un compañero de otro Instructable
¿Arduino Audio accionado el interruptor

¿Arduino Audio accionado el interruptor

Ever quería su entretenimiento en el hogar o el sistema de sonido a la energía encima de sí mismo al conectar tu iPod u otro reproductor portátil de MP3?Vea este vídeo para ver cómo funciona. Entonces voltear a través de los pasos para saber cómo hac
Probador de la salida de Arduino usando LED #Xolcano

Probador de la salida de Arduino usando LED #Xolcano

este es un simple y proyecto muy útil cuando se trabaja en cualquier prototipo te puede usar esto para ahorrar tiempo...! así que empezar letzPaso 1: Componentes necesarios 1) LED 3 mm-#72) 1 k resistencia - #73) protoboard perforado4) soldadura de p
Fácil Arduino Audio Annoyatron

Fácil Arduino Audio Annoyatron

este simple dispositivo simple juega una pequeña melodía a intervalos al azar, entre 5 y 30 segundos cuando apagarán las luces en una habitación. Puede ser hábilmente disfrazada dentro de una caja de tejido, o dentro o debajo de cualquier número de o
Twitter controla salidas de Arduino - no PC - pantalla de LCD + Sensor datos a Twitter

Twitter controla salidas de Arduino - no PC - pantalla de LCD + Sensor datos a Twitter

Control digital hacia fuera los pernos por mensajes de Twitter. Lecturas del sensor enviadas a Twitter.MODIFICADO por JOHN Xativa de Twitter2LCD escrito originalmente por Fabrizio GranelliVer * Usted puede enviar mensajes de texto a la pantalla de LC
Arduino Due entrada guitarra de ADC y DAC salida mezclador

Arduino Due entrada guitarra de ADC y DAC salida mezclador

esta es la secuela a mi instructable que ofrece un circuito de entrada de señales generadas por una guitarra en el arduino due ADC.[Actualizado el 26 de enero de 2014 - el esquema ha cambiado... ver notas a continuación.]Este instructivo describe el
Audio estéreo con Arduino

Audio estéreo con Arduino

Recientemente yo he publicando un montón de proyectos que usan un 8 bit escala de resistenciaconvertidor digital a analógico (DAC) y un Arduino para hacer sonido. (ver el cuadro de efectos vocales de Arduino, Arduino tambor sampler y mi tutorial de s
Arduino intermedio: Entradas y salidas

Arduino intermedio: Entradas y salidas

Continuando con mi introducción a Arduino puesto, irá este Instructable sobre algunos temas un poco más avanzados con Arduino, relativos específicamente a controlar y muchas entradas y salidas. La siguiente clase cubre cómo conectar entradas de Ardui