Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define NOTE_B0 31
- #define NOTE_C1 33
- #define NOTE_CS1 35
- #define NOTE_D1 37
- #define NOTE_DS1 39
- #define NOTE_E1 41
- #define NOTE_F1 44
- #define NOTE_FS1 46
- #define NOTE_G1 49
- #define NOTE_GS1 52
- #define NOTE_A1 55
- #define NOTE_AS1 58
- #define NOTE_B1 62
- #define NOTE_C2 65
- #define NOTE_CS2 69
- #define NOTE_D2 73
- #define NOTE_DS2 78
- #define NOTE_E2 82
- #define NOTE_F2 87
- #define NOTE_FS2 93
- #define NOTE_G2 98
- #define NOTE_GS2 104
- #define NOTE_A2 110
- #define NOTE_AS2 117
- #define NOTE_B2 123
- #define NOTE_C3 131
- #define NOTE_CS3 139
- #define NOTE_D3 147
- #define NOTE_DS3 156
- #define NOTE_E3 165
- #define NOTE_F3 175
- #define NOTE_FS3 185
- #define NOTE_G3 196
- #define NOTE_GS3 208
- #define NOTE_A3 220
- #define NOTE_AS3 233
- #define NOTE_B3 247
- #define NOTE_C4 262
- #define NOTE_CS4 277
- #define NOTE_D4 294
- #define NOTE_DS4 311
- #define NOTE_E4 330
- #define NOTE_F4 349
- #define NOTE_FS4 370
- #define NOTE_G4 392
- #define NOTE_GS4 415
- #define NOTE_A4 440
- #define NOTE_AS4 466
- #define NOTE_B4 494
- #define NOTE_C5 523
- #define NOTE_CS5 554
- #define NOTE_D5 587
- #define NOTE_DS5 622
- #define NOTE_E5 659
- #define NOTE_F5 698
- #define NOTE_FS5 740
- #define NOTE_G5 784
- #define NOTE_GS5 831
- #define NOTE_A5 880
- #define NOTE_AS5 932
- #define NOTE_B5 988
- #define NOTE_C6 1047
- #define NOTE_CS6 1109
- #define NOTE_D6 1175
- #define NOTE_DS6 1245
- #define NOTE_E6 1319
- #define NOTE_F6 1397
- #define NOTE_FS6 1480
- #define NOTE_G6 1568
- #define NOTE_GS6 1661
- #define NOTE_A6 1760
- #define NOTE_AS6 1865
- #define NOTE_B6 1976
- #define NOTE_C7 2093
- #define NOTE_CS7 2217
- #define NOTE_D7 2349
- #define NOTE_DS7 2489
- #define NOTE_E7 2637
- #define NOTE_F7 2794
- #define NOTE_FS7 2960
- #define NOTE_G7 3136
- #define NOTE_GS7 3322
- #define NOTE_A7 3520
- #define NOTE_AS7 3729
- #define NOTE_B7 3951
- #define NOTE_C8 4186
- #define NOTE_CS8 4435
- #define NOTE_D8 4699
- #define NOTE_DS8 4978
- int sensorPin = 0;
- int speakerPin = 9;
- int ledPin = 13;
- int rPin = 6;
- int gPin = 5;
- int bPin = 3;
- void setup()
- {
- pinMode(rPin, OUTPUT);
- pinMode(gPin, OUTPUT);
- pinMode(bPin, OUTPUT);
- pinMode(speakerPin, OUTPUT);
- pinMode(ledPin, OUTPUT);
- }
- void loop()
- {
- showSpectrum();
- song();
- }
- void song() //here is where all the notes for the song are played.
- {
- beep(speakerPin, NOTE_D5, 100); // beep( -PIN OF SPEAKER-, -THE NOTE WANTING TO BE PLAYED-, -DURATION OF THE NOTE IN MILISECONDS- )
- delay(80);
- beep(speakerPin, NOTE_F5, 100);
- delay(80);
- beep(speakerPin, NOTE_D6, 500);
- delay(250);
- beep(speakerPin, NOTE_D5, 100);
- delay(80);
- beep(speakerPin, NOTE_F5, 100);
- delay(80);
- beep(speakerPin, NOTE_D6, 500);
- delay(250);
- beep(speakerPin, NOTE_E6, 500);
- delay(100);
- beep(speakerPin, NOTE_F6, 100);
- delay(100);
- beep(speakerPin, NOTE_E6, 100);
- delay(80);
- beep(speakerPin, NOTE_F6, 100);
- delay(80);
- beep(speakerPin, NOTE_E6, 100);
- delay(80);
- beep(speakerPin, NOTE_C6, 100);
- delay(80);
- beep(speakerPin, NOTE_A5, 300);
- delay(300);
- beep(speakerPin, NOTE_A5, 200);
- delay(100);
- beep(speakerPin, NOTE_D5, 200);
- delay(100);
- beep(speakerPin, NOTE_F5, 100);
- delay(100);
- beep(speakerPin, NOTE_G5, 100);
- delay(100);
- beep(speakerPin, NOTE_A5, 300);
- delay(500);
- beep(speakerPin, NOTE_A5, 200);
- delay(100);
- beep(speakerPin, NOTE_D5, 200);
- delay(100);
- beep(speakerPin, NOTE_F5, 100);
- delay(100);
- beep(speakerPin, NOTE_G5, 100);
- delay(100);
- beep(speakerPin, NOTE_E5, 300);
- delay(500);
- beep(speakerPin, NOTE_D5, 100);
- delay(80);
- beep(speakerPin, NOTE_F5, 100);
- delay(80);
- beep(speakerPin, NOTE_D6, 400);
- delay(250);
- beep(speakerPin, NOTE_D5, 100);
- delay(80);
- beep(speakerPin, NOTE_F5, 100);
- delay(80);
- beep(speakerPin, NOTE_D6, 400);
- delay(250);
- beep(speakerPin, NOTE_E6, 200);
- delay(200);
- beep(speakerPin, NOTE_F6, 100);
- delay(100);
- beep(speakerPin, NOTE_E6, 100);
- delay(80);
- beep(speakerPin, NOTE_F6, 100);
- delay(80);
- beep(speakerPin, NOTE_E6, 100);
- delay(80);
- beep(speakerPin, NOTE_C6, 100);
- delay(80);
- beep(speakerPin, NOTE_A5, 300);
- delay(300);
- beep(speakerPin, NOTE_A5, 200);
- delay(100);
- beep(speakerPin, NOTE_D5, 200);
- delay(100);
- beep(speakerPin, NOTE_F5, 100);
- delay(100);
- beep(speakerPin, NOTE_G5, 100);
- delay(100);
- beep(speakerPin, NOTE_A5, 500);
- delay(100);
- beep(speakerPin, NOTE_A5, 200);
- delay(100);
- beep(speakerPin, NOTE_D5, 500);
- delay(2000);
- }
- void beep (unsigned char speakerPin, int frequencyInHertz, long timeInMilliseconds) //code for working out the rate at which each note plays and the frequency.
- {
- digitalWrite(ledPin, HIGH);
- int x;
- long delayAmount = (long)(1000000/frequencyInHertz);
- long loopTime = (long)((timeInMilliseconds*1000)/(delayAmount*2));
- for (x=0;x<loopTime;x++)
- {
- digitalWrite(speakerPin,HIGH);
- delayMicroseconds(delayAmount);
- digitalWrite(speakerPin,LOW);
- delayMicroseconds(delayAmount);
- }
- digitalWrite(ledPin, LOW);
- delay(20);
- }
- void showSpectrum()
- {
- int x;
- // Now we'll use a for() loop to make x count from 0 to 767
- // (Note that there's no semicolon after this line!
- // That's because the for() loop will repeat the next
- // "statement", which in this case is everything within
- // the following brackets {} )
- for (x = 0; x < 768; x++)
- // Each time we loop (with a new value of x), do the following:
- {
- showRGB(x); // Call RGBspectrum() with our new x
- delay(10); // Delay for 10 ms (1/100th of a second)
- }
- }
- void showRGB(int color)
- {
- int redIntensity;
- int greenIntensity;
- int blueIntensity;
- // Here we'll use an "if / else" statement to determine which
- // of the three (R,G,B) zones x falls into. Each of these zones
- // spans 255 because analogWrite() wants a number from 0 to 255.
- // In each of these zones, we'll calculate the brightness
- // for each of the red, green, and blue LEDs within the RGB LED.
- if (color <= 255) // zone 1
- {
- redIntensity = 255 - color; // red goes from on to off
- greenIntensity = color; // green goes from off to on
- blueIntensity = 0; // blue is always off
- }
- else if (color <= 511) // zone 2
- {
- redIntensity = 0; // red is always off
- greenIntensity = 255 - (color - 256); // green on to off
- blueIntensity = (color - 256); // blue off to on
- }
- else // color >= 512 // zone 3
- {
- redIntensity = (color - 512); // red off to on
- greenIntensity = 0; // green is always off
- blueIntensity = 255 - (color - 512); // blue on to off
- }
- // Now that the brightness values have been set, command the LED
- // to those values
- analogWrite(rPin, redIntensity);
- analogWrite(bPin, blueIntensity);
- analogWrite(gPin, greenIntensity);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement