Cosa impareremo: 

Mi scuso per il ritardo nel pubblicare questo tutorial, ho cercato di utilizzare Intel Galileo per creare una pianola, purtroppo è stato un floop perché Galileo non è compatibile con la libreria tone().

Con alcune resistenze e un paio di pulsanti, come nel precedente tutorial, con l’ausilio di Tone() creeremo questo progetto! (una frase fatta perché non so cosa scrivere, è una pianola tutto qui.)

Componenti Richiesti:

1 Piezopiezo

2 resistenze da 10Kilo Ohm10kohm

1 resistenza da 1 Mega Ohm1MOhm

1 resistenza da 220 Ohm  resistore

4 pulsanti switch

Programmazione:

Utilizziamo frequenze musicali da una lista visibile su questo sito

 
int notes[] = {262, 294, 330, 349};
//come potete notare, in questo sketch, utilizziamo 4 frequenze
void setup() {
//avviamo la comunicazione seriale con il computer
Serial.begin(9600);
}
 
void loop() {
// crea una variabile locale dove contentere l'input
int keyVal = analogRead(A0);
// inviamo i valori al pc
Serial.println(keyVal);
 
/* d'ora in poi, utilizzeremo la condizione
di verifica, if..else per capire quale nota suonare */
 
/* CONSIGLIO */
 
/* sicuramente capiterà che qualche
tasto non funzioni, tranquillo, non hai sbagliato
la parte elettronica, bensì quella software. Clicca
sul pulsante che non suona e visualizza nel monitor seriale
che valore assume il tasto pigiato e modifica la condizione if
non corretta */
if(keyVal == 1023){
tone(8, notes[0]);
}
else if(keyVal >= 990 && keyVal <= 1010){
tone(8, notes[1]);
}
else if(keyVal >= 505 && keyVal <= 515){
tone(8, notes[2]);
}
else if(keyVal >= 960 && keyVal <= 990){
 
tone(8, notes[3]);
}
else{
// utilizzando "noTone" il piezo non suonerà
noTone(8);
}
}

Schema Elettronico:

tastiera

Dimostrazione:

tastiera