Sei sulla pagina 1di 26

PROYECTO

ARDUINO

AFINADOR DE
GUITARRA

Jose Luis Ruiz Lpez


I.E.S Universidad Laboral
1
INDICE

1. Objetivos..3
2. Justificacin...3
3. Ejecucin del proyecto....... 3
a. Material.. 3
b. Montaje4
4. Plan de Trabajo ..4
a. Diseo4
b. Software..5
5. Presupuesto5
6. Funcionamiento .6
7. Mejoras....6
8. Esquemas.7
9. Programa..10
10.Bibliografa.... 26

2
OBJETIVO DEL PROYECTO

El objetivo del proyecto es la realizacin de un afinador para guitarra. Para ello


disearemos un detector de frecuencia. En una pantalla se mostrara la nota que se toca y
mediante flechas indicara si la nota es la correcta o si est por encima o por debajo de la
frecuencia correspondiente.

JUSTIFICACIN
Tener un afinador en casa para en cualquier momento poder afinar la guitarra,
evitando la necesidad de llevarla a un profesional, consiguiendo un ahorro econmico y de
tiempo de esperas.

EJECUCION DEL PROYECTO

MATERIAL

Resistencia 470 k

2 Resistencias 2K3

Condensador Electroltico 10F

2 Condensadores de Tantalio 0.1F

Transistor NPN 2N3904

Circuito Integrado 7414

Conector Jack Hembra 6,3mm Mono

Interruptor

Arduino Uno

Placa Conexiones

3
MONTAJE

PLAN DE TRABAJO
DISEO

Lo primero que realice fue la manera de representar en la pantalla LCD el sistema de


afinacin. Para ello busque como crear caracteres en el LCD, para ello es necesario poner estas
lneas en el programa:
uint8_t flecha_der_vacio *8+ = ,

B11000, B10100, B10010, B10001, B10001, B10010, B10100, B11000 -;

lcd.createChar(1, flecha_der_vacio);

4
Lo siguiente fue buscar informacin de cmo poder detectar la frecuencia de entrada
con arduino, es necesario la librera FreqMeasure, en el siguiente enlace muestra el circuito
necesario y el programa: http://www.pjrc.com/teensy/td_libs_FreqMeasure.html

SOFTWARE

La parte del software que sirve para detectar la frecuencia y asignarla es un bucle, y
dependiendo del valor entra en otro if donde se imprime en la pantalla mediante flechas si la
cuerda de la guitarra esta afinada. Las frecuencias de las notas son las siguientes:

CUERDAS FRECUENCIA( Hz )

1 Cuerda ( Mi ) 329,63 Hz

2 Cuerda (Si) 246,94 Hz

3 Cuerda (Sol) 196,00 Hz

4 Cuerda (Re) 146,83 Hz

5 Cuerda ( La) 110,00 Hz

6 Cuerda ( Mi) 82,41 Hz

PRESUPUESTO
COMPONENTE UNIDAD PRECIO

Resistencia 470 k 1 0.11

Resistencia 3k3 2 0.22

Electroltico 10F 1 0.04

C. Tantalio 0.1 F 2 0.08

Transistor NPN 2N3904 1 0.24

C.I 7414 1 1.33

Conector Jack Hembra


1 0.68
6,3mm Mono

Interruptor 1 1.09

Arduino Uno 1 26.56

Placa Conexiones 1 6.25

Diodo Led Rojo 5mm 1 0.67

Pantalla LCD I2C 1 17.26

TOTAL 54.89

5
FUNCIONAMIENTO
El afinador funciona de la siguiente manera:

1 Se introduce el extremo del cable en la guitarra y el otro en el afinador.

2 Se toca las cuerdas una a una, preferiblemente desde la 6 cuerda a la 1 ( desde la


ms gruesa a las ms fina).

3 Si en la pantalla aparece una flecha apuntando hacia la derecha significa que la


