Giorno's theme song (il vento d'oro) on Arduino. The project uses the Arduino's Tone() function to produce the notes of the song in
Devices and components
Arduino Uno Rev3
SparkFun Breadboard Power Stick 5V/3.3V
Resistance 1k ohm
Speaker: 3 W, 4 ohms
Jumper wires (generic)
MOSFET transistor, switching
Materials and tools
Soldering iron (generic)
Software and tools
Arduino IDE
Project description
Overview
Giorno's Theme, Part 1
arduino
This code is downloaded to the 1st Arduino
1#include "Color.h"
2int S[] = {
3 Pink1, 0, Pink1, 0, Pink1, Blue1, 0, Pink1, 0, Orange2, 0, Pink1, 0, Green1, Blue1, 0, Pink1, 0, Pink1, 0, Pink1, Blue1, 0, Pink1, 0, LGreen2, 0, Yellow2, 0, Orange2, Blue1, 0, Pink1, 0, Pink1, 0, Pink1, Blue1, 0, Pink1, 0, Orange2, 0, Pink1, 0, Green1, Blue1, 0, Pink1, 0, Pink1, 0, Pink1, Blue1, Pink1, Orange2, 0, LGreen2, 0, Yellow2, 0, Orange2, Blue1, 0, Pink1, 0, Pink1, 0, Pink1, Blue1, 0, Pink1, 0, Orange2, 0, Pink1, 0, Green1, Blue1, 0, Pink1, 0, Pink1, 0, Pink1, Blue1, 0, Pink1, 0, LGreen2, 0, Yellow2, 0, Orange2, Blue1, 0, Pink1, 0, Pink1, 0, Pink1, Blue1, 0, Pink1, 0, Orange2, 0, Pink1, 0, Green1, Blue1, 0, Pink1, 0, Pink1, 0, Pink1, 0, Blue1, Pink1, 0, 0, 0, 0, Pink1, 0,
4 Orange2, 0, Yellow2, LGreen2, 0, Green2, 0, Blue2, 0, Green2, 0, Blue2, Purple2, 0, Pink2, 0, Purple2, 0, Blue2, Green2, 0, Yellow2, 0, Orange2, LBlue1, 0, Blue1, 0, Purple1, 0, Pink1, 0, Orange2, 0, Yellow2, LGreen2, 0, Green2, 0, Blue2, 0, Green2, 0, Blue2, Purple2, 0, Pink2, 0, Blue2, Pink2, Blue2, 0, Purple2, Pink2, 0, LBlue1, 0, LBlue1, Blue1, Blue1, Purple1, 0, Pink1, 0, Orange2, 0, Yellow2, LGreen2, 0, Green2, 0, Blue2, 0, Green2, 0, Blue2, Purple2, 0, Pink2, 0, Purple2, 0, Blue2, Green2, 0, Yellow2, 0, Orange2, LBlue1, 0, Blue1, 0, Purple1, 0, Pink1, 0, Orange2, 0, Yellow2, LGreen2, 0, Green2, 0, Blue2, 0, Green2, 0, Blue2, Purple2, 0, Pink2, 0, Blue2, Pink2, Blue2, 0, Purple2, Pink2, 0, LBlue1, 0, LBlue1, Blue1, Blue1, Purple1, 0,
5 Orange2, DOrange2, Pink1, 0, Blue1, 0, 0, Pink1, 0, 0, Pink1, 0, 0, 0, Green1, 0, Blue1, 0, Pink1, 0, DOrange2, 0, 0, Blue1, 0, 0, Pink1, 0, 0, 0, 0, 0, Orange2, DOrange2, Pink1, 0, Blue1, 0, 0, Pink1, 0, 0, Pink1, 0, 0, Green1, 0, 0, DOrange2, 0, Orange2, 0, DOrange2, 0, 0, Blue1, 0, DOrange1, Yellow1, Green1, DOrange1, Green1, LBlue1, Pink1, Orange2, DOrange2, Pink1, 0, Blue1, 0, 0, Pink1, 0, 0, Pink1, 0, 0, 0, Green1, 0, Blue1, 0, Pink1, 0, DOrange2, 0, 0, Blue1, 0, 0, Pink1, 0, 0, 0, 0, 0, Orange2, DOrange2, Pink1, 0, Blue1, Orange2, 0, Green2, Yellow2, Orange2, Pink1, 0, Blue2, LBlue2, 0, Green2, Orange2, DOrange2, 0, Pink1, Blue1, Pink1, 0, Blue1, Pink1, 0, Blue1, Pink1, 0, Blue1, Pink1, 0, Blue1, Pink1, Orange2, 0,
6 Green2, 0, 0, 0, 0, 0, Orange2, 0, 0, 0, 0, 0, 0, Orange2, Yellow2, LGreen2, 0, 0, Yellow2, 0, 0, Orange2, 0, DOrange2, 0, 0, Orange2, 0, 0, Yellow2, 0, Green2, 0, 0, 0, 0, 0, Pink2, 0, 0, 0, 0, 0, Pink1, 0, DOrange2, 0, Orange2, 0, 0, Yellow2, 0, 0, Orange2, 0, DOrange2, 0, 0, Blue2, 0, 0, DGreen2, 0, Green2, 0, 0, 0, 0, 0, Orange2, 0, 0, 0, 0, 0, 0, Orange2, Yellow2, LGreen2, 0, 0, Yellow2, 0, 0, Orange2, 0, DOrange2, 0, 0, Orange2, 0, 0, Yellow2, 0, Green2, 0, 0, 0, 0, 0, Pink2, 0, 0, 0, 0, 0, Green2, 0, Purple2, 0, Pink2, 0, 0, DGreen2, 0, 0, Green2, 0, LGreen2, 0, 0, Pink2, 0, 0, Green2, 0, Green2
7};
8int L = sizeof(S);
9int nds = 10;
10
11void setup() {
12 Serial.begin(115200);
13 pinMode(2, OUTPUT);
14 L = L / 2;
15 Serial.println(L);
16 Tone();
17}
18
19void loop() {
20}
21
22void Tone() {
23 digitalWrite(2, HIGH);
24 for (int n = 0; n < L; n++) {
25 int nd = 1000 / nds;
26 tone(6, S[n], nd);
27 int d = nd * 1.2;
28 delay(d);
29 noTone(6);
30 }
31}
Giorno's Theme, Part 2
arduino
This code is downloaded to the 2nd Arduino
1#include "Color.h"
2int S[] = {
3 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, Pink2, 0, Pink2, 0, Pink2, Blue2, 0, Pink2, 0, Orange3, 0, Pink2, 0, Green2, Blue2, 0, Pink2, 0, Pink2, 0, Pink2, Blue2, 0, Pink2, 0, LGreen3, 0, Yellow3, 0, Orange3, Blue2, 0, Pink2, 0, Pink2, 0, Pink2, Blue2, 0, Pink2, 0, Orange3, 0, Pink2, 0, Green2, Blue2, 0, Pink2, 0, Pink2, 0, Pink2, 0, Blue2, Pink2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5 Orange3, DOrange3, Pink2, 0, Blue2, 0, 0, Pink2, 0, 0, Pink2, 0, 0, 0, Green2, 0, Blue2, 0, Pink2, 0, DOrange3, 0, 0, Blue2, 0, 0, Pink2, 0, 0, 0, 0, 0, Orange3, DOrange3, Pink2, 0, Blue2, 0, 0, Pink2, 0, 0, Pink2, 0, 0, Green2, 0, 0, DOrange3, 0, Orange3, 0, DOrange3, 0, 0, Blue2, 0, DOrange2, Yellow2, Green2, DOrange2, Green2, LBlue2, Pink2, Orange3, DOrange3, Pink2, 0, Blue2, 0, 0, Pink2, 0, 0, Pink2, 0, 0, 0, Green2, 0, Blue2, 0, Pink2, 0, DOrange3, 0, 0, Blue2, 0, 0, Pink2, 0, 0, 0, 0, 0, Orange3, DOrange3, Pink2, 0, Blue2, Orange3, 0, Green3, Yellow3, Orange3, Pink2, 0, Blue3, LBlue3, 0, Green3, Orange3, DOrange3, 0, Pink2, Blue2, Pink2, 0, Blue2, Pink2, 0, Blue2, Pink2, 0, Blue2, Pink2, 0, Blue2, Pink2, Orange3, 0,
6 Green2, 0, 0, 0, 0, 0, Orange2, 0, 0, 0, 0, 0, 0, Orange2, Yellow2, LGreen2, 0, 0, Yellow2, 0, 0, Orange2, 0, DOrange2, 0, 0, Orange2, 0, 0, Yellow2, 0, Green2, 0, 0, 0, 0, 0, Pink2, 0, 0, 0, 0, 0, Pink1, 0, DOrange2, 0, Orange2, 0, 0, Yellow2, 0, 0, Orange2, 0, DOrange2, 0, 0, Blue2, 0, 0, DGreen2, 0, Green2, 0, 0, 0, 0, 0, Orange2, 0, 0, 0, 0, 0, 0, Orange2, Yellow2, LGreen2, 0, 0, Yellow2, 0, 0, Orange2, 0, DOrange2, 0, 0, Orange2, 0, 0, Yellow2, 0, Green2, 0, 0, 0, 0, 0, Pink2, 0, 0, 0, 0, 0, Pink2, 0, DOrange3, 0, Orange3, 0, 0, DGreen3, 0, 0, Green3, 0, LGreen3, 0, 0, Orange3, 0, 0, Purple2, 0, Pink2
7
8};
9int L = sizeof(S);
10int nds = 10;
11
12void setup() {
13 Serial.begin(115200);
14 pinMode(3, INPUT_PULLUP);
15 L = L / 2;
16 Serial.println(L);
17}
18
19void loop() {
20 if(!digitalRead(3)) {
21 Tone();
22 }
23}
24
25void Tone() {
26 for (int n = 0; n < L; n++) {
27 int nd = 1000 / nds;
28 tone(6, S[n], nd);
29 int d = nd * 1.2;
30 delay(d);
31 noTone(6);
32 }
33}
Color.h
This tab includes all note frequencies with assigned color and at different octaves
1//First Octave
2
3#define Red1 131
4#define DOrange1 277
5#define Orange1 294
6#define LOrange1 311
7#define Yellow1 330
8#define LGreen1 349
9#define Green1 370
10#define DGreen1 392
11#define LBlue1 415
12#define Blue1 440
13#define Purple1 466
14#define Pink1 494
15
16//Second Octave
17
18#define Red2 523
19#define DOrange2 554
20#define Orange2 587
21#define LOrange2 622
22#define Yellow2 659
23#define LGreen2 698
24#define Green2 740
25#define DGreen2 784
26#define LBlue2 831
27#define Blue2 880
28#define Purple2 932
29#define Pink2 988
30
31//Third Octave
32
33#define Red3 1047
34#define DOrange3 1109
35#define Orange3 1175
36#define LOrange3 1245
37#define Yellow3 1319
38#define LGreen3 1397
39#define Green3 1480
40#define DGreen3 1568
41#define LBlue3 1661
42#define Blue3 1760
43#define Purple3 1865
44#define Pink3 1976
Color.h
This tab includes all note frequencies with assigned color and at different octaves
1//First Octave
2
3#define Red1 131
4#define DOrange1 277
5#define
6 Orange1 294
7#define LOrange1 311
8#define Yellow1 330
9#define LGreen1 349
10#define
11 Green1 370
12#define DGreen1 392
13#define LBlue1 415
14#define Blue1 440
15#define
16 Purple1 466
17#define Pink1 494
18
19//Second Octave
20
21#define Red2 523
22#define
23 DOrange2 554
24#define Orange2 587
25#define LOrange2 622
26#define Yellow2 659
27#define
28 LGreen2 698
29#define Green2 740
30#define DGreen2 784
31#define LBlue2 831
32#define
33 Blue2 880
34#define Purple2 932
35#define Pink2 988
36
37//Third Octave
38
39#define
40 Red3 1047
41#define DOrange3 1109
42#define Orange3 1175
43#define LOrange3 1245
44#define
45 Yellow3 1319
46#define LGreen3 1397
47#define Green3 1480
48#define DGreen3 1568
49#define
50 LBlue3 1661
51#define Blue3 1760
52#define Purple3 1865
53#define Pink3 1976
Giorno's Theme, Part 1
arduino
This code is downloaded to the 1st Arduino
1#include "Color.h"
2int S[] = {
3 Pink1, 0, Pink1, 0, Pink1, Blue1,
4 0, Pink1, 0, Orange2, 0, Pink1, 0, Green1, Blue1, 0, Pink1, 0, Pink1, 0, Pink1,
5 Blue1, 0, Pink1, 0, LGreen2, 0, Yellow2, 0, Orange2, Blue1, 0, Pink1, 0, Pink1,
6 0, Pink1, Blue1, 0, Pink1, 0, Orange2, 0, Pink1, 0, Green1, Blue1, 0, Pink1, 0,
7 Pink1, 0, Pink1, Blue1, Pink1, Orange2, 0, LGreen2, 0, Yellow2, 0, Orange2, Blue1,
8 0, Pink1, 0, Pink1, 0, Pink1, Blue1, 0, Pink1, 0, Orange2, 0, Pink1, 0, Green1,
9 Blue1, 0, Pink1, 0, Pink1, 0, Pink1, Blue1, 0, Pink1, 0, LGreen2, 0, Yellow2, 0,
10 Orange2, Blue1, 0, Pink1, 0, Pink1, 0, Pink1, Blue1, 0, Pink1, 0, Orange2, 0, Pink1,
11 0, Green1, Blue1, 0, Pink1, 0, Pink1, 0, Pink1, 0, Blue1, Pink1, 0, 0, 0, 0, Pink1,
12 0,
13 Orange2, 0, Yellow2, LGreen2, 0, Green2, 0, Blue2, 0, Green2, 0, Blue2,
14 Purple2, 0, Pink2, 0, Purple2, 0, Blue2, Green2, 0, Yellow2, 0, Orange2, LBlue1,
15 0, Blue1, 0, Purple1, 0, Pink1, 0, Orange2, 0, Yellow2, LGreen2, 0, Green2, 0, Blue2,
16 0, Green2, 0, Blue2, Purple2, 0, Pink2, 0, Blue2, Pink2, Blue2, 0, Purple2, Pink2,
17 0, LBlue1, 0, LBlue1, Blue1, Blue1, Purple1, 0, Pink1, 0, Orange2, 0, Yellow2, LGreen2,
18 0, Green2, 0, Blue2, 0, Green2, 0, Blue2, Purple2, 0, Pink2, 0, Purple2, 0, Blue2,
19 Green2, 0, Yellow2, 0, Orange2, LBlue1, 0, Blue1, 0, Purple1, 0, Pink1, 0, Orange2,
20 0, Yellow2, LGreen2, 0, Green2, 0, Blue2, 0, Green2, 0, Blue2, Purple2, 0, Pink2,
21 0, Blue2, Pink2, Blue2, 0, Purple2, Pink2, 0, LBlue1, 0, LBlue1, Blue1, Blue1, Purple1,
22 0,
23 Orange2, DOrange2, Pink1, 0, Blue1, 0, 0, Pink1, 0, 0, Pink1, 0, 0, 0, Green1,
24 0, Blue1, 0, Pink1, 0, DOrange2, 0, 0, Blue1, 0, 0, Pink1, 0, 0, 0, 0, 0, Orange2,
25 DOrange2, Pink1, 0, Blue1, 0, 0, Pink1, 0, 0, Pink1, 0, 0, Green1, 0, 0, DOrange2,
26 0, Orange2, 0, DOrange2, 0, 0, Blue1, 0, DOrange1, Yellow1, Green1, DOrange1, Green1,
27 LBlue1, Pink1, Orange2, DOrange2, Pink1, 0, Blue1, 0, 0, Pink1, 0, 0, Pink1, 0,
28 0, 0, Green1, 0, Blue1, 0, Pink1, 0, DOrange2, 0, 0, Blue1, 0, 0, Pink1, 0, 0, 0,
29 0, 0, Orange2, DOrange2, Pink1, 0, Blue1, Orange2, 0, Green2, Yellow2, Orange2,
30 Pink1, 0, Blue2, LBlue2, 0, Green2, Orange2, DOrange2, 0, Pink1, Blue1, Pink1, 0,
31 Blue1, Pink1, 0, Blue1, Pink1, 0, Blue1, Pink1, 0, Blue1, Pink1, Orange2, 0,
32
33 Green2, 0, 0, 0, 0, 0, Orange2, 0, 0, 0, 0, 0, 0, Orange2, Yellow2, LGreen2, 0,
34 0, Yellow2, 0, 0, Orange2, 0, DOrange2, 0, 0, Orange2, 0, 0, Yellow2, 0, Green2,
35 0, 0, 0, 0, 0, Pink2, 0, 0, 0, 0, 0, Pink1, 0, DOrange2, 0, Orange2, 0, 0, Yellow2,
36 0, 0, Orange2, 0, DOrange2, 0, 0, Blue2, 0, 0, DGreen2, 0, Green2, 0, 0, 0, 0, 0,
37 Orange2, 0, 0, 0, 0, 0, 0, Orange2, Yellow2, LGreen2, 0, 0, Yellow2, 0, 0, Orange2,
38 0, DOrange2, 0, 0, Orange2, 0, 0, Yellow2, 0, Green2, 0, 0, 0, 0, 0, Pink2, 0, 0,
39 0, 0, 0, Green2, 0, Purple2, 0, Pink2, 0, 0, DGreen2, 0, 0, Green2, 0, LGreen2,
40 0, 0, Pink2, 0, 0, Green2, 0, Green2
41};
42int L = sizeof(S);
43int nds = 10;
44
45void
46 setup() {
47 Serial.begin(115200);
48 pinMode(2, OUTPUT);
49 L = L / 2;
50
51 Serial.println(L);
52 Tone();
53}
54
55void loop() {
56}
57
58void Tone()
59 {
60 digitalWrite(2, HIGH);
61 for (int n = 0; n < L; n++) {
62 int nd =
63 1000 / nds;
64 tone(6, S[n], nd);
65 int d = nd * 1.2;
66 delay(d);
67
68 noTone(6);
69 }
70}
Downloadable files
Circuit diagram
Circuit diagram
Fritzing circuit diagram file
Fritzing circuit diagram file
Fritzing circuit diagram file
Fritzing circuit diagram file
Circuit diagram
Circuit diagram
Note: Content and images are from: https://projecthub.arduino.cc/, with some modifications.
If you want it removed due to copyright reasons, please leave a comment. Thank you.
I want to share this article more widely so that everyone knows about Arduino and your project.