Entrada de Arduino Audio (6 / 8 paso)

Paso 6: Velocidad de ~ 40kHz de muestreo

En el código siguiente pasa por alto la función analogRead() para aumentar mi tasa de muestreo. El código necesario para hacer esto es bastante avanzado, tal vez puede ser objeto de otro instructivo si hay interés (deja tu comentario si te interesa), pero por ahora sólo es importante entender cómo utilizar este código en la función loop(), no cómo lo configuro.

Aquí está la explicación sencilla (todo lo que necesita saber por ahora):
Básicamente en la función setup() me dicho el Arduino que lo quiero para continuamente medir pin A0 y olvidarse de las otras entradas analógicas todos juntas.  Así que mientras otras cosas están pasando en la función loop(), Arduino constantemente está actualizando una variable llamada "ADCH" con nuevos valores de A0 a una frecuencia de 38,5 kHz (que es uno cada 26us de la muestra, se puede ver en la Fig. 2).  Cuando quiero conseguir uno de estos valores que solo puedo configurar una variable igual a ADCH, o como he escrito en mi código:

incomingAudio = ADCH;

Tuve que bajar la resolución de estas mediciones analógicas un poco para conseguir una mayor velocidad de muestreo.  En el último paso que estábamos usando analogRead() para medir el voltaje de la señal como un valor entre 0 y 1023, ahora estos valores siempre estará entre 0 y 255.  Monitoreo continuo de A0 significa también, que los otros pines analógicos son ahora inútiles, pero si usted realmente necesita medir un potenciómetro o un sensor, revisa cómo puede hacer él con un pin digital usando RCTime es 's posible que los pines analógicos todavía pueden ser utilizados como pines de I/O digitales, pero que realmente no he probado esto todavía, deja un comentario si lo intentas!

La complicada explicación (no es necesario, pero para aquellos que estén interesados):
Puse manualmente analógico interno de Arduino al convertidor digital (ADC) en contra de 500kHz y leer un valor de 8 bits de entrada analógica 0 de la ADCH directamente (acabo de leer los 8 bits más significativos de la ADC de 10 bits para ahorrar tiempo en el código).  Fije el contador del ADC a 500kHz porque el ADC tiene 13 ciclos de reloj para leer un nuevo valor analógico.  500/13 = ~ 38,5 kHz que me pone bastante cerca de 40KHz (frecuencia de muestreo de audio estándar) sin introducir ruido adicional.  Como se puede ver en la figura 2, este da me una muestra cada 13/500000 = 26us.  Muchas de las ideas aquí (prescalers y contadores) son similares a la configuración de interrupciones del temporizador de Arduino, y usted puede leer más acerca de lo que funciona aquí.

Como en el paso anterior, envié los valores de la variable "incomingAudio" a un DAC de 8 bits por lo que pude visualizar los datos como estaba siendo almacenado en el Arduino.  Puedes ver la señal de entrada (amarillo) y la salida del DAC (azul) en las imágenes de arriba.  Observe cuánto mejor el Arduino sigue la señal en comparación con el último paso.  En la figura 2 puede ver que el tamaño de paso es hasta 26us (en comparación con 125us al usar analogRead).  Otra vez vemos los efectos del recorte en 0V y 5v en la figura 3.

El código de velocidad de muestreo de 38,5 kHz con salida DAC se expone a continuación.

Artículos Relacionados

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
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
¿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
Salida de Arduino Audio

Salida de Arduino Audio

Generar el sonido o la salida voltajes analógicos con un Arduino. Este Instructable le mostrará cómo configurar un muy básico digital al convertidor de análogo para que puedas empezar a generar las ondas analógicas de todas las formas y tamaños de un
Monitor entrada de Arduino LCD analógica/digital.

Monitor entrada de Arduino LCD analógica/digital.

Esto es como hacer un monitor de entrada/salida de arduino powered LCDPaso 1: materiales.Estas son las cosas que usted necesita.Arduino UNO.Protector de teclado de DFRobot 1602 LCD (no tiene que ser este tipo, solo tienes que saber el pin-out).Comput
Cómo controlar un bosquejo del proceso con dos entradas de Arduino

Cómo controlar un bosquejo del proceso con dos entradas de Arduino

Este tutorial le mostrará cómo construir un circuito básico de Arduino que puede controlar una divertida bola color sketch en el proceso.Se necesita:1 x placa Arduino (estoy usando un Uno)1 x Breadboard1 x foto-resistencia1 x 10 k Ohm Resistor (marró
Usando el PCF8575 i2c i/o Expander a leer entradas con Arduino

Usando el PCF8575 i2c i/o Expander a leer entradas con Arduino

este Instructable le mostrará lo fácil es añadir entradas adicionales a su Arduino. Puede utilizar esta técnica para Agregar cientos de entradas adicionales a tu Arduino con sólo dos cables mediante un protocolo de comunicación de lujo llamado i2c (v
Entrada de Arduino analógica pantalla

Entrada de Arduino analógica pantalla

Hola, este es un sencillo instructivo que muestra cómo utilizar una entrada analógica (potenciómetro) y mostrar que en forma de porcentaje en una pantalla de caracteres LCD 16 X 2Gracias por mirar!Paso 1: Piezas necesarias lo que necesita:1 x arduino
Hackear un cambiador de voz para añadir una entrada de Arduino

Hackear un cambiador de voz para añadir una entrada de Arduino

otro hack rápido. Compré un cambiador de voz porque estaba buscando algo barato que podría ser hackeado en un dispositivo de entrada de voz. Básicamente quería animar un cráneo cuando hablé. Bono adicional, ahora el muñeco del cráneo también tendría
Rotatorio a la unidad de entrada de Arduino usando LDR (resistor dependiente de luz)

Rotatorio a la unidad de entrada de Arduino usando LDR (resistor dependiente de luz)

desde mi experiencia, muchos dispositivos de entrada giratorios en Arduino dependen de un potenciómetro que permite una resistencia variable. en este instructable, vamos a intentar conseguir el mismo efecto utilizando una LDR, LED y una tira de papel
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
Transmisión de datos de Android a Arduino a través de jack de audio

Transmisión de datos de Android a Arduino a través de jack de audio

Con este proyecto puede enviar bytes de android a arduino usando solamente un conectador audio del gato.¿Cómo funciona?Básicamente, android envía una señal de audio "morse" a arduino. Arduino en la otra mano descifra el código morse a un byte. A
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