10 votos

¿Tasa de muestreo máxima de Arduino Duemilanove?

Buenos días a todos.

Tengo un Arduino Duemilanove colgando alrededor de repuesto en el momento y pensé que podría intentar algunos proyectos de interfaz de audio. Me pregunto qué tipo de frecuencia de muestreo puedo lograr utilizando una sola entrada analógica y la aplicación de algunos algoritmos simples en el chip, a continuación, la presentación de informes utilizando algunas salidas digitales atados a los LED.

Me gustaría muestrear a ~44,1 kHz si es posible.

Como referencia lo primero que quiero probar es un simple afinador de guitarra.

17voto

jasonjwwilliams Puntos 950

Como querías aprender a escribir con ejemplos: J. Kock e I. Vainsencher "An Invitation to Quantum Cohomology" es una lectura maravillosa, simplemente por su estilo increíblemente amigable. Da la sensación de que los autores te llevan de la mano y te conducen por su jardín de las maravillas (siempre cuesta arriba, por supuesto). El logro del libro es darte mucha intuición -para las pilas de módulos, las estrategias para las pruebas en la geometría enumerativa, la necesidad de una clase fundamental virtual, cómo funcionan las funciones generadoras... Esto es algo muy difícil de hacer en la escritura matemática - en este sentido se podría comparar con el blog de John Baez, sólo que es un libro más largo y coherente sobre un solo tema.

16voto

Lehane Puntos 6776

En primer lugar, para su aplicación particular, realmente sólo necesita una frecuencia de muestreo de 1 kHz más o menos, suponiendo que está sintonizando la frecuencia fundamental y no uno de los parciales inarmónicos ...

De todos modos, en cuanto a la máxima frecuencia de muestreo posible, el Manual de Arduino dice:

La lectura de una entrada analógica tarda unos 100 microsegundos (0,0001 s), por lo que la velocidad máxima de lectura es de unas 10.000 veces por segundo.

Esto implicaría que la frecuencia de muestreo de 10 kHz es la máxima. Sin embargo. Puede obtener mayores tasas de muestreo si acceder directamente a los registros del ADC . El Procesamiento de audio en tiempo real con Arduino utiliza dos canales a 15 kHz, por ejemplo. Así que el máximo de 10 kHz es sólo mientras se usa la función incorporada AnalogRead(), porque tiene mucha sobrecarga.

El ADC está optimizado para funcionar mejor con una velocidad de reloj de entre 50 kHz y 200 kHz:

Por defecto, el circuito de aproximación sucesiva requiere una frecuencia de reloj de entrada [reloj ADC] entre 50 kHz y 200 kHz para obtener la máxima resolución.

Dado que una conversión ADC tarda 13 ciclos de reloj, esto supondría una frecuencia de muestreo de 4 kHz a 15 kHz. Según AVR120: Caracterización y calibración del ADC en un AVR :

Para un rendimiento óptimo, el reloj del ADC no debe superar los 200 kHz. Sin embargo, las frecuencias de hasta 1 MHz no reducen significativamente la resolución del ADC.

El funcionamiento del ADC con frecuencias superiores a 1 MHz no está caracterizado.

1 MHz de frecuencia de reloj = 77 kHz de frecuencia de muestreo, así que ese es el máximo realista.

El hilo del foro ¿Lectura analógica más rápida? tiene más sobre esto.

10voto

PhilPursglove Puntos 257

Si utilizas un comparador analógico (ya sea el interno del AVR o uno externo de tipo opamp) que convierte la entrada analógica en una onda cuadrada, puedes muestrear las oscilaciones a velocidades mucho más altas. Aunque esto no es un verdadero muestreo de audio, para construir un afinador de guitarra es a menudo todo lo que necesitas, ya que todo lo que tu código estaría haciendo de todos modos sería contar cruces de cero por unidad de tiempo.

3voto

Dinah Puntos 15711

Esta es una pregunta realmente importante. La mayoría de las primeras partes se describen en la página wiki muy detallada http://wiki.openstreetmap.org/wiki/Mapnik . Se detiene en TileCache, la probable respuesta a la parte de renderización de azulejos. ¿Es suficiente para continuar? Podría desenterrar algunos de los archivos que usé para construir Tile Drawer.

1voto

Busca en Google 'AVR guitar tuner', hay un par de proyectos por ahí que ya lo hacen, y parece que pueden hacerlo sin demasiados problemas con la velocidad del AVR.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X