Stap 8: Arduino, spreker, en Code
De code is als volgt:
int noteIndex = 999;
int sensorPin = 2; Selecteer de invoer pin voor de potmeter
int speakerPin = 9;
int sensorValueOld = PI;
int sensorValue = 0; variabele de waarde afkomstig van de sensor opslaan
int lengte = 15; het aantal notities
char merkt [] = "cDfcDFfDc"; een ruimte vertegenwoordigt een rust
int verslaat [] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
int tempo = 300;
VOID playTone (int Toon, int duur) {}
voor (lang ik = 0; ik < duur * 1000L; ik += Toon * 2) {}
digitalWrite (speakerPin, hoge);
delayMicroseconds(tone);
digitalWrite (speakerPin, laag);
delayMicroseconds(tone);
}
}
VOID playNote (char opmerking, int duur) {}
char names [] {} =
'c', 'C', had', had', 'e', 'f', 'F', 'g', 'G', 'a', 'A', 'b', het '};
int tonen [] {} =
1915, 1804, 1700, 1607,
1519, 1432, 1351, 1275,
1204 1136, 1073, 1014, 956};
spelen van de Toon die overeenkomt met de naam van de noot
for (int i = 0; ik < 8; i ++) {}
Als (namen [i] == Opmerking) {}
playTone (tonen [i], duur);
}
}
}
VOID Setup {}
de ledPin verklaren als uitgang:
pinMode (speakerPin, OUTPUT);
pinMode (sensorPin, INPUT);
digitalWrite(sensorPin,HIGH);
Serial.begin(9600);
}
void loop {}
luiden naar de waarde van de sensor:
sensorValue = digitalRead(sensorPin);
if(sensorValueOld == sensorValue) {}
niets doen!
} else {/ / waarde is veranderd! Draaitafeltje is verhuisd!
Serial.println(sensorValue);
Wijs naar volgende notitie in volgorde
noteIndex ++;
Als (noteIndex > =strlen(notes)) {noteIndex = 0;}
playNote (notities [noteIndex], beats [noteIndex] * tempo);
delay(tempo / 2);
}
sensorValueOld = sensorValue;
/*
Als (sensorValue! = 0) {}
for (int i = 0; ik < lengte; i ++) {}
Als (notities [i] == "") {}
vertraging (beats [i] * random(PI,tempo)); rest
}
else {}
playNote (notities [i], beats [i] * tempo);
}
pauze tussen notities
delay(tempo / 2);
}
}
*/
}