Étape 8: Arduino, conférencier et Code
Le code est comme suit :
int noteIndex = 999 ;
int sensorPin = 2 ; Sélectionnez l’entrée pin pour le potentiomètre
int speakerPin = 9 ;
int sensorValueOld = PI ;
int sensorValue = 0 ; variable pour stocker la valeur provenant de la sonde
int longueur = 15 ; le nombre de billets
note de char [] = "cDfcDFfDc" ; un espace représente un repos
int bat [] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1} ;
int tempo = 300 ;
playTone Sub (ton int, int duration) {}
pour (long j’ai = 0; i < durée * 1000L; i += ton * 2) {
digitalWrite (speakerPin, HIGH) ;
delayMicroseconds(tone) ;
digitalWrite (speakerPin, basse) ;
delayMicroseconds(tone) ;
}
}
void playNote (char Remarque, int duration) {}
char nom [] = {}
"c", "C", avait ', a ', 'e', 'f', 'F', 'g', 'G', 'a', 'A', 'b', de '} ;
les tons int [] = {}
1915, 1804, 1700, 1607,
1519, 1432, 1351, 1275,
1204, 1136, 1073, 1014, 956} ;
Jouez le ton correspondant au nom de la note
pour (int i = 0; i < 8; i ++) {}
Si (noms [i] == note) {}
playTone (tons [i], durée) ;
}
}
}
void setup() {}
déclarer la ledPin comme une sortie :
pinMode (speakerPin, sortie) ;
pinMode (sensorPin, entrée) ;
digitalWrite(sensorPin,HIGH) ;
Serial.Begin(9600) ;
}
void loop() {}
lire la valeur de la sonde :
sensorValue = digitalRead(sensorPin) ;
if(sensorValueOld == sensorValue) {}
ne rien faire !
} else {/ / valeur a changé ! Lazy Susan a déménagé !
Serial.println(sensorValue) ;
pointez sur la note suivante dans la séquence
noteIndex ++ ;
Si (noteIndex > =strlen(notes)) {noteIndex = 0;}
playNote (bat de notes [noteIndex], [noteIndex] * tempo) ;
Delay(tempo / 2) ;
}
sensorValueOld = sensorValue ;
/*
Si (sensorValue! = 0) {}
pour (int i = 0; i < longueur; i ++) {}
Si (les notes [i] == ' ') {}
retard (battements [i] * random(PI,tempo)) ; reste
}
else {}
playNote (notes [i], beats [i] * tempo) ;
}
faire une pause entre les notes
Delay(tempo / 2) ;
}
}
*/
}