cuerda est demasiado floja, y se girara el clavijero de dicha cuerda en sentido anti horario
para tensarla hasta que se ilumine el rectngulo que indica que esta afinada (hay que tener en
cuenta la nota que se est afinando). Si en la pantalla aparece una flecha apuntando hacia la
izquierda significa que la cuerda est demasiado tensa y hay que girar el clavijero en el sentido
de las agujas del reloj hasta que se ilumine el rectngulo del centro de la pantalla.

Relacin Notas:

- 6E 6 Cuerda (Nota Mi)


- 5A 5 Cuerda (Nota La)
- 4D 4 Cuerda (Nota Re)
- 3G 3 Cuerda (Nota Sol)
- 2B 2 Cuerda (Nota Si)
- 1E 1 Cuerda (Nota Mi)

MEJORAS
El proyecto se podra ampliar y mejorar:

- Aadiendo un pequeo altavoz para poder reproducir el sonido para poder afinar de
odo.
- Aadiendo un men para poder elegir la afinacin de las cuerdas , actualmente solo se
puede afinar de la manera Estndar(EADGBE). Que se corresponde a 440Hz que es la
nota LA en el 5 traste de la primera cuerda.
- Aadiendo un micrfono para poder afinar si la necesidad de conectar la guitarra con
cable.

6
ESQUEMAS

Esquema Circuito Afinador

Placa PCB Afinador.

7
Esquema Arduino

8
Placa Arduino

9
PROGRAMA
/*

AFINADOR DE GUITARRA

*/

#include <FreqMeasure.h>

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);

/*

Aqui se crean los caracteresque se usan en la pantalla

*/

uint8_t flecha_der_vacio *8+ = ,

B11000, B10100, B10010, B10001, B10001, B10010, B10100, B11000 -;

uint8_t flecha_der_lleno *8+ = ,

B11000, B11100, B11110, B11111, B11111, B11110, B11100, B11000 -;

uint8_t flecha_izq_vacio *8+ = ,

B00011, B00101, B01001, B10001, B10001, B01001, B00101, B00011 -;

uint8_t flecha_izq_lleno *8+ = ,

B00011, B00111, B01111, B11111, B11111, B01111, B00111, B00011 -;

uint8_t cuadrado_vacio *8+ = ,

B11111, B10001, B10001, B10001, B10001, B10001, B10001, B11111 -;

uint8_t cuadrado_lleno *8+ = ,

B11111, B11111, B11111, B11111, B11111, B11111, B11111, B11111 -;

/*

Frecuencia de las cuerdas de la guitarra (Traste 0)

1ra (E): 329,63 Hz

2da (B): 246,94 Hz

3ra (G): 196,00 Hz

4ta (D): 146,83 Hz

10
5ta (A): 110,00 Hz

6ta (E): 82,41 Hz

*/

void setup()

Serial.begin(9600);

FreqMeasure.begin();

lcd.init();

lcd.backlight();

/*

Aqui se definen los carateres para poder imprimirlos en la pantalla

*/

lcd.createChar(1, flecha_der_vacio);

lcd.createChar(2, flecha_izq_vacio);

lcd.createChar(3, flecha_der_lleno);

lcd.createChar(4, flecha_izq_lleno);

lcd.createChar(5, cuadrado_vacio);

lcd.createChar(6, cuadrado_lleno);

lcd.home();

lcd.setCursor(4,0);

lcd.print("Afinador");

lcd.setCursor(1,1);

lcd.print("Jose Luis Ruiz");

delay(2500);

lcd.clear();

lcd.setCursor(0,0);

lcd.print("Nota = ");

inicio();

11
double sum=0;

int count=0;

double frequency ;

void loop(),

if (FreqMeasure.available()) ,

sum = sum + FreqMeasure.read();

count = count + 1;

if (count > 30) ,

double frequency = F_CPU / (sum / count);

//Serial.println(frequency);

afinador(frequency);

sum = 0;

count = 0;

void afinador(double frequency),

Serial.println(frequency);

if ((frequency >=324) && (frequency <=343))

inicio();

lcd.setCursor(0,0);

lcd.print("Nota = ");

lcd.print("1E");

if ((frequency >=324) && (frequency <=325))

12
primera_flecha();

if ((frequency >325) && (frequency <=326))

segunda_flecha();

if ((frequency >327) && (frequency <=328))

tercera_flecha();

if ((frequency >328) && (frequency <=329))

cuarta_flecha();

if ((frequency >329) && (frequency <=329))

centro();

if ((frequency >329) && (frequency <=340))

quinta_flecha();

if ((frequency >340) && (frequency <=341))

sexta_flecha();

if ((frequency >341) && (frequency <=342))

septima_flecha();

if ((frequency >342) && (frequency <=343))

13
,

octava_flecha();

if ((frequency >242) && (frequency <=251))

inicio();

lcd.setCursor(0,0);

lcd.print("Nota = ");

lcd.print("2B");

if ((frequency >=242) && (frequency <=243))

primera_flecha();

if ((frequency >243) && (frequency <=244))

segunda_flecha();

if ((frequency >244) && (frequency <=245))

tercera_flecha();

if ((frequency >245) && (frequency <=246))

cuarta_flecha();

if ((frequency >246) && (frequency <=247))

centro();

14
-

if ((frequency >247) && (frequency <=248))

quinta_flecha();

if ((frequency >248) && (frequency <=249))

sexta_flecha();

if ((frequency >249) && (frequency <=250))

septima_flecha();

if ((frequency >250) && (frequency <=251))

octava_flecha();

if ((frequency >191) && (frequency <=200))

inicio();

lcd.setCursor(0,0);

lcd.print("Nota = ");

lcd.print("3G");

if ((frequency >=191) && (frequency <=192))

primera_flecha();

if ((frequency >192) && (frequency <=193))

15
segunda_flecha();

if ((frequency >193) && (frequency <=194))

tercera_flecha();

if ((frequency >194) && (frequency <=195))

cuarta_flecha();

if ((frequency >195) && (frequency <=196))

centro();

if ((frequency >196) && (frequency <=197))

quinta_flecha();

if ((frequency >197) && (frequency<=198))

sexta_flecha();

if ((frequency >198) && (frequency <=199))

septima_flecha();

if ((frequency >199) && (frequency <=200))

octava_flecha();

16
if ((frequency >142) && (frequency <=151))

inicio();

lcd.setCursor(0,0);

lcd.print("Nota = ");

lcd.print("4D");

if ((frequency >=142) && (frequency <=143))

primera_flecha();

if ((frequency >143) && (frequency <=144))

segunda_flecha();

if ((frequency >144) && (frequency <=145))

tercera_flecha();

if ((frequency >145) && (frequency <=146))

cuarta_flecha();

if ((frequency >146) && (frequency <=147))

centro();

if ((frequency >147) && (frequency <=148))

quinta_flecha();

17
if ((frequency >148) && (frequency <=149))

sexta_flecha();

if ((frequency >149) && (frequency <=150))

septima_flecha();

if ((frequency >150) && (frequency <=151))

octava_flecha();

if ((frequency >105) && (frequency <=114))

inicio();

lcd.setCursor(0,0);

lcd.print("Nota = ");

lcd.print("5A");

if ((frequency >=105) && (frequency <=106))

primera_flecha();

if ((frequency >106) && (frequency <=107))

segunda_flecha();

if ((frequency >107) && (frequency <=108))

tercera_flecha();

18
if ((frequency >108) && (frequency <=109))

cuarta_flecha();

if ((frequency >109) && (frequency <=110))

centro();

if ((frequency >110) && (frequency <=111))

quinta_flecha();

if ((frequency >111) && (frequency <=112))

sexta_flecha();

if ((frequency >112) && (frequency <=113))

septima_flecha();

if ((frequency >113) && (frequency <=114))

octava_flecha();

if ((frequency >78) && (frequency <=86))

inicio();

lcd.setCursor(0,0);

lcd.print("Nota = ");

19
lcd.print("6E");

if ((frequency >=78) && (frequency <=79))

primera_flecha();

if ((frequency >79) && (frequency <=80))

segunda_flecha();

if ((frequency >80) && (frequency <=81))

tercera_flecha();

if ((frequency >81) && (frequency <=82))

cuarta_flecha();

if ((frequency >82) && (frequency <=82))

centro();

if ((frequency >82) && (frequency <=83))

quinta_flecha();

if ((frequency >83) && (frequency <=84))

sexta_flecha();

if ((frequency >84) && (frequency <=85))

20
septima_flecha();

if ((frequency >85) && (frequency <=86))

octava_flecha();

void primera_flecha (),

lcd.setCursor(4, 1);

lcd.write(3);

lcd.write(1);

lcd.write(1);

lcd.write(1);

lcd.write(5);

lcd.setCursor(9,1);

lcd.write(2);

lcd.write(2);

lcd.write(2);

lcd.write(2);

void segunda_flecha(),

lcd.setCursor(4, 1);

lcd.write(1);

lcd.write(3);

lcd.write(1);

21
lcd.write(1);

lcd.write(5);

lcd.setCursor(9,1);

lcd.write(2);

lcd.write(2);

lcd.write(2);

lcd.write(2);

void tercera_flecha(),

lcd.setCursor(4, 1);

lcd.write(1);

lcd.write(1);

lcd.write(3);

lcd.write(1);

lcd.write(5);

lcd.setCursor(9,1);

lcd.write(2);

lcd.write(2);

lcd.write(2);

lcd.write(2);

void cuarta_flecha(),

lcd.setCursor(4, 1);

lcd.write(1);

lcd.write(1);

lcd.write(1);

22
lcd.write(3);

lcd.write(5);

lcd.setCursor(9,1);

lcd.write(2);

lcd.write(2);

lcd.write(2);

lcd.write(2);

void centro(),

lcd.setCursor(4, 1);

lcd.write(1);

lcd.write(1);

lcd.write(1);

lcd.write(1);

lcd.write(6);

lcd.setCursor(9,1);

lcd.write(2);

lcd.write(2);

lcd.write(2);

lcd.write(2);

void quinta_flecha(),

lcd.setCursor(4, 1);

lcd.write(1);

lcd.write(1);

lcd.write(1);

lcd.write(1);

23
lcd.write(5);

lcd.setCursor(9,1);

lcd.write(4);

lcd.write(2);

lcd.write(2);

lcd.write(2);

void sexta_flecha(),

lcd.setCursor(4, 1);

lcd.write(1);

lcd.write(1);

lcd.write(1);

lcd.write(1);

lcd.write(5);

lcd.setCursor(9,1);

lcd.write(2);

lcd.write(4);

lcd.write(2);

lcd.write(2);

void septima_flecha(),

lcd.setCursor(4, 1);

lcd.write(1);

lcd.write(1);

lcd.write(1);

lcd.write(1);

lcd.write(5);

24
lcd.setCursor(9,1);

lcd.write(2);

lcd.write(2);

lcd.write(4);

lcd.write(2);

void octava_flecha(),

lcd.setCursor(4, 1);

lcd.write(1);

lcd.write(1);

lcd.write(1);

lcd.write(1);

lcd.write(5);

lcd.setCursor(9,1);

lcd.write(2);

lcd.write(2);

lcd.write(2);

lcd.write(4);

void inicio(),

lcd.setCursor(4, 1);

lcd.write(1);

lcd.write(1);

lcd.write(1);

lcd.write(1);

lcd.write(5);

lcd.setCursor(9,1);

lcd.write(2);

25
lcd.write(2);

lcd.write(2);

lcd.write(2);

BIBLIOGRAFIA
La informacin fue sacada de diferentes pginas de internet:

- http://www.pjrc.com/teensy/td_libs_FreqMeasure.html
- http://www.arduino.cc
- http://arduino.cc/forum/

26

Potrebbero piacerti anche