Tabla de contenido:
- Paso 1: Cosas que necesitamos para este proyecto (requisitos)
- Paso 2: teoría de ADC a PWM
- Paso 3: esquema
- Paso 4: prueba final
Video: Reproducir canciones con Arduino usando ADC to PWM en Flyback Transformer o Speaker: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Hola chicos, Esta es la segunda parte de mi otro instructable (que fue muy difícil). Básicamente, en este proyecto, he usado el ADC y TIMERS en mi Arduino para convertir la señal de audio en una señal PWM.
Esto es mucho más fácil que mi Instructable anterior. Aquí está el enlace de mi primer Instructable si quieres verlo. Enlace
Para comprender la teoría de la señal de audio, velocidad de bits, profundidad de bits, velocidad de muestreo, puede leer la teoría en mi último tutorial sobre Instructable. El enlace está arriba.
Paso 1: Cosas que necesitamos para este proyecto (requisitos)
1. Placa Arduino (podemos usar cualquier placa (328, 2560), es decir, Mega, Uno, Mini, etc. pero con pines diferentes específicos)
2. PC con Arduino Studio.
3. Tablero de pruebas o tablero perfilado
4. Conexión de cables
5. TC4420 (controlador Mosfet o algo así)
6. Power Mosfet (canal N o P, conecte luego en consecuencia) (he usado el canal N)
7. Altavoz o transformador Flyback (¡Sí, lo leíste bien!)
8. Fuente de alimentación adecuada (0-12 V) (he usado mi propia fuente de alimentación ATX)
9. Disipador de calor (lo he recuperado de mi vieja PC).
10. Un amplificador (amplificador de música normal) o circuito amplificador.
Paso 2: teoría de ADC a PWM
Entonces, en este proyecto, he usado un ADC integrado de Arduino para hacer muestreo de datos de una señal de audio.
ADC (convertidor analógico a digital) como el nombre lo define, ADC convierte la señal analógica en muestras digitales. Y para Arduino con una profundidad máxima de 10 bits. Pero para este proyecto, usaremos muestreo de 8 bits.
Al usar el ADC de Arduino, debemos tener en cuenta el voltaje ADC_reference.
Arduino Uno ofrece 1.1V, 5V (referencia interna, que se puede configurar definiendo en código) o una referencia externa (que tenemos que aplicar externamente al pin AREF).
Según mi experiencia, se debe usar un mínimo de 2.0V como voltaje de referencia para obtener un buen resultado del ADC. Como 1.1V no salió bien al menos para mí. (Experiencia personal)
* IMPORTANTE * * IMPORTANTE ** IMPORTANTE ** IMPORTANTE ** IMPORTANTE *
Necesitamos usar una señal de audio amplificada de un amplificador o un circuito amplificador con un voltaje máximo (voltaje máximo) de 5V
Porque configuré la referencia de voltaje interna de 5 V para nuestro proyecto. Y estoy usando una señal amplificada usando un amplificador normal (amplificador de música), que está disponible principalmente en nuestro hogar o puede construir uno para usted.
Así que ahora la parte principal. Tasa de muestreo, que es la cantidad de muestras que toma nuestro ADC por segundo, más es la tasa de conversión, mejor será el resultado de salida, más similar será la onda de salida en comparación con la entrada.
Entonces, usaremos una frecuencia de muestreo de 33.33Khz en este Proyecto, configurando el reloj ADC en 500Khz. Para entender cómo es así, tenemos que ver la Página de sincronización de ADC en la hoja de datos del chip Atmega (328p).
Podemos ver que necesitamos 13,5 ciclos de reloj ADC para completar una muestra con muestreo automático. Con una frecuencia de 500Khz, significa 1 / 500Khz = 2uS para un ciclo de ADC, lo que significa que se necesitan 13.5 * 2uS = 27uS para completar una muestra cuando se usa el muestreo automático. Dando 3uS más al microcontrolador (por el lado seguro), haciendo un total de 30uS en total para una muestra.
Entonces, 1 muestra a 30 uS significa 1 / 30uS = 33,33 K Muestras / S.
Para establecer la tasa de muestreo, que depende de TIMER0 de Arduino, porque el disparador de muestreo automático de ADC depende de eso en nuestro caso, como también puede ver en el código y la hoja de datos, hemos hecho el valor de OCR0A = 60 (¿Por qué ???)
Porque de acuerdo con la fórmula dada en la hoja de datos.
frecuencia (o aquí Frecuencia de muestreo) = Frecuencia de reloj de Arduino / Prescaler * Valor de OCR0A (en nuestro caso)
Frecuencia o frecuencia de muestreo que queremos = 33,33 KHz
Frecuencia de reloj = 16 MHz
Valor de preescalador = 8 (en nuestro caso)
Valor de OCR0A = queremos encontrar ??
que simplemente da OCR0A = 60, también en nuestro código Arduino.
TIMER1 se usa para la onda portadora de una señal de audio, y no entraré en tantos detalles al respecto.
Entonces, esa fue la breve teoría del concepto de ADC a PWM con Arduino.
Paso 3: esquema
Conecte todos los componentes como se muestra en el esquema. Entonces tienes aquí dos opciones: -
1. Conecte un altavoz (conectado con 5V)
2. Conecte un transformador Flyback (conectado con 12V)
He probado ambos. Y ambos funcionan bastante bien.
* IMPORTANTE * * IMPORTANTE ** IMPORTANTE ** IMPORTANTE ** IMPORTANTE * Necesitamos usar una señal de audio amplificada de un amplificador o un circuito de amplificador con un voltaje pico (voltaje máximo) de 5V
Descargo de responsabilidad:-
* Recomiendo usar Flyback Transformer con precaución ya que puede ser peligroso porque produce altos voltajes. Y no seré responsable de ningún daño. *
Paso 4: prueba final
Así que cargue el código dado a su Arduino y conecte la señal amplificada al pin A0.
Y no olvide conectar todos los pines de tierra a una tierra común.
Y simplemente disfruta escuchando música.
Recomendado:
Reproducir video con ESP32: 10 pasos (con imágenes)
Reproducir video con ESP32: este instructivo muestra algo sobre la reproducción de video y audio con ESP32
Mood Speaker: un potente altavoz para reproducir música ambiental en función de la temperatura ambiente: 9 pasos
Mood Speaker: un potente altavoz para reproducir música ambiental en función de la temperatura ambiente: ¡Hola! Para mi proyecto escolar en MCT Howest Kortrijk, hice un Mood Speaker, este es un dispositivo de altavoz Bluetooth inteligente con diferentes sensores, una pantalla LCD y WS2812b ledstrip incluido. El altavoz reproduce música de fondo en función de la temperatura, pero puede
Reproducir canciones (MP3) con Arduino usando PWM en el altavoz o transformador Flyback: 6 pasos (con imágenes)
Reproducir canciones (MP3) con Arduino usando PWM en altavoz o transformador Flyback: Hola chicos, este es mi primer instructivo, ¡espero que les guste! Básicamente, en este proyecto he utilizado la comunicación en serie entre mi Arduino y mi computadora portátil, para transmitir datos de música desde mi computadora portátil al Arduino. Y usando los TIMERS de Arduino t
Reproducir CD sin reproductor de CD, usando AI y YouTube: 10 pasos (con imágenes)
Reproducir CD sin reproductor de CD, usando AI y YouTube: ¿Quiere reproducir sus CD pero no tiene más reproductor de CD? ¿No tuvo tiempo de copiar sus CD? ¿Los ha copiado pero los archivos no están disponibles cuando se necesitan? No hay problema. ¡Deje que la IA (inteligencia artificial) identifique su CD y YouTube lo reproduzca! Escribí una aplicación para Android haciendo
Reproducir canciones con motor paso a paso: 11 pasos (con imágenes)
Play Songs Using Stepper Motor !!: Este proyecto trata sobre el diseño de una interfaz dinámica simple, que permitirá interactuar con un motor paso a paso de dos formas diferentes.La primera interfaz controlará la dirección y velocidad del motor paso a paso mediante el uso de un GUI simple, que h