int sensorPin = A3; // input int ledPin = 13; int sensorValue = 0; /// int speakerPin = 9; int length = 15; // the number of notes char notes[] = "ccggaagffeeddc "; // a space represents a rest int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 }; int tempo = 50; void setup() { for (int p = 0 ; p < 8 ; p++) { pinMode(p, OUTPUT); } pinMode(13, OUTPUT); pinMode(9, OUTPUT); } void loop() { sensorValue = analogRead(sensorPin); digitalWrite(ledPin, HIGH); delay(sensorValue); digitalWrite(ledPin, LOW); delay(sensorValue); //9 digitalWrite(1,0); digitalWrite(2,0); digitalWrite(3,1); digitalWrite(4,0); digitalWrite(5,0); digitalWrite(6,0); digitalWrite(7,0); sensorValue= analogRead(sensorPin); delay(sensorValue * 10 ); //8 digitalWrite(1,0); digitalWrite(2,0); digitalWrite(3,0); digitalWrite(4,0); digitalWrite(5,0); digitalWrite(6,0); digitalWrite(7,0); sensorValue = analogRead(sensorPin); delay(sensorValue * 10 ); //7 digitalWrite(1,0); digitalWrite(2,1); digitalWrite(3,1); digitalWrite(4,1); digitalWrite(5,0); digitalWrite(6,0); digitalWrite(7,0); sensorValue = analogRead(sensorPin); delay(sensorValue * 10 ); //6 digitalWrite(1,0); digitalWrite(2,0); digitalWrite(3,0); digitalWrite(4,0); digitalWrite(5,0); digitalWrite(6,0); digitalWrite(7,1); sensorValue = analogRead(sensorPin); delay(sensorValue * 10 ); //5 digitalWrite(1,0); digitalWrite(2,0); digitalWrite(3,1); digitalWrite(4,0); digitalWrite(5,0); digitalWrite(6,0); digitalWrite(7,1); sensorValue = analogRead(sensorPin); delay(sensorValue * 10 ); //4 digitalWrite(1,0); digitalWrite(2,1); digitalWrite(3,1); digitalWrite(4,0); digitalWrite(5,0); digitalWrite(6,1); digitalWrite(7,0); sensorValue = analogRead(sensorPin); delay(sensorValue * 10 ); //3 digitalWrite(1,0); digitalWrite(2,0); digitalWrite(3,1); digitalWrite(4,0); digitalWrite(5,1); digitalWrite(6,0); digitalWrite(7,0); sensorValue = analogRead(sensorPin); delay(sensorValue * 10 ); //2 digitalWrite(1,1); digitalWrite(2,0); digitalWrite(3,0); digitalWrite(4,0); digitalWrite(5,1); digitalWrite(6,0); digitalWrite(7,0); sensorValue = analogRead(sensorPin); delay(sensorValue * 10 ); //1 digitalWrite(1,0); digitalWrite(2,1); digitalWrite(3,1); digitalWrite(4,1); digitalWrite(5,1); digitalWrite(6,1); digitalWrite(7,0); sensorValue = analogRead(sensorPin); delay(sensorValue * 10 ); //0 digitalWrite(1,0); digitalWrite(2,0); digitalWrite(3,0); digitalWrite(4,1); digitalWrite(5,0); digitalWrite(6,0); digitalWrite(7,0); for (int i = 0; i < length; i++) { if (notes[i] == ' ') { sensorValue = analogRead(sensorPin) / 50; delay(beats[i] * tempo * sensorValue); // rest } else { playNote(notes[i], beats[i] * tempo); } delay(tempo / 2); } /* playNote(notes[0], beats[0] * tempo); delay(tempo / 2); */ digitalWrite(13,1); delay(sensorValue*500); digitalWrite(13,0); delay(sensorValue*500); digitalWrite(13,1); delay(sensorValue*500); digitalWrite(13,0); delay(sensorValue*500); digitalWrite(13,1); delay(sensorValue*500); digitalWrite(13,0); delay(sensorValue*500); digitalWrite(13,1); } void playTone(int tone, int duration) { for (long i = 0; i < duration * 1000L; i += tone * 2) { digitalWrite(speakerPin, HIGH); delayMicroseconds(tone); digitalWrite(speakerPin, LOW); delayMicroseconds(tone); } } void playNote(char note, int duration) { char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' }; int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 }; // play the tone corresponding to the note name for (int i = 0; i < 8; i++) { if (names[i] == note) { playTone(tones[i], duration); } } }