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 | } |