GUITAR TUNER

21
ACCORDATORE PER CHITARRA MORENO MATTEO MATRICOLA 722172 MICROCONTROLLORI ANNO ACCADEMICO 2014/2015

Transcript of GUITAR TUNER

Page 1: GUITAR TUNER

ACCORDATORE PER CHITARRA

MORENO MATTEO

MATRICOLA 722172

MICROCONTROLLORI ANNO ACCADEMICO

2014/2015

Page 2: GUITAR TUNER

ACCORDATORE CHITARRA – MORENO MATTEO - MATRICOLA 722172

1

“I chitarristi passano metà della loro vita ad accordare la loro chitarra, e l'altra metà a suonare con la chitarra scordata.”

(FAREED HAQUE)

DESCRIZIONE DEL PROBLEMA

L’ACCORDATURA E’ IL PROCESSO DI REGOLAZIONE DI UNO STRUMENTO MUSICALE AFFINCHE’ SIA PERFETTAMENTE INTONATO RISPETTO AL SISTEMA DI ACCORDATURA STANDARD. GENERALMENTE SI PARLA DI ACCORDATURA IN RIFERIMENTO AGLI STRUMENTI A CORDA, MA PUO’ ESSERE GENERICAMENTE ESTESA AL CONCETTO DI INTONAZIONE DI ALTRI STRUMENTI.L’EVOLUZIONE DELL’ACCORDATORE PER CHITARRA LO HA PORTATO DALLA COSIDDETTA “ACCORDATURA AD ORECCHIO”, DOVE PARTENDO DAL DIAPASON CHE FORNISCE LA NOTA “LA” (QUINTA CORDA A VUOTO) SI ARMONIZZANO TUTTE LE ALTRE CORDE, FINO AD ARRIVARE AGLI ACCORDATORI “A CLIP” DI ULTIMA GENERAZIONE CHE, PERCEPENDO LE VIBRAZIONI PRODOTTE DALLA VIBRAZIONE DELLA CORDA, DEFINISCONO L’ACCORDATURA CORRETTA.

SCOPO DEL PROGETTO

LA PASSIONE PER LA CHITARRA MI PORTA A IDEARE QUESTO PROGETTO E REALIZZARE, ATTRAVERSO ARDUINO, UN ACCORDATORE PER CHITARRA. IN CONCRETO, UN BUZZER FORNIRA’ IN OUTPUT IL SUONO DELLA CORDA DELLA CHITARRA FORNENDO ALL’UTENTE LA GIUSTA FREQUENZA E INTONAZIONE DELLA CORDA. IN QUESTO PROGETTO USERO’ L’ACCORDATURA STANDARD (MIbasso-LA-RE-SOL-SI-MIcantino) E SARA’ L’UTENTE, TRAMITE IMMISSIONE DI UN NUMERO DA 1 A 6, A SCEGLIERE QUALE CORDA ACCORDARE. I NUMERI RAPPRESENTANO LE SEGUENTI CORDE: 1- MIbasso, 2-LA, 3-RE, 4-SOL, 5-SI, 6-Micantino.

Page 3: GUITAR TUNER

ACCORDATORE CHITARRA – MORENO MATTEO - MATRICOLA 722172

2

LISTA DEI COMPONENTI

-ARDUINO (COMPATIBILE)

-BREADBOARD

-BUZZER

-POTENZIOMETRO

Page 4: GUITAR TUNER

ACCORDATORE CHITARRA – MORENO MATTEO - MATRICOLA 722172

3

-RESISTENZE DA 220 OHM +/-5% E 100 OHM +/-5%

-SCHERMO LCD (16x2)

-JUMPER DI COLLEGAMENTO BREADBOARD

- CAVO USB ARDUINO

Page 5: GUITAR TUNER

ACCORDATORE CHITARRA – MORENO MATTEO - MATRICOLA 722172

4

PROCEDIMENTO

