Project 7 Keyboard instrument blz 79. terug naar de inleiding
Door het indrukken van een van de 4 knopjes produceert de Buzzer een toon.
Het getal van frequenties van de noten staan in het array noten.
De functie tone() zet die getallen om in blokgolfjes met de frequentie van de noot.
// Het array "noten" in een regel declareren en initieren
// met 4 getallen wat de frequenties zijn van de noten C, D, E en F
int noten[4] = {262, 294, 330, 349};
void setup() {
Serial.begin(9600);
// Code als je het array in setup wil initieren
// noten[4] = 262, 294, 330, 349;
// Pin 8 wordt als argument in tone(); gebruikt.
// Je hoef pin 8 niet als outputpin te initieren.
pinMode(8, OUTPUT);
}
void loop() {
//In "knopWaarde" komt de 10 bit waarde van de spanning over de 10K weerstand
int knopWaarde = analogRead(A0);
Serial.println(knopWaarde);
if (knopWaarde == 1023) {
//als knopWaarde == 1023 wordt de toon in cel "0" van het array via tone(); naar pin 8 gestuurd
tone(8, noten[0]);
} else if (knopWaarde >= 990 && knopWaarde <= 1010) {
//Met knopWaarde [990, 1010] wordt de toon in cel "1" via tone() naar pin 8 gestuurd
tone(8, noten[1]);
} else if (knopWaarde >= 505 && knopWaarde <= 515) {
//Met knopWaarde [505, 515] wordt de toon in cel "2" via tone() naar pin 8 gestuurd
tone(8, noten[2]);
} else if (knopWaarde >= 5 && knopWaarde <= 10) {
//Met knopWaarde [5, 10] wordt de toon in cel "3" via tone() naar pin 8 gestuurd
tone(8, noten[3]);
} else {
//Als knopWaarde buiten bovenstaande ranges valt wordt noTone() uitgevoerd
noTone(8);
}
}