View difference between Paste ID: R3CQLYKa and Lh1Y2btL
SHOW: | | - or go back to the newest paste.
1
#define NOTE_B0  31
2
#define NOTE_C1  33
3
#define NOTE_CS1 35
4
#define NOTE_D1  37
5
#define NOTE_DS1 39
6
#define NOTE_E1  41
7
#define NOTE_F1  44
8
#define NOTE_FS1 46
9
#define NOTE_G1  49
10
#define NOTE_GS1 52
11
#define NOTE_A1  55
12
#define NOTE_AS1 58
13
#define NOTE_B1  62
14
#define NOTE_C2  65
15
#define NOTE_CS2 69
16
#define NOTE_D2  73
17
#define NOTE_DS2 78
18
#define NOTE_E2  82
19
#define NOTE_F2  87
20
#define NOTE_FS2 93
21
#define NOTE_G2  98
22
#define NOTE_GS2 104
23
#define NOTE_A2  110
24
#define NOTE_AS2 117
25
#define NOTE_B2  123
26
#define NOTE_C3  131
27
#define NOTE_CS3 139
28
#define NOTE_D3  147
29
#define NOTE_DS3 156
30
#define NOTE_E3  165
31
#define NOTE_F3  175
32
#define NOTE_FS3 185
33
#define NOTE_G3  196
34
#define NOTE_GS3 208
35
#define NOTE_A3  220
36
#define NOTE_AS3 233
37
#define NOTE_B3  247
38
#define NOTE_C4  262
39
#define NOTE_CS4 277
40
#define NOTE_D4  294
41
#define NOTE_DS4 311
42
#define NOTE_E4  330
43
#define NOTE_F4  349
44
#define NOTE_FS4 370
45
#define NOTE_G4  392
46
#define NOTE_GS4 415
47
#define NOTE_A4  440
48
#define NOTE_AS4 466
49
#define NOTE_B4  494
50
#define NOTE_C5  523
51
#define NOTE_CS5 554
52
#define NOTE_D5  587
53
#define NOTE_DS5 622
54
#define NOTE_E5  659
55
#define NOTE_F5  698
56
#define NOTE_FS5 740
57
#define NOTE_G5  784
58
#define NOTE_GS5 831
59
#define NOTE_A5  880
60
#define NOTE_AS5 932
61
#define NOTE_B5  988
62
#define NOTE_C6  1047
63
#define NOTE_CS6 1109
64
#define NOTE_D6  1175
65
#define NOTE_DS6 1245
66
#define NOTE_E6  1319
67
#define NOTE_F6  1397
68
#define NOTE_FS6 1480
69
#define NOTE_G6  1568
70
#define NOTE_GS6 1661
71
#define NOTE_A6  1760
72
#define NOTE_AS6 1865
73
#define NOTE_B6  1976
74
#define NOTE_C7  2093
75
#define NOTE_CS7 2217
76
#define NOTE_D7  2349
77
#define NOTE_DS7 2489
78
#define NOTE_E7  2637
79
#define NOTE_F7  2794
80
#define NOTE_FS7 2960
81
#define NOTE_G7  3136
82
#define NOTE_GS7 3322
83
#define NOTE_A7  3520
84
#define NOTE_AS7 3729
85
#define NOTE_B7  3951
86
#define NOTE_C8  4186
87
#define NOTE_CS8 4435
88
#define NOTE_D8  4699
89
#define NOTE_DS8 4978
90
91
int sensorPin = 0;
92
int speakerPin = 9;
93
int ledPin = 13;
94
int rPin = 6;
95
int gPin = 5;
96
int bPin = 3;
97
98
99
void setup()
100
{ 
101
  pinMode(rPin, OUTPUT);
102
  pinMode(gPin, OUTPUT);
103
  pinMode(bPin, OUTPUT);
104
  pinMode(speakerPin, OUTPUT);
105
  pinMode(ledPin, OUTPUT);  
106
107
}
108
109
void loop()
110
{
111
  showSpectrum();
112
  
113
  song();
114
  
115
}
116
117
void song()  //here is where all the notes for the song are played.
118
{        
119
  beep(speakerPin, NOTE_D5, 100);  //   beep( -PIN OF SPEAKER-, -THE NOTE WANTING TO BE PLAYED-, -DURATION OF THE NOTE IN MILISECONDS- )
120
  delay(80);
121
  beep(speakerPin, NOTE_F5, 100); 
122
  delay(80);
123
  beep(speakerPin, NOTE_D6, 500); 
124
  delay(250);
125
  
126
  beep(speakerPin, NOTE_D5, 100); 
127
  delay(80);
128
  beep(speakerPin, NOTE_F5, 100); 
129
  delay(80);
130
  beep(speakerPin, NOTE_D6, 500);
131
  delay(250);
132
  
133
  beep(speakerPin, NOTE_E6, 500); 
134
  delay(100);
135
  beep(speakerPin, NOTE_F6, 100); 
136
  delay(100);
137
  beep(speakerPin, NOTE_E6, 100); 
138
  delay(80);
139
  beep(speakerPin, NOTE_F6, 100); 
140
  delay(80);
141
  beep(speakerPin, NOTE_E6, 100); 
142
  delay(80);
143
  beep(speakerPin, NOTE_C6, 100); 
144
  delay(80);
145
  beep(speakerPin, NOTE_A5, 300); 
146
  delay(300);
147
  
148
  beep(speakerPin, NOTE_A5, 200); 
149
  delay(100);
150
  beep(speakerPin, NOTE_D5, 200); 
151
  delay(100);
152
  beep(speakerPin, NOTE_F5, 100); 
153
  delay(100);
154
  beep(speakerPin, NOTE_G5, 100); 
155
  delay(100);
156
  beep(speakerPin, NOTE_A5, 300); 
157
  delay(500);
158
  
159
  beep(speakerPin, NOTE_A5, 200); 
160
  delay(100);
161
  beep(speakerPin, NOTE_D5, 200); 
162
  delay(100);
163
  beep(speakerPin, NOTE_F5, 100); 
164
  delay(100);
165
  beep(speakerPin, NOTE_G5, 100); 
166
  delay(100);
167
  beep(speakerPin, NOTE_E5, 300); 
168
  delay(500);
169
  
170
  
171
  
172
  beep(speakerPin, NOTE_D5, 100); 
173
  delay(80);
174
  beep(speakerPin, NOTE_F5, 100); 
175
  delay(80);
176
  beep(speakerPin, NOTE_D6, 400); 
177
  delay(250);
178
  
179
  beep(speakerPin, NOTE_D5, 100); 
180
  delay(80);
181
  beep(speakerPin, NOTE_F5, 100); 
182
  delay(80);
183
  beep(speakerPin, NOTE_D6, 400);
184
  delay(250);
185
  
186
  beep(speakerPin, NOTE_E6, 200); 
187
  delay(200);
188
  beep(speakerPin, NOTE_F6, 100); 
189
  delay(100);
190
  beep(speakerPin, NOTE_E6, 100); 
191
  delay(80);
192
  beep(speakerPin, NOTE_F6, 100); 
193
  delay(80);
194
  beep(speakerPin, NOTE_E6, 100); 
195
  delay(80);
196
  beep(speakerPin, NOTE_C6, 100); 
197
  delay(80);
198
  beep(speakerPin, NOTE_A5, 300); 
199
  delay(300);
200
  
201
  beep(speakerPin, NOTE_A5, 200); 
202
  delay(100);
203
  beep(speakerPin, NOTE_D5, 200); 
204
  delay(100);
205
  beep(speakerPin, NOTE_F5, 100); 
206
  delay(100);
207
  beep(speakerPin, NOTE_G5, 100); 
208
  delay(100);
209
  beep(speakerPin, NOTE_A5, 500);
210
  delay(100);
211
  beep(speakerPin, NOTE_A5, 200);
212
  delay(100);
213
  beep(speakerPin, NOTE_D5, 500);
214
  delay(2000);
215
  
216
}
217
218
void beep (unsigned char speakerPin, int frequencyInHertz, long timeInMilliseconds)  //code for working out the rate at which each note plays and the frequency.
219
{
220
  digitalWrite(ledPin, HIGH);
221
  int x;      
222
  long delayAmount = (long)(1000000/frequencyInHertz);
223
  long loopTime = (long)((timeInMilliseconds*1000)/(delayAmount*2));
224
  for (x=0;x<loopTime;x++)    
225
  {    
226
    digitalWrite(speakerPin,HIGH);
227
    delayMicroseconds(delayAmount);
228
    digitalWrite(speakerPin,LOW);
229
    delayMicroseconds(delayAmount);
230
  }    
231
  digitalWrite(ledPin, LOW);
232
  delay(20);
233
} 
234
235
void showSpectrum()
236
{
237
  int x;  
238
  
239
  // Now we'll use a for() loop to make x count from 0 to 767
240
  // (Note that there's no semicolon after this line!
241
  // That's because the for() loop will repeat the next
242
  // "statement", which in this case is everything within
243
  // the following brackets {} )
244
245
  for (x = 0; x < 768; x++)
246
247
  // Each time we loop (with a new value of x), do the following:
248
249
  {
250
    showRGB(x);  // Call RGBspectrum() with our new x
251
    delay(10);   // Delay for 10 ms (1/100th of a second)
252
  }
253
}
254
255
void showRGB(int color)
256
{
257
  int redIntensity;
258
  int greenIntensity;
259
  int blueIntensity;
260
261
  // Here we'll use an "if / else" statement to determine which
262
  // of the three (R,G,B) zones x falls into. Each of these zones
263
  // spans 255 because analogWrite() wants a number from 0 to 255.
264
265
  // In each of these zones, we'll calculate the brightness
266
  // for each of the red, green, and blue LEDs within the RGB LED.
267
268
  if (color <= 255)          // zone 1
269
  {
270
    redIntensity = 255 - color;    // red goes from on to off
271
    greenIntensity = color;        // green goes from off to on
272
    blueIntensity = 0;             // blue is always off
273
  }
274
  else if (color <= 511)     // zone 2
275
  {
276
    redIntensity = 0;                     // red is always off
277
    greenIntensity = 255 - (color - 256); // green on to off
278
    blueIntensity = (color - 256);        // blue off to on
279
  }
280
  else // color >= 512       // zone 3
281
  {
282
    redIntensity = (color - 512);         // red off to on
283
    greenIntensity = 0;                   // green is always off
284
    blueIntensity = 255 - (color - 512);  // blue on to off
285
  }
286
287
  // Now that the brightness values have been set, command the LED
288
  // to those values
289
290
  analogWrite(rPin, redIntensity);
291
  analogWrite(bPin, blueIntensity);
292
  analogWrite(gPin, greenIntensity);
293
}