IL PROCESSO DI ASSEMBLAMENTO DELL’ACCORDATORE INCOMINCIA POSIZIONANDO IL BUZER SULLA BREADBOARD COLLEGANDOLO NEL SEGUENTE MODO: TRAMITE UN CAVO DI CONNESSIONE SI COLLEGA IL BUZZER AL PIN 6 DELLA SCHEDA DI ARDUINO E POI, IMMEDIATAMENTE SOTTO IL BUZZER, SI UTILIZZA LA RESISTENZA DA 220 OHM COLLEGANDOLA ALLA TERRA, SEGNALATA DALLA RIGA BLU DELLA BREADBOARD.SISTEMATO IL BUZZER SI PASSA AL COLLEGAMENTO DELLO SCHERMO LCD, CERCANDO DI COLLEGARE NEL MODO OPPORTUNO I 16 PIN DI CUI LO SCHERMO DISPONE. ANDANDO IN ORDINE COLLEGHIAMO IL PIN NUMERO 1 DELLO SCHERMO ALLA TERRA DELLA BREADBOARD E IL PIN 2 ALLA TENSIONE, SEGNALATA DALLA LINEA ROSSA SULLA BREADBOARD. IL PIN 4 VA AL PIN DIGITALE DELLA SCHEDA DI ARDUINO NUMERO 12. IL PIN 5 DELLO SCHERMO LCD VIENE COLLEGATO AL PIN 11 DI ARDUINO, IL PIN 6 VA AL PIN 10 DELLA SCHEDA. SUCCESSIVAMENTE SI COLLEGA IL PIN NUMERO 16 DELLO SCHERMO ALLA TERRA MENTRE SUL NUMERO 15 SI POSIZIONA LA RESISTENZA DA 100 OHM. INFINE SI CONCLUDE LA CONNESSIONE DELLO SCHERMO LCD COLLEGANDO IL PIN 14 AL PIN 2 DI ADUINO, IL PIN NUMERO 13 AL PIN 3 E PER ULTIMO IL PIN NUMERO 12 DELLO SCHERMO LCD AL PIN 4 DELLA SCHEDA ARDUINO.INFINE COLLEGHIAMO IL POTENZIOMETRO PER GESTIRE IL CONTRASTO DELLO SCHERMO LCD: SI SALDANO 3 JUMPER AI TRE PIEDINI DEL POTENZIOMETRO E SI COLLEGANO I DUE ESTERNI UNA ALLA TERRA E UNO AL VOLTAGGIO DELLA BREADBOARD, E QUELLO CENTRALE VA COLLEGATO AL PIN 3 DELLO SCHERMO LCD.PRIMO DI PASSARE ALL’UTILIZZO VERO E PROPRIO, BISOGNA COLLEGARE LA SCHEDA ARDUINO ALLA TERRA E ALLA RESISTENZA DELLA BREADBOARD: QUINDI UTILIZZANDO I CAVI DI COLLEGAMENTO, SI UNISCE IL PIN DELLA SCHEDA ARDUINO DOVE TROVIAMO LA SCRITTA 5V ALLA STRISCIA ROSSA DELLA BREADBOARD E IL PIN CON SCRITTO GND (GROUND) ALLA LINEA BLU SEMPRE DELLA BREADBOARD.ORA SIAMO PRONTI PER COLLEGARE LA SCHEDA ARDUINO AL PC, TRAMITE IL CAVO USB IN DOTAZIONE, E UTILIZZARE

Page 6: GUITAR TUNER

ACCORDATORE CHITARRA – MORENO MATTEO - MATRICOLA 722172

5

L’ACCORDATORE.

SCHEMA DEL CIRCUITO

Page 7: GUITAR TUNER

ACCORDATORE CHITARRA – MORENO MATTEO - MATRICOLA 722172

6

Page 8: GUITAR TUNER

ACCORDATORE CHITARRA – MORENO MATTEO - MATRICOLA 722172

7

1)SCHEDA ARDUINO2)SCHERMO LCD 16X23)BUZZER4)BREADBOARD5)RESISTENZA 220 OHM +/-5%6)RESISTENZA 100 OHM +/-5%7)POTENZIOMETRO

SCHEMA ELETTRICO

Page 9: GUITAR TUNER

ACCORDATORE CHITARRA – MORENO MATTEO - MATRICOLA 722172

8

CIRCUITO STAMPATO (PCB)

Page 10: GUITAR TUNER

ACCORDATORE CHITARRA – MORENO MATTEO - MATRICOLA 722172

9

CODICE#include <LiquidCrystal.h> //Questa libreria ci serve per poter utilizzare lo schermo LCD

LiquidCrystal lcd(12,11,10,5,4,3,2); //Definire i pin dello schermo LCD

/*************************************************

* Costanti pubbliche

*************************************************/

//Tutte queste costanti "#define" sono i nomi delle note con i loro toni in termini della loro frequenza (hz)

//Questi valori derivano dal tutorial di Arduino

// http://arduino.cc/en/Tutorial/Tone

#define NOTE_B0 31

Page 11: GUITAR TUNER

ACCORDATORE CHITARRA – MORENO MATTEO - MATRICOLA 722172

10

#define NOTE_C1 33

#define NOTE_CS1 35

#define NOTE_D1 37

#define NOTE_DS1 39

#define NOTE_E1 41

#define NOTE_F1 44

#define NOTE_FS1 46

#define NOTE_G1 49

#define NOTE_GS1 52

#define NOTE_A1 55

#define NOTE_AS1 58

#define NOTE_B1 62

#define NOTE_C2 65

#define NOTE_CS2 69

#define NOTE_D2 73

#define NOTE_DS2 78

#define NOTE_E2 82

#define NOTE_F2 87

#define NOTE_FS2 93

#define NOTE_G2 98

#define NOTE_GS2 104

#define NOTE_A2 110

#define NOTE_AS2 117

#define NOTE_B2 123

#define NOTE_C3 131

#define NOTE_CS3 139

#define NOTE_D3 147

#define NOTE_DS3 156

#define NOTE_E3 165

#define NOTE_F3 175

Page 12: GUITAR TUNER

ACCORDATORE CHITARRA – MORENO MATTEO - MATRICOLA 722172

11

#define NOTE_FS3 185

#define NOTE_G3 196

#define NOTE_GS3 208

#define NOTE_A3 220

#define NOTE_AS3 233

#define NOTE_B3 247

#define NOTE_C4 262

#define NOTE_CS4 277

#define NOTE_D4 294

#define NOTE_DS4 311

#define NOTE_E4 330

#define NOTE_F4 349

#define NOTE_FS4 370

#define NOTE_G4 392

#define NOTE_GS4 415

#define NOTE_A4 440

#define NOTE_AS4 466

#define NOTE_B4 494

#define NOTE_C5 523

#define NOTE_CS5 554

#define NOTE_D5 587

#define NOTE_DS5 622

#define NOTE_E5 659

#define NOTE_F5 698

#define NOTE_FS5 740

#define NOTE_G5 784

#define NOTE_GS5 831

#define NOTE_A5 880

#define NOTE_AS5 932

#define NOTE_B5 988

Page 13: GUITAR TUNER

ACCORDATORE CHITARRA – MORENO MATTEO - MATRICOLA 722172

12

#define NOTE_C6 1047

#define NOTE_CS6 1109

#define NOTE_D6 1175

#define NOTE_DS6 1245

#define NOTE_E6 1319

#define NOTE_F6 1397

#define NOTE_FS6 1480

#define NOTE_G6 1568

#define NOTE_GS6 1661

#define NOTE_A6 1760

#define NOTE_AS6 1865

#define NOTE_B6 1976

#define NOTE_C7 2093

#define NOTE_CS7 2217

#define NOTE_D7 2349

#define NOTE_DS7 2489

#define NOTE_E7 2637

#define NOTE_F7 2794

#define NOTE_FS7 2960

#define NOTE_G7 3136

#define NOTE_GS7 3322

#define NOTE_A7 3520

#define NOTE_AS7 3729

#define NOTE_B7 3951

#define NOTE_C8 4186

#define NOTE_CS8 4435

#define NOTE_D8 4699

#define NOTE_DS8 4978

//Questo è l'array dove sono raggruppati i toni delle note

