Tabla de contenido:

Caja de efectos Quad Opamp ATMega1284: 4 pasos (con imágenes)
Caja de efectos Quad Opamp ATMega1284: 4 pasos (con imágenes)

Video: Caja de efectos Quad Opamp ATMega1284: 4 pasos (con imágenes)

Video: Caja de efectos Quad Opamp ATMega1284: 4 pasos (con imágenes)
Video: Pr#009 - Medidor de revoluciones con Arduino 2024, Mes de julio
Anonim
Caja de efectos Quad Opamp ATMega1284
Caja de efectos Quad Opamp ATMega1284

El Stomp Shield para Arduino de Open Music Labs usa un Arduino Uno y cuatro amplificadores operacionales como caja de efectos de guitarra. De manera similar al instructable anterior que muestra cómo portar el Pedalshield Electrosmash Uno, también he portado la caja de efectos de guitarra de Open Music Labs al ATMega1284P, que tiene ocho veces más RAM que el Uno (16kB versus 2kB).

En comparación con el instructable anterior que usa la unidad de efectos ATMega1284, esta caja tiene las siguientes ventajas:

(1) Tiene un mezclador que mezcla la señal sin procesar con la señal procesada por MCU, lo que significa que la calidad de la señal en la salida ha mejorado mucho.

(2) Realiza un procesamiento de salida de 16 bits para las dos salidas PWM, mientras que la caja de efectos anterior usa 8 bits para algunos de los ejemplos, como el efecto de retardo.

(3) Tiene un potenciómetro de retroalimentación que se puede usar para mejorar los efectos, especialmente con el efecto flanger / phaser, aproximadamente un 30 por ciento de retroalimentación aumenta considerablemente la calidad del efecto.

(4) La frecuencia del filtro de paso bajo es de 10 kHz en comparación con los 5 kHz del cuadro de efectos anterior; esto significa que la señal en la salida suena considerablemente más "nítida".

(5) Utiliza un disparador de interrupción diferente que puede explicar el nivel de ruido considerablemente más bajo que muestra este cuadro de efectos.

Comencé instalando el Stompbox Shield de Open Music Labs basado en Uno y quedé tan impresionado con el rendimiento de este circuito de procesamiento de señales de cuatro OpAmp (incluso cuando usaba un Arduino Uno), que lo transferí a un stripboard para un uso más permanente.

El mismo circuito de cuatro opamp y el código DSP se transfirieron al ATMega1284, nuevamente, sorprendentemente aparte de los cambios no esenciales, como asignar los interruptores y el LED a un puerto diferente, y asignar 7, 000 kilo-palabras en lugar de 1, 000 kilo-palabra de RAM para el búfer de retardo, solo se tuvieron que hacer dos cambios esenciales en el código fuente, a saber, cambiar a ADC0 desde ADC2, y cambiar las salidas Timer1 / PWM OC1A y OC1B del Puerto B en el Uno al Puerto D (PD5 y PD4) en el ATMega1284.

Como se señaló anteriormente, aunque hay disponibles placas de desarrollo para ATMega1284 (Github: MCUdude MightyCore), es un ejercicio fácil comprar el chip básico (sin cargador de arranque) (compre la versión PDIP que es compatible con placa de prueba y placa de circuito impreso), luego cargue la bifurcación Mark Pendrith del gestor de arranque Maniacbug Mighty-1284p Core Optiboot o el MCUdude Mightycore, utilizando un Uno como programador ISP, y luego cargue los bocetos nuevamente a través del Uno al AtMega1284. Los detalles y enlaces para este proceso se dan en el apéndice 1 del instructable anterior.

Paso 1: Lista de piezas

Lista de partes
Lista de partes
Lista de partes
Lista de partes

ATMega1284P (versión de paquete PDIP de 40 pines) Arduino Uno R3 (utilizado como ISP para transferir el cargador de arranque y los bocetos al ATMega1284) OpAmp MCP6004 quad OpAmp (o RRIO similar (entrada y salida de riel a riel) OpAmp como TLC2274) 1 x LED rojo 1 cristal de 16 MHz 2 condensadores de 27 pF 1 condensador de 3n9 1 condensador de 1n2 1 condensador de 820pF 2 condensadores de 120 pF 4 condensadores de 100n 3 condensadores electrolíticos de 10uF 16v 4 resistencias de 75k 4 resistencias de 3k9 1 x 36k resistor 1 x resistor de 24k 2 x 1M resistencias 1 x 470 ohm resistor 3 x 1k resistencias 2 x 50k Potenciómetros (lineales) 1 x 10k Potenciómetro (lineal) 3 x interruptores de botón (uno de ellos debe ser sustituido por un 2 de 3 polos way footswitch si la caja de efectos se va a utilizar para trabajo en vivo)

Paso 2: construcción

Construcción
Construcción

El circuito 1 muestra el circuito utilizado y el Stripboard 1 es su representación física (Fritzing 1) con la Foto 1 el circuito de tablero de pan real en funcionamiento. Se realizaron tres pequeños cambios en el circuito: la polarización de amplificador de potencia de nivel de suministro medio compartido se usa para tres etapas de OpAmp, las resistencias paralelas de 3 x 75k y 2 x 75k ohmios se reemplazaron con resistencias únicas de 24k y 36k, y los capacitores de retroalimentación se aumentaron a 120pF para estas dos etapas de OpAmp. El control giratorio fue reemplazado por dos botones que se utilizan para aumentar o disminuir los parámetros de efectos. La conexión de tres cables al ATMega1284 se muestra en el circuito como ADC al pin 40, PWMlow del pin 19 y PWMhigh del pin 18. Los tres botones están conectados a los pines 1, 36 y 35 y conectados a tierra en el otro extremo. Un LED está conectado a través de una resistencia 470 al pin 2.

Etapas de entrada y salida de OpAmp: Es importante que se utilice un OpAmp RRO o preferiblemente un RRIO debido a la gran oscilación de voltaje requerida en la salida de OpAmp al ADC del ATMega1284. La lista de piezas contiene varios tipos de OpAmp alternativos. El potenciómetro de 50k se usa para ajustar la ganancia de entrada a un nivel justo por debajo de cualquier distorsión, y también se puede usar para ajustar la sensibilidad de entrada para una fuente de entrada que no sea una guitarra, como un reproductor de música. La segunda etapa de entrada OpAmp y la primera etapa de salida opamp tienen un filtro RC de orden superior para eliminar el ruido MCU generado digitalmente del flujo de audio.

Etapa ADC: El ADC está configurado para leer mediante una interrupción del temporizador. Se debe conectar un capacitor de 100nF entre el pin AREF del ATMega1284 y tierra para reducir el ruido, ya que se usa una fuente de Vcc interna como voltaje de referencia; ¡NO conecte el pin AREF a +5 voltios directamente!

Etapa DAC PWM: como el ATMega1284 no tiene su propio DAC, las formas de onda de audio de salida se generan utilizando una modulación de ancho de pulso de un filtro RC. Las dos salidas PWM en PD4 y PD5 se establecen como los bytes alto y bajo de la salida de audio y se mezclan con las dos resistencias (3k9 y 1M) en una proporción de 1: 256 (byte bajo y byte alto), lo que genera la salida de audio..

Paso 3: software

El software se basa en los bocetos de los pedales stompbox de Open Music Labs, y se incluyen dos ejemplos, a saber, un efecto de flanger / phaser y un efecto de retardo. Nuevamente, como con el instructable anterior, los interruptores y el LED se habían movido a otros puertos lejos de los utilizados por el programador ISP (SCLK, MISO, MOSI y Reset).

El búfer de retardo se ha aumentado de 1000 palabras a 7000 palabras, y PortD se ha configurado como salida para las dos señales PWM. Incluso con el aumento en el búfer de retardo, el boceto todavía usa solo alrededor del 75% de la RAM disponible de 16 kB ATMega1284.

Otros ejemplos como el trémolo del sitio web de Open Music Labs para el pedalSHIELD Uno se pueden adaptar para su uso por el Mega1284 cambiando el archivo de encabezado de inclusión Stompshield.h:

(1) Cambiar DDRB | = 0x06; // establece las salidas pwm (pines 9, 10) en outputtoDDRD | = 0x30;

y

ADMUX = 0x62; // ajuste a la izquierda, adc2, vcc interno como referencia a ADMUX = 0x60; // ajuste a la izquierda, adc0, vcc interno como referencia // Estos cambios son los ÚNICOS cambios de código esenciales // al migrar del Uno al ATMega1284

Para los dos ejemplos incluidos aquí, el archivo de encabezado se incluye en el boceto, es decir, no es necesario utilizar archivos de encabezado

Los botones pulsadores 1 y 2 se utilizan en algunos de los bocetos para aumentar o disminuir un efecto. En el ejemplo de retardo, aumenta o disminuye el tiempo de retardo. Cuando el boceto se carga por primera vez, comienza con el efecto de retardo máximo. Para el boceto de flanger phaser, intente aumentar el control de retroalimentación para un efecto mejorado.

Para cambiar el retardo a un efecto de eco (agregar repetición) cambie la línea:

búfer [ubicación] = entrada; // almacenar nueva muestra

para

búfer [ubicación] = (entrada + búfer [ubicación]) >> 1; // Usa esto para efectos de eco

El interruptor de pie debe ser un interruptor de dos vías de tres polos

Paso 4: enlaces

Electrosmash

Open Music labs Música

Pedal de efectos ATMega

Recomendado: