Saltar al contenido

Afinador de guitarra Arduino

julio 4, 2021
FNQUCEAHJ5ZTBJS

¡Construye tu propio afinador de guitarra eléctrica con Arduino! Decidí hacer esto porque quería experimentar con la entrada de audio y la detección de frecuencia. Utilicé el método de Amanda Ghassaei para la detección de frecuencia de Arduino para obtener lecturas de frecuencia usando Arduino. Usé LED que se iluminan de acuerdo con la frecuencia de la entrada de audio, lo que indica si la cuerda que se está tocando es aguda, plana o afinada. Esto funciona como cualquier otro afinador de guitarra, ¡pero puedes hacerlo tú mismo!

Paso 1: lo que necesita

Que necesitas

(x1) Arduino Uno (RadioShack #276-128)
(x1) TL082 Amplificador operacional de entrada doble JFET (RadioShack #276-1715)
(x1) Recinto de proyecto de 6x4x2 “(RadioShack #270-1806)
(x6) LED amarillo de 5 mm (RadioShack #276-021)
(x6) LED rojo de 5 mm (RadioShack #276-041)
(x1) LED verde de 5 mm (RadioShack #276-022)
(x13) Resistencia de 150 ohmios (RadioShack #271-1109)
(x2) Batería de 9V (RadioShack # 23-1134)
(x2) Conector a presión de 9V (RadioShack #270-324)
(x1) Enchufe de alimentación tipo M (RadioShack # 274-1569)
(x1) Interruptor basculante SPST (RadioShack #275-693)
(x1) Conector de audio mono de 1/4 “(RadioShack #274-255)
(x1) Placa de circuito impreso a juego (RadioShack #276-170)
(x1) Placa de circuito impreso estilo cuadrícula (RadioShack #276-149)
(x3) Resistencia de 100 kOhmios (RadioShack #271-1347)
(x1) Resistencia de 22kOhmios (RadioShack #271-1339)
(x1) Condensador de 10uF (RadioShack #272-1025)
(x1) Condensador 100nF
(x1) Lámina acrílica de 6x4x.125 “

Paso 2: taladrar

TaladroTaladroTaladro

Perfore un orificio de inicio en el costado de su gabinete con una broca de 1/8 “. Perfore en el orificio de inicio con una broca de pala de 13/16” para crear un orificio más grande para el interruptor basculante SPST. El interruptor basculante servirá como interruptor de encendido / apagado para el sintonizador.

Haz un agujero debajo del agujero del interruptor de encendido / apagado con una broca de 23/64 “. Este agujero es para tu conector de audio.

Paso 3: interruptor de encendido / apagado

Interruptor encendido / apagadoInterruptor encendido / apagadoInterruptor encendido / apagadoInterruptor encendido / apagadoInterruptor encendido / apagado

Suelde el extremo rojo de uno de los broches de presión de la batería a una de las lengüetas del interruptor y suelde un cable rojo a la otra lengüeta del interruptor.

Pase el broche y el cable a través del orificio de 13/16 “en su gabinete y fíjelo en su lugar con su tuerca de montaje.

Paso 4: conector de audio

Conector de audioConector de audioConector de audio

Suelde un cable verde al terminal de salida y un cable negro al terminal de tierra en el conector de audio.

Inserte el conector de audio en el orificio de 23/64 “que hizo y fíjelo en su lugar con la tuerca de montaje y la arandela.

Paso 5: enchufe de alimentación

EnchufeEnchufeEnchufe

Desmonte el enchufe de alimentación tipo M.

Suelde un cable rojo al terminal de la punta del enchufe y un cable negro al terminal cilíndrico del enchufe.

Pase ambos cables a través de la carcasa negra y atornille la carcasa nuevamente en el enchufe.

Paso 6: amplificar y compensar

Amplificar y compensarAmplificar y compensarAmplificar y compensar

La señal de audio que proviene de la guitarra eléctrica debe amplificarse para que sea de aproximadamente 5 V pico a pico y una compensación para centrarse alrededor de 2,5 V en lugar de 0 V. La señal debe estar entre 0 y 5 V para que sea leída por el pin analógico de Arduino. También debe tener la mayor amplitud posible sin recorte para obtener cálculos de frecuencia más precisos.

Arriba hay un esquema del circuito que necesitará para hacer esto.

Recomiendo construir este circuito en una placa y probarlo con un osciloscopio antes de soldarlo. Su entrada de audio debe ser el cable verde del conector de audio. Conecte el cable negro de la toma a tierra. Conecte su sonda de alcance a la salida de la compensación de CC (donde el circuito está conectado a A0 en el Arduino). Suba el volumen de su guitarra al máximo y conecte su guitarra al conector de audio. Toque cada cuerda y verifique el osciloscopio para asegurarse de que su señal esté centrada alrededor de 2.5V y que la señal esté cerca pero no exceda los 5V pico a pico.

Intente ejecutar esta versión modificada del código de Amanda para la detección de frecuencia de Arduino para probar el cálculo de frecuencia de Arduino. Lo único que he cambiado de su código es que eliminé el LED indicador de recorte y en su lugar imprimí “recorte” en el monitor de serie cada vez que la señal se recortaba.

El monitor en serie debe imprimir la frecuencia de las cuerdas que se reproducen. Las cuerdas de la guitarra deben tener las siguientes frecuencias:
E – 82,4 Hz
A – 110 Hz
D – 146,8 Hz
G – 196 Hz
B – 246,9 Hz
E – 329,6 Hz

Dado que las cuerdas más altas tienen una señal de amplitud mucho más baja que las cuerdas más bajas, puede ser complicado lograr que la detección de frecuencia funcione. El código de Amanda tiene una variable llamada ampThreshold que es la amplitud de señal mínima para que Arduino calcule la frecuencia. Para el afinador de guitarra, el ampThreshold debe ser lo suficientemente alto como para que Arduino calcule la frecuencia de las cuerdas más altas, pero también lo suficientemente bajo como para que no capte demasiado ruido de las cuerdas más bajas. Descubrí que un ampThreshold de 20 funciona. Tienes que rasguear las cuerdas altas un poco más para que Arduino las capte, pero la detección de frecuencia funciona bien. Puede experimentar con otros valores para que funcione para usted. Los valores que van de 10 a 30 funcionan bien. Para obtener más información sobre el algoritmo de Amanda para la detección de frecuencia, consulte su Instructable: Arduino Frequency Detection.

Paso 7: suelde el chip

Soldar el ChipSoldar el Chip

Suelde el TL082 a la placa de circuito impreso tipo cuadrícula.

Paso 8: suelde el amplificador y la compensación

Suelde el amplificador y la compensaciónSuelde el amplificador y la compensaciónSuelde el amplificador y la compensación

Suelde las resistencias del amplificador y un cable para la salida del amplificador.

Suelde los condensadores y resistencias para la compensación de CC.

Suelde los cables a la compensación de CC que se conectará a 5 V, tierra y A0 en el Arduino.

Paso 9: Entrada y potencia de soldadura

Entrada y potencia de soldaduraEntrada y potencia de soldadura

Suelde el cable rojo en el interruptor de encendido / apagado a + VCC (pin 8) en el chip TL082. Suelde el cable negro a tierra.

Suelde el cable negro del otro broche de la batería a -VCC (pin 4) en el chip TL082 y suelde el cable rojo a tierra.

Suelde el cable verde del conector de audio a la entrada positiva del amplificador operacional en el TL082 (pin 3) y el cable negro a tierra.

Suelde el cable rojo del enchufe de alimentación a + VCC (pin 8) y el cable negro a tierra e inserte el enchufe en el Arduino.

Conecte los cables para 5V, tierra y A0 desde el DC Offset al Arduino.

Paso 10: Programa

Cargue el siguiente código en Arduino.

Este código contiene la detección de frecuencia y controla los LED que pronto agregará a su sintonizador.

<pre>/*
 * Arduino Guitar Tuner
 * by Nicole Grimwood
 *
 * For more information please visit:
 * https://www.instructables.com/id/Arduino-Guitar-Tuner/
 *
 * Based upon:
 * Arduino Frequency Detection
 * created October 7, 2012
 * by Amanda Ghassaei
 *
 * This code is in the public domain. 
*/


//data storage variables
byte newData = 0;
byte prevData = 0;
unsigned int time = 0;//keeps time and sends vales to store in timer[] occasionally
int timer[10];//storage for timing of events
int slope[10];//storage for slope of events
unsigned int totalTimer;//used to calculate period
unsigned int period;//storage for period of wave
byte index = 0;//current storage index
float frequency;//storage for frequency calculations
int maxSlope = 0;//used to calculate max slope as trigger point
int newSlope;//storage...

close