int piezoPin = 52; int btnc = 22; int btncs = 23; int btnd = 44; int btnds = 27; int btne = 28; int btnf = 31; int btnfs = 32; int btng = 35; int btngs = 36; int btna = 39; int btnas = 40; int btnb = 43; double c4 = 261.626; double c4s = 277.183; double d4 = 293.665; double d4s = 311.127; double e4 = 329.628; double f4 = 349.228; double f4s = 369.994; double g4 = 391.995; double g4s = 415.305; double a4 = 440.00; double a4s = 466.164; double b4 = 493.883; int len = 25; void setup() { pinMode(piezoPin, OUTPUT); pinMode(btnc, INPUT); pinMode(btncs, INPUT); pinMode(btnd, INPUT); pinMode(btnds, INPUT); pinMode(btne, INPUT); pinMode(btnf, INPUT); pinMode(btnfs, INPUT); pinMode(btng, INPUT); pinMode(btngs, INPUT); pinMode(btna, INPUT); pinMode(btnas, INPUT); pinMode(btnb, INPUT); } void loop() { if (digitalRead(btnc) == HIGH) { playFreq(c4,len); } if (digitalRead(btncs) == HIGH) { playFreq(c4s,len); } if (digitalRead(btnd) == HIGH) { playFreq(d4,len); } if (digitalRead(btnds) == HIGH) { playFreq(d4s,len); } if (digitalRead(btne) == HIGH) { playFreq(e4,len); } if (digitalRead(btnf) == HIGH) { playFreq(f4,len); } if (digitalRead(btnfs) == HIGH) { playFreq(f4s,len); } if (digitalRead(btng) == HIGH) { playFreq(g4,len); } if (digitalRead(btngs) == HIGH) { playFreq(g4s,len); } if (digitalRead(btna) == HIGH) { playFreq(a4,len); } if (digitalRead(btnas) == HIGH) { playFreq(a4s,len); } if (digitalRead(btnb) == HIGH) { playFreq(b4,len); } } void playFreq(double freqHz, int duration) { int periodMicro = int((1/freqHz)*1000000); int halfPeriod = periodMicro/2; int startTime = millis(); while ((millis() - startTime) < duration) { digitalWrite(piezoPin, HIGH); delayMicroseconds(halfPeriod); digitalWrite(piezoPin, LOW); delayMicroseconds(halfPeriod); } }