const int notes[]={NOTE_E2, NOTE_A2, NOTE_D3, NOTE_G3, NOTE_B3, NOTE_E4};

Page 14: GUITAR TUNER

ACCORDATORE CHITARRA – MORENO MATTEO - MATRICOLA 722172

13

//Questi sono i toni delle 6 corde della chitarra

#define piezoPin 6

//Questo è il pin di output per il buzzer

void setup()

{

pinMode(piezoPin, OUTPUT);

Serial.begin(9600);

lcd.begin(2,20);

lcd.setCursor(0,0);

lcd.print("GUITAR TUNER");

//Settare il pin in modalità output e pulire LCD e aprire il monitor seriale

}

void loop()

{

float answer=0;

if (Serial.available())

{

answer=Serial.parseFloat();

if (answer==1)

{

lcd.clear();

while (1)

{

tone(piezoPin,notes[0]);

lcd.print("MI basso");

lcd.setCursor(0,1);

lcd.print("Corda 1");

delay(1000);

lcd.clear();

if(Serial.available())

Page 15: GUITAR TUNER

ACCORDATORE CHITARRA – MORENO MATTEO - MATRICOLA 722172

14

{

float answer1=0;

answer1=Serial.parseFloat();

if (answer1 == -1)

{

lcd.clear();

noTone(piezoPin);

break;

}

}

}

}

if (answer==2)

{

lcd.clear();

while (1)

{

tone(piezoPin,notes[1]);

lcd.print("LA");

lcd.setCursor(0,1);

lcd.print("Corda 2");

delay(1000);

lcd.clear();

if(Serial.available())

{

float answer1=0;

answer1=Serial.parseFloat();

if (answer1 == -1)

{

lcd.clear();

Page 16: GUITAR TUNER

ACCORDATORE CHITARRA – MORENO MATTEO - MATRICOLA 722172

15

noTone(piezoPin);

break;

}

}

}

}

if (answer==3)

{

lcd.clear();

while (1)

{

tone(piezoPin,notes[2]);

lcd.print("RE");

lcd.setCursor(0,1);

lcd.print("Corda 3");

delay(1000);

lcd.clear();

if(Serial.available())

{

float answer1=0;

answer1=Serial.parseFloat();

if (answer1 == -1)

{

lcd.clear();

noTone(piezoPin);

break;

}

}

}

}

Page 17: GUITAR TUNER

ACCORDATORE CHITARRA – MORENO MATTEO - MATRICOLA 722172

16

if (answer==4)

{

lcd.clear();

while (1)

{

tone(piezoPin,notes[3]);

lcd.print("SOL");

lcd.setCursor(0,1);

lcd.print("Corda 4");

delay(1000);

lcd.clear();

if(Serial.available())

{

float answer1=0;

answer1=Serial.parseFloat();

if (answer1 == -1)

{

lcd.clear();

noTone(piezoPin);

break;

}

}

}

}

if (answer==5)

{

lcd.clear();

while (1)

{

tone(piezoPin,notes[4]);

Page 18: GUITAR TUNER

ACCORDATORE CHITARRA – MORENO MATTEO - MATRICOLA 722172

17

lcd.print("SI");

lcd.setCursor(0,1);

lcd.print("Corda 5");

delay(1000);

lcd.clear();

if(Serial.available())

{

float answer1=0;

answer1=Serial.parseFloat();

if (answer1 == -1)

{

lcd.clear();

noTone(piezoPin);

break;

}

}

}

}

if (answer==6)

{

lcd.clear();

while (1)

{

tone(piezoPin,notes[5]);

lcd.print("MI cantino");

lcd.setCursor(0,1);

lcd.print("Corda 6");

delay(1000);

lcd.clear();

if(Serial.available())

Page 19: GUITAR TUNER

ACCORDATORE CHITARRA – MORENO MATTEO - MATRICOLA 722172

18

{

float answer1=0;

answer1=Serial.parseFloat();

if (answer1 == -1)

{

lcd.clear();

noTone(piezoPin);

break;

}

}

}

}

else

{

}

